OperationLogger Struct Reference

OperationLogger Struct Reference#

Reference API: loggers::OperationLogger Struct Reference
Reference API
loggers::OperationLogger Struct Reference
Inheritance diagram for loggers::OperationLogger:
[legend]

Public Member Functions

void on_allocation_started (const gko::Executor *exec, const gko::size_type &) const override
 
void on_allocation_completed (const gko::Executor *exec, const gko::size_type &, const gko::uintptr &) const override
 
void on_free_started (const gko::Executor *exec, const gko::uintptr &) const override
 
void on_free_completed (const gko::Executor *exec, const gko::uintptr &) const override
 
void on_copy_started (const gko::Executor *from, const gko::Executor *to, const gko::uintptr &, const gko::uintptr &, const gko::size_type &) const override
 
void on_copy_completed (const gko::Executor *from, const gko::Executor *to, const gko::uintptr &, const gko::uintptr &, const gko::size_type &) const override
 
void on_operation_launched (const gko::Executor *exec, const gko::Operation *op) const override
 
void on_operation_completed (const gko::Executor *exec, const gko::Operation *op) const override
 
void write_data (std::ostream &ostream)
 
- Public Member Functions inherited from gko::log::Logger
template<size_type Event, typename... Params>
std::enable_if_t< Event==0 &&(0< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==1 &&(1< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==2 &&(2< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==3 &&(3< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==4 &&(4< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==5 &&(5< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==6 &&(6< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==7 &&(7< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==8 &&(8< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==9 &&(9< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==10 &&(10< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==11 &&(11< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==12 &&(12< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==13 &&(13< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==14 &&(14< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==15 &&(15< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==16 &&(16< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==17 &&(17< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==18 &&(18< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==19 &&(19< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==20 &&(20< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==21 &&(21< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==22 &&(22< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==23 &&(23< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==24 &&(24< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==25 &&(25< event_count_max)> on (Params &&... params) const
 
template<size_type Event, typename... Params>
std::enable_if_t< Event==26 &&(26< event_count_max)> on (Params &&... params) const
 
virtual bool needs_propagation () const
 

Additional Inherited Members

- Public Types inherited from gko::log::Logger
using mask_type = gko::uint64
 
- Static Public Attributes inherited from gko::log::Logger
static constexpr size_type event_count_max = sizeof(mask_type) * byte_size
 
static constexpr mask_type all_events_mask = ~mask_type{0}
 
static constexpr size_type allocation_started { 0 }
 
static constexpr mask_type allocation_started_mask {mask_type{1} << 0 }
 
static constexpr size_type allocation_completed { 1 }
 
static constexpr mask_type allocation_completed_mask {mask_type{1} << 1 }
 
static constexpr size_type free_started { 2 }
 
static constexpr mask_type free_started_mask {mask_type{1} << 2 }
 
static constexpr size_type free_completed { 3 }
 
static constexpr mask_type free_completed_mask {mask_type{1} << 3 }
 
static constexpr size_type copy_started { 4 }
 
static constexpr mask_type copy_started_mask {mask_type{1} << 4 }
 
static constexpr size_type copy_completed { 5 }
 
static constexpr mask_type copy_completed_mask {mask_type{1} << 5 }
 
static constexpr size_type operation_launched { 6 }
 
static constexpr mask_type operation_launched_mask {mask_type{1} << 6 }
 
static constexpr size_type operation_completed { 7 }
 
static constexpr mask_type operation_completed_mask {mask_type{1} << 7 }
 
static constexpr size_type polymorphic_object_create_started { 8 }
 
static constexpr mask_type polymorphic_object_create_started_mask {mask_type{1} << 8 }
 
static constexpr size_type polymorphic_object_create_completed { 9 }
 
static constexpr mask_type polymorphic_object_create_completed_mask {mask_type{1} << 9 }
 
static constexpr size_type polymorphic_object_copy_started { 10 }
 
static constexpr mask_type polymorphic_object_copy_started_mask {mask_type{1} << 10 }
 
static constexpr size_type polymorphic_object_copy_completed { 11 }
 
static constexpr mask_type polymorphic_object_copy_completed_mask {mask_type{1} << 11 }
 
static constexpr size_type polymorphic_object_deleted { 12 }
 
static constexpr mask_type polymorphic_object_deleted_mask {mask_type{1} << 12 }
 
static constexpr size_type linop_apply_started { 13 }
 
static constexpr mask_type linop_apply_started_mask {mask_type{1} << 13 }
 
static constexpr size_type linop_apply_completed { 14 }
 
static constexpr mask_type linop_apply_completed_mask {mask_type{1} << 14 }
 
static constexpr size_type linop_advanced_apply_started { 15 }
 
static constexpr mask_type linop_advanced_apply_started_mask {mask_type{1} << 15 }
 
static constexpr size_type linop_advanced_apply_completed { 16 }
 
static constexpr mask_type linop_advanced_apply_completed_mask {mask_type{1} << 16 }
 
static constexpr size_type linop_factory_generate_started { 17 }
 
static constexpr mask_type linop_factory_generate_started_mask {mask_type{1} << 17 }
 
static constexpr size_type linop_factory_generate_completed { 18 }
 
static constexpr mask_type linop_factory_generate_completed_mask {mask_type{1} << 18 }
 
static constexpr size_type criterion_check_started { 19 }
 
static constexpr mask_type criterion_check_started_mask {mask_type{1} << 19 }
 
static constexpr size_type criterion_check_completed { 20 }
 
static constexpr mask_type criterion_check_completed_mask {mask_type{1} << 20 }
 
static constexpr size_type iteration_complete {21}
 
static constexpr mask_type iteration_complete_mask {mask_type{1} << 21}
 
static constexpr size_type polymorphic_object_move_started { 22 }
 
static constexpr mask_type polymorphic_object_move_started_mask {mask_type{1} << 22 }
 
static constexpr size_type polymorphic_object_move_completed { 23 }
 
static constexpr mask_type polymorphic_object_move_completed_mask {mask_type{1} << 23 }
 
static constexpr size_type batch_linop_factory_generate_started { 24 }
 
static constexpr mask_type batch_linop_factory_generate_started_mask {mask_type{1} << 24 }
 
static constexpr size_type batch_linop_factory_generate_completed { 25 }
 
static constexpr mask_type batch_linop_factory_generate_completed_mask {mask_type{1} << 25 }
 
static constexpr size_type batch_solver_completed {26}
 
static constexpr mask_type batch_solver_completed_mask {mask_type{1} << 26}
 
static constexpr mask_type executor_events_mask
 
static constexpr mask_type operation_events_mask
 
static constexpr mask_type polymorphic_object_events_mask
 
static constexpr mask_type linop_events_mask
 
static constexpr mask_type linop_factory_events_mask
 
static constexpr mask_type batch_linop_factory_events_mask
 
static constexpr mask_type criterion_events_mask
 
- Protected Member Functions inherited from gko::log::Logger
virtual void on_polymorphic_object_create_started (const Executor *exec, const PolymorphicObject *po) const
 
virtual void on_polymorphic_object_create_completed (const Executor *exec, const PolymorphicObject *input, const PolymorphicObject *output) const
 
virtual void on_polymorphic_object_copy_started (const Executor *exec, const PolymorphicObject *input, const PolymorphicObject *output) const
 
virtual void on_polymorphic_object_copy_completed (const Executor *exec, const PolymorphicObject *input, const PolymorphicObject *output) const
 
virtual void on_polymorphic_object_deleted (const Executor *exec, const PolymorphicObject *po) const
 
virtual void on_linop_apply_started (const LinOp *A, const LinOp *b, const LinOp *x) const
 
virtual void on_linop_apply_completed (const LinOp *A, const LinOp *b, const LinOp *x) const
 
virtual void on_linop_advanced_apply_started (const LinOp *A, const LinOp *alpha, const LinOp *b, const LinOp *beta, const LinOp *x) const
 
virtual void on_linop_advanced_apply_completed (const LinOp *A, const LinOp *alpha, const LinOp *b, const LinOp *beta, const LinOp *x) const
 
virtual void on_linop_factory_generate_started (const LinOpFactory *factory, const LinOp *input) const
 
virtual void on_linop_factory_generate_completed (const LinOpFactory *factory, const LinOp *input, const LinOp *output) const
 
virtual void on_criterion_check_started (const stop::Criterion *criterion, const size_type &it, const LinOp *r, const LinOp *tau, const LinOp *x, const uint8 &stopping_id, const bool &set_finalized) const
 
virtual void on_criterion_check_completed (const stop::Criterion *criterion, const size_type &it, const LinOp *r, const LinOp *tau, const LinOp *x, const uint8 &stopping_id, const bool &set_finalized, const array< stopping_status > *status, const bool &one_changed, const bool &all_converged) const
 
virtual void on_criterion_check_completed (const stop::Criterion *criterion, const size_type &it, const LinOp *r, const LinOp *tau, const LinOp *implicit_tau_sq, const LinOp *x, const uint8 &stopping_id, const bool &set_finalized, const array< stopping_status > *status, const bool &one_changed, const bool &all_converged) const
 
virtual void on_iteration_complete (const LinOp *solver, const size_type &it, const LinOp *r, const LinOp *x=nullptr, const LinOp *tau=nullptr) const
 
virtual void on_iteration_complete (const LinOp *solver, const size_type &it, const LinOp *r, const LinOp *x, const LinOp *tau, const LinOp *implicit_tau_sq) const
 
virtual void on_iteration_complete (const LinOp *solver, const LinOp *b, const LinOp *x, const size_type &it, const LinOp *r, const LinOp *tau, const LinOp *implicit_tau_sq, const array< stopping_status > *status, bool stopped) const
 
virtual void on_polymorphic_object_move_started (const Executor *exec, const PolymorphicObject *input, const PolymorphicObject *output) const
 
virtual void on_polymorphic_object_move_completed (const Executor *exec, const PolymorphicObject *input, const PolymorphicObject *output) const
 
virtual void on_batch_linop_factory_generate_started (const batch::BatchLinOpFactory *factory, const batch::BatchLinOp *input) const
 
virtual void on_batch_linop_factory_generate_completed (const batch::BatchLinOpFactory *factory, const batch::BatchLinOp *input, const batch::BatchLinOp *output) const
 
virtual void on_batch_solver_completed (const array< int > &iters, const array< double > &residual_norms) const
 
virtual void on_batch_solver_completed (const array< int > &iters, const array< float > &residual_norms) const
 
virtual void on_batch_solver_completed (const array< int > &iters, const array< gko::half > &residual_norms) const
 
 Logger (std::shared_ptr< const gko::Executor > exec, const mask_type &enabled_events=all_events_mask)
 
 Logger (const mask_type &enabled_events=all_events_mask)
 

Member Function Documentation

◆ on_allocation_completed()

void loggers::OperationLogger::on_allocation_completed ( const gko::Executor exec,
const gko::size_type num_bytes,
const gko::uintptr location 
) const
inlineoverridevirtual

Executor's allocation completed event.

Parameters
execthe executor used
num_bytesthe number of bytes allocated
locationthe address at which the data was allocated

Reimplemented from gko::log::Logger.

◆ on_allocation_started()

void loggers::OperationLogger::on_allocation_started ( const gko::Executor exec,
const gko::size_type num_bytes 
) const
inlineoverridevirtual

Executor's allocation started event.

Parameters
execthe executor used
num_bytesthe number of bytes to allocate

Reimplemented from gko::log::Logger.

◆ on_copy_completed()

void loggers::OperationLogger::on_copy_completed ( const gko::Executor exec_from,
const gko::Executor exec_to,
const gko::uintptr loc_from,
const gko::uintptr loc_to,
const gko::size_type num_bytes 
) const
inlineoverridevirtual

Executor's copy completed event.

Parameters
exec_fromthe executor copied from
exec_tothe executor copied to
loc_fromthe address at which the data was copied from
loc_tothe address at which the data was copied to
num_bytesthe number of bytes copied

Reimplemented from gko::log::Logger.

References gko::Executor::synchronize().

◆ on_copy_started()

void loggers::OperationLogger::on_copy_started ( const gko::Executor exec_from,
const gko::Executor exec_to,
const gko::uintptr loc_from,
const gko::uintptr loc_to,
const gko::size_type num_bytes 
) const
inlineoverridevirtual

Executor's copy started event.

Parameters
exec_fromthe executor to be copied from
exec_tothe executor to be copied to
loc_fromthe address at which the data will be copied from
loc_tothe address at which the data will be copied to
num_bytesthe number of bytes to be copied

Reimplemented from gko::log::Logger.

References gko::Executor::synchronize().

◆ on_free_completed()

void loggers::OperationLogger::on_free_completed ( const gko::Executor exec,
const gko::uintptr location 
) const
inlineoverridevirtual

Executor's free completed event.

Parameters
execthe executor used
locationthe address at which the data was freed

Reimplemented from gko::log::Logger.

◆ on_free_started()

void loggers::OperationLogger::on_free_started ( const gko::Executor exec,
const gko::uintptr location 
) const
inlineoverridevirtual

Executor's free started event.

Parameters
execthe executor used
locationthe address at which the data will be freed

Reimplemented from gko::log::Logger.

◆ on_operation_completed()

void loggers::OperationLogger::on_operation_completed ( const gko::Executor exec,
const gko::Operation op 
) const
inlineoverridevirtual

Executor's operation completed event (method run).

Parameters
execthe executor used
opthe completed operation
Note
For the GPU, to be certain that the operation completed it is required to call synchronize. This burden falls on the logger. Most of the loggers will do lightweight logging, and therefore this operation for the GPU just notes that the Operation has been sent to the GPU.

Reimplemented from gko::log::Logger.

References gko::Operation::get_name().

◆ on_operation_launched()

void loggers::OperationLogger::on_operation_launched ( const gko::Executor exec,
const gko::Operation op 
) const
inlineoverridevirtual

Executor's operation launched event (method run).

Parameters
execthe executor used
opthe operation launched

Reimplemented from gko::log::Logger.

References gko::Operation::get_name().


The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/ginkgo-test/checkouts/latest/build/doc/doxygen/examples/performance-debugging.cpp