LBANN  0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
lbann::callback::timer Class Reference

#include <timer.hpp>

Inheritance diagram for lbann::callback::timer:
[legend]
Collaboration diagram for lbann::callback::timer:
[legend]

Public Member Functions

 timer (const std::shared_ptr< lbann_summary > &summarizer=nullptr)
 
 timer (const timer &)=default
 
timeroperator= (const timer &)=default
 
timercopy () const override
 
void on_epoch_begin (model *m) override
 
void on_epoch_end (model *m) override
 
void on_validation_begin (model *m) override
 
void on_validation_end (model *m) override
 
void on_test_begin (model *m) override
 
void on_test_end (model *m) override
 
void on_batch_begin (model *m) override
 
void on_batch_end (model *m) override
 
void on_batch_evaluate_begin (model *m) override
 
void on_batch_evaluate_end (model *m) override
 
std::string name () const override
 
Serialization
template<class Archive >
void serialize (Archive &ar)
 Store state to archive for checkpoint and restart. More...
 
- Public Member Functions inherited from lbann::callback_base
 callback_base (int batch_interval=1)
 Initialize a callback with an optional batch interval. More...
 
 callback_base (const callback_base &)=default
 
virtual ~callback_base ()=default
 
virtual void setup (trainer *t)
 Called once to set up the callback on the trainer. More...
 
virtual void setup (model *m)
 Called once to set up the callback on the model (after all layers are set up). More...
 
virtual void on_setup_end (model *m)
 Called at the end of setup. More...
 
virtual void on_train_begin (model *m)
 Called at the beginning of training. More...
 
virtual void on_train_end (model *m)
 Called at the end of training. More...
 
virtual void on_phase_end (model *m)
 Called at the end of every phase (multiple epochs) in a layer-wise model training. More...
 
virtual void on_forward_prop_begin (model *m)
 Called when a model begins forward propagation. More...
 
virtual void on_forward_prop_begin (model *m, Layer *l)
 Called when a layer begins forward propagation. More...
 
virtual void on_forward_prop_end (model *m)
 Called when a model ends forward propagation. More...
 
virtual void on_forward_prop_end (model *m, Layer *l)
 Called when a layer ends forward propagation. More...
 
virtual void on_backward_prop_begin (model *m)
 Called when a model begins backward propagation. More...
 
virtual void on_backward_prop_begin (model *m, Layer *l)
 Called when a layer begins backward propagation. More...
 
virtual void on_backward_prop_end (model *m)
 Called when a model ends backward propagation. More...
 
virtual void on_backward_prop_end (model *m, Layer *l)
 Called when a layer ends backward propagation. More...
 
virtual void on_optimize_begin (model *m)
 Called when a model begins optimization. More...
 
virtual void on_optimize_begin (model *m, weights *w)
 Called when weights begins optimization. More...
 
virtual void on_optimize_end (model *m)
 Called when a model ends optimization. More...
 
virtual void on_optimize_end (model *m, weights *w)
 Called when weights ends optimization. More...
 
virtual void on_evaluate_forward_prop_begin (model *m)
 Called when a model begins forward propagation for evaluation (validation / testing). More...
 
virtual void on_evaluate_forward_prop_begin (model *m, Layer *l)
 Called when a layer begins forward propagation for evaluation (validation / testing). More...
 
virtual void on_evaluate_forward_prop_end (model *m)
 Called when a model ends forward propagation for evaluation (validation / testing). More...
 
virtual void on_evaluate_forward_prop_end (model *m, Layer *l)
 Called when a layer ends forward propagation for evaluation (validation / testing). More...
 
int get_batch_interval () const
 Return the batch interval. More...
 
virtual description get_description () const
 Human-readable description. More...
 
template<class Archive >
void serialize (Archive &ar)
 Store state to archive for checkpoint and restart. More...
 
void write_proto (lbann_data::Callback &proto) const
 Write a protobuf description of the callback. More...
 

Private Member Functions

void write_specific_proto (lbann_data::Callback &proto) const final
 
void timing_begin (const model &m)
 
void timing_end (model &m)
 
void batch_timing_begin (const model &m)
 
void batch_timing_end (const model &m)
 

Private Attributes

std::map< execution_mode, EvalTypem_start_times
 
std::map< execution_mode, EvalTypem_batch_start_times
 
std::map< execution_mode, std::vector< EvalType > > m_batch_times
 
std::shared_ptr< lbann_summarym_summarizer = nullptr
 lbann_summary More...
 

Additional Inherited Members

- Protected Member Functions inherited from lbann::callback_base
std::string get_multi_trainer_path (const model &m, const std::string &root_dir)
 Build a standard directory hierarchy including trainer ID. More...
 
std::string get_multi_trainer_ec_model_path (const model &m, const std::string &root_dir)
 Build a standard directory hierachy including trainer, execution context, and model information (in that order). More...
 
std::string get_multi_trainer_model_path (const model &m, const std::string &root_dir)
 Build a standard directory hierachy including trainer, model information in that order. More...
 
callback_baseoperator= (const callback_base &)=default
 Copy-assignment operator. More...
 
- Protected Attributes inherited from lbann::callback_base
int m_batch_interval
 Batch methods should once every this many steps. More...
 

Detailed Description

Record and report model timing results. Reports the total time and mini-batch time statistics for training epochs and for model evaluations. This reports times for the master process in each model.

Definition at line 44 of file callbacks/timer.hpp.

Constructor & Destructor Documentation

◆ timer() [1/2]

lbann::callback::timer::timer ( const std::shared_ptr< lbann_summary > &  summarizer = nullptr)
inline

Definition at line 47 of file callbacks/timer.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ timer() [2/2]

lbann::callback::timer::timer ( const timer )
default

Member Function Documentation

◆ batch_timing_begin()

void lbann::callback::timer::batch_timing_begin ( const model m)
private

Start mini-batch timing session.

Here is the caller graph for this function:

◆ batch_timing_end()

void lbann::callback::timer::batch_timing_end ( const model m)
private

End mini-batch timing session. Prints results to standard output.

Here is the caller graph for this function:

◆ copy()

timer* lbann::callback::timer::copy ( ) const
inlineoverridevirtual

Implements lbann::callback_base.

Definition at line 52 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ name()

std::string lbann::callback::timer::name ( ) const
inlineoverridevirtual

Callback name.

Implements lbann::callback_base.

Definition at line 76 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_batch_begin()

void lbann::callback::timer::on_batch_begin ( model m)
inlineoverridevirtual

Record training mini-batch start time.

Reimplemented from lbann::callback_base.

Definition at line 67 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_batch_end()

void lbann::callback::timer::on_batch_end ( model m)
inlineoverridevirtual

Record training mini-batch run time.

Reimplemented from lbann::callback_base.

Definition at line 69 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_batch_evaluate_begin()

void lbann::callback::timer::on_batch_evaluate_begin ( model m)
inlineoverridevirtual

Record evaluation mini-batch start time.

Reimplemented from lbann::callback_base.

Definition at line 71 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_batch_evaluate_end()

void lbann::callback::timer::on_batch_evaluate_end ( model m)
inlineoverridevirtual

Record evaluation mini-batch run time.

Reimplemented from lbann::callback_base.

Definition at line 73 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_epoch_begin()

void lbann::callback::timer::on_epoch_begin ( model m)
inlineoverridevirtual

Start timing for a training epoch.

Reimplemented from lbann::callback_base.

Definition at line 55 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_epoch_end()

void lbann::callback::timer::on_epoch_end ( model m)
inlineoverridevirtual

Report timing for a training epoch.

Reimplemented from lbann::callback_base.

Definition at line 57 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_test_begin()

void lbann::callback::timer::on_test_begin ( model m)
inlineoverridevirtual

Start timing for testing.

Reimplemented from lbann::callback_base.

Definition at line 63 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_test_end()

void lbann::callback::timer::on_test_end ( model m)
inlineoverridevirtual

Report timing for testing.

Reimplemented from lbann::callback_base.

Definition at line 65 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_validation_begin()

void lbann::callback::timer::on_validation_begin ( model m)
inlineoverridevirtual

Start timing for validation.

Reimplemented from lbann::callback_base.

Definition at line 59 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ on_validation_end()

void lbann::callback::timer::on_validation_end ( model m)
inlineoverridevirtual

Report timing for validation.

Reimplemented from lbann::callback_base.

Definition at line 61 of file callbacks/timer.hpp.

Here is the call graph for this function:

◆ operator=()

timer& lbann::callback::timer::operator= ( const timer )
default
Here is the caller graph for this function:

◆ serialize()

template<class Archive >
void lbann::callback::timer::serialize ( Archive &  ar)

Store state to archive for checkpoint and restart.

Here is the caller graph for this function:

◆ timing_begin()

void lbann::callback::timer::timing_begin ( const model m)
private

Start timing session.

Here is the caller graph for this function:

◆ timing_end()

void lbann::callback::timer::timing_end ( model m)
private

End timing session. Prints results to standard output.

Here is the caller graph for this function:

◆ write_specific_proto()

void lbann::callback::timer::write_specific_proto ( lbann_data::Callback &  proto) const
finalprivatevirtual

Add callback specific data to prototext

Implements lbann::callback_base.

Here is the caller graph for this function:

Member Data Documentation

◆ m_batch_start_times

std::map<execution_mode, EvalType> lbann::callback::timer::m_batch_start_times
private

Mini-batch timing session start times.

Definition at line 94 of file callbacks/timer.hpp.

◆ m_batch_times

std::map<execution_mode, std::vector<EvalType> > lbann::callback::timer::m_batch_times
private

Mini-batch times.

Definition at line 96 of file callbacks/timer.hpp.

◆ m_start_times

std::map<execution_mode, EvalType> lbann::callback::timer::m_start_times
private

Timing session start times.

Definition at line 92 of file callbacks/timer.hpp.

◆ m_summarizer

std::shared_ptr<lbann_summary> lbann::callback::timer::m_summarizer = nullptr
private

lbann_summary

Definition at line 112 of file callbacks/timer.hpp.


The documentation for this class was generated from the following file: