Optimized Belief Propagation (CPU and GPU)
DetailedTimings< T > Class Template Reference

Class to store timings of one or more segments taken during the run(s) of an implementation or across multiple implementations.
Index for timing segments must be enum type. More...

#include <DetailedTimings.h>

Public Member Functions

 DetailedTimings (const std::unordered_map< T, std::string_view > &timing_segment_names)
 Construct a new DetailedTimings object where each timing segment is initialized. More...
 
void ResetTiming ()
 Reset all timings. More...
 
void AddToCurrentTimings (const DetailedTimings &in_detailed_timings)
 Add instance of DetailedTimings to current DetailedTimings. More...
 
void AddTiming (const T timing_segment, const std::chrono::duration< double > &segment_time)
 Add timing by segment index. More...
 
std::chrono::duration< double > MedianTiming (const T run_segment_index) const
 Get median timing for a specified segment that may have been run multiple times. More...
 
RunData AsRunData () const
 Return current timing data as a RunData object for evaluation. More...
 

Detailed Description

template<typename T>
class DetailedTimings< T >

Class to store timings of one or more segments taken during the run(s) of an implementation or across multiple implementations.
Index for timing segments must be enum type.

Template Parameters
T

Definition at line 51 of file DetailedTimings.h.

Constructor & Destructor Documentation

◆ DetailedTimings()

template<typename T >
requires std::is_enum_v< T > DetailedTimings< T >::DetailedTimings ( const std::unordered_map< T, std::string_view > &  timing_segment_names)
explicit

Construct a new DetailedTimings object where each timing segment is initialized.

Parameters
timing_segment_names

Definition at line 111 of file DetailedTimings.h.

Member Function Documentation

◆ AddTiming()

template<typename T >
void DetailedTimings< T >::AddTiming ( const T  timing_segment,
const std::chrono::duration< double > &  segment_time 
)
inline

Add timing by segment index.

Parameters
timing_segment
segment_time

Definition at line 80 of file DetailedTimings.h.

Here is the caller graph for this function:

◆ AddToCurrentTimings()

template<typename T >
requires std::is_enum_v< T > void DetailedTimings< T >::AddToCurrentTimings ( const DetailedTimings< T > &  in_detailed_timings)

Add instance of DetailedTimings to current DetailedTimings.

Parameters
in_detailed_timings

Definition at line 127 of file DetailedTimings.h.

Here is the caller graph for this function:

◆ AsRunData()

template<typename T >
requires std::is_enum_v< T > RunData DetailedTimings< T >::AsRunData

Return current timing data as a RunData object for evaluation.

Returns
RunData object containing timing data

Definition at line 170 of file DetailedTimings.h.

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

◆ MedianTiming()

template<typename T >
requires std::is_enum_v< T > std::chrono::duration< double > DetailedTimings< T >::MedianTiming ( const T  run_segment_index) const

Get median timing for a specified segment that may have been run multiple times.

Parameters
run_segment_index
Returns
Median timing of segment

Definition at line 150 of file DetailedTimings.h.

Here is the caller graph for this function:

◆ ResetTiming()

template<typename T >
void DetailedTimings< T >::ResetTiming ( )
inline

Reset all timings.

Definition at line 65 of file DetailedTimings.h.


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