|
Ginkgo
Generated from pipelines/1589998975 branch based on develop. Ginkgo version 1.10.0
A numerical linear algebra library targeting many-core architectures
|
5 #ifndef GKO_PUBLIC_CORE_LOG_STREAM_HPP_
6 #define GKO_PUBLIC_CORE_LOG_STREAM_HPP_
12 #include <ginkgo/core/log/logger.hpp>
29 template <
typename ValueType = default_precision>
34 const size_type& num_bytes)
const override;
38 const uintptr& location)
const override;
41 const uintptr& location)
const override;
44 const uintptr& location)
const override;
49 const size_type& num_bytes)
const override;
54 const size_type& num_bytes)
const override;
92 const LinOp* x)
const override;
95 const LinOp* x)
const override;
99 const LinOp* x)
const override;
103 const LinOp* x)
const override;
107 const LinOp* input)
const override;
111 const LinOp* output)
const override;
116 const LinOp* residual,
117 const LinOp* residual_norm,
118 const LinOp* solution,
119 const uint8& stopping_id,
120 const bool& set_finalized)
const override;
124 const LinOp* residual,
const LinOp* residual_norm,
125 const LinOp* solution,
const uint8& stopping_id,
127 const bool& one_changed,
const bool& all_converged)
const override;
132 const LinOp* residual,
133 const LinOp* residual_norm,
134 const LinOp* implicit_resnorm_sq,
136 bool stopped)
const override;
139 "Please use the version with the additional stopping "
144 const LinOp* residual_norm)
const override;
147 "Please use the version with the additional stopping "
152 const LinOp* residual_norm,
153 const LinOp* implicit_sq_residual_norm)
const override;
169 GKO_DEPRECATED(
"use three-parameter create")
171 std::shared_ptr<const
Executor> exec,
173 std::ostream& os = std::cout,
bool verbose = false)
175 return std::unique_ptr<Stream>(
new Stream(enabled_events, os, verbose));
194 std::ostream& os = std::cerr,
bool verbose =
false)
196 return std::unique_ptr<Stream>(
new Stream(enabled_events, os, verbose));
211 GKO_DEPRECATED(
"use three-parameter constructor")
215 std::ostream& os = std::cerr,
bool verbose = false)
216 :
Stream(enabled_events, os, verbose)
232 std::ostream& os = std::cerr,
bool verbose =
false)
233 : Logger(enabled_events), os_(&os), verbose_(verbose)
239 static constexpr
const char* prefix_ =
"[LOG] >>> ";
248 #endif // GKO_PUBLIC_CORE_LOG_STREAM_HPP_
std::uint8_t uint8
8-bit unsigned integral type.
Definition: types.hpp:118
void on_allocation_started(const Executor *exec, const size_type &num_bytes) const override
Executor's allocation started event.
static std::unique_ptr< Stream > create(std::shared_ptr< const Executor > exec, const Logger::mask_type &enabled_events=Logger::all_events_mask, std::ostream &os=std::cout, bool verbose=false)
Creates a Stream logger.
Definition: stream.hpp:170
Stream is a Logger which logs every event to a stream.
Definition: stream.hpp:30
void on_criterion_check_completed(const stop::Criterion *criterion, const size_type &num_iterations, const LinOp *residual, const LinOp *residual_norm, const LinOp *solution, const uint8 &stopping_id, const bool &set_finalized, const array< stopping_status > *status, const bool &one_changed, const bool &all_converged) const override
stop::Criterion's check completed event.
Definition: lin_op.hpp:117
A PolymorphicObject is the abstract base for all "heavy" objects in Ginkgo that behave polymorphicall...
Definition: polymorphic_object.hpp:52
void on_polymorphic_object_move_completed(const Executor *exec, const PolymorphicObject *from, const PolymorphicObject *to) const override
PolymorphicObject's move completed event.
void on_allocation_completed(const Executor *exec, const size_type &num_bytes, const uintptr &location) const override
Executor's allocation completed event.
Stopping criterion events.
std::uintptr_t uintptr
Unsigned integer type capable of holding a pointer to void.
Definition: types.hpp:141
void on_copy_completed(const Executor *from, const Executor *to, const uintptr &location_from, const uintptr &location_to, const size_type &num_bytes) const override
Executor's copy completed event.
void on_polymorphic_object_create_completed(const Executor *exec, const PolymorphicObject *input, const PolymorphicObject *output) const override
PolymorphicObject's create completed event.
void on_polymorphic_object_create_started(const Executor *, const PolymorphicObject *po) const override
PolymorphicObject's create started event.
std::size_t size_type
Integral type used for allocation quantities.
Definition: types.hpp:89
void on_copy_started(const Executor *from, const Executor *to, const uintptr &location_from, const uintptr &location_to, const size_type &num_bytes) const override
Executor's copy started event.
The Ginkgo namespace.
Definition: abstract_factory.hpp:20
void on_linop_apply_completed(const LinOp *A, const LinOp *b, const LinOp *x) const override
LinOp's apply completed event.
An array is a container which encapsulates fixed-sized arrays, stored on the Executor tied to the arr...
Definition: array.hpp:26
static constexpr mask_type all_events_mask
Bitset Mask which activates all events.
Definition: logger.hpp:89
void on_iteration_complete(const LinOp *solver, const LinOp *b, const LinOp *x, const size_type &num_iterations, const LinOp *residual, const LinOp *residual_norm, const LinOp *implicit_resnorm_sq, const array< stopping_status > *status, bool stopped) const override
Register the iteration_complete event which logs every completed iterations.
void on_operation_launched(const Executor *exec, const Operation *operation) const override
Executor's operation launched event (method run).
void on_free_started(const Executor *exec, const uintptr &location) const override
Executor's free started event.
static std::unique_ptr< Stream > create(const Logger::mask_type &enabled_events=Logger::all_events_mask, std::ostream &os=std::cerr, bool verbose=false)
Creates a Stream logger.
Definition: stream.hpp:192
Definition: logger.hpp:76
void on_free_completed(const Executor *exec, const uintptr &location) const override
Executor's free completed event.
void on_polymorphic_object_deleted(const Executor *exec, const PolymorphicObject *po) const override
PolymorphicObject's deleted event.
The Criterion class is a base class for all stopping criteria.
Definition: criterion.hpp:36
void on_polymorphic_object_move_started(const Executor *exec, const PolymorphicObject *from, const PolymorphicObject *to) const override
PolymorphicObject's move started event.
void on_polymorphic_object_copy_completed(const Executor *exec, const PolymorphicObject *from, const PolymorphicObject *to) const override
PolymorphicObject's copy completed event.
void on_linop_advanced_apply_started(const LinOp *A, const LinOp *alpha, const LinOp *b, const LinOp *beta, const LinOp *x) const override
LinOp's advanced apply started event.
void on_polymorphic_object_copy_started(const Executor *exec, const PolymorphicObject *from, const PolymorphicObject *to) const override
PolymorphicObject's copy started event.
void on_operation_completed(const Executor *exec, const Operation *operation) const override
Executor's operation completed event (method run).
Kernel execution and data movement.
void on_criterion_check_started(const stop::Criterion *criterion, const size_type &num_iterations, const LinOp *residual, const LinOp *residual_norm, const LinOp *solution, const uint8 &stopping_id, const bool &set_finalized) const override
stop::Criterion's check started event.
The first step in using the Ginkgo library consists of creating an executor.
Definition: executor.hpp:615
void on_linop_factory_generate_started(const LinOpFactory *factory, const LinOp *input) const override
LinOp Factory's generate started event.
void on_linop_advanced_apply_completed(const LinOp *A, const LinOp *alpha, const LinOp *b, const LinOp *beta, const LinOp *x) const override
LinOp's advanced apply completed event.
void on_linop_factory_generate_completed(const LinOpFactory *factory, const LinOp *input, const LinOp *output) const override
LinOp Factory's generate completed event.
A LinOpFactory represents a higher order mapping which transforms one linear operator into another.
Definition: lin_op.hpp:384
Operations can be used to define functionalities whose implementations differ among devices.
Definition: executor.hpp:258
void on_linop_apply_started(const LinOp *A, const LinOp *b, const LinOp *x) const override
LinOp's apply started event.