timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::component::likwid_marker Struct Reference

Provides likwid perfmon marker forwarding. Requires. More...

#include "timemory/components/likwid/components.hpp"

+ Collaboration diagram for tim::component::likwid_marker:

Public Types

using value_type = void
 
using this_type = likwid_marker
 
using base_type = base< this_type, value_type >
 
using storage_type = empty_storage
 

Public Member Functions

void start ()
 
void stop ()
 
void reset_region ()
 
void register_marker ()
 
likwid_data get () const
 
void set_prefix (const char *_prefix)
 

Static Public Member Functions

static std::string label ()
 
static std::string description ()
 
static value_type record ()
 
static void global_init ()
 
static void thread_init ()
 
static void global_finalize ()
 
static void next ()
 
template<typename... Args>
static opaque get_opaque (Args &&...)
 

Detailed Description

Provides likwid perfmon marker forwarding. Requires.

Definition at line 55 of file components.hpp.

Member Typedef Documentation

◆ base_type

◆ storage_type

Definition at line 66 of file declaration.hpp.

◆ this_type

◆ value_type

Definition at line 58 of file components.hpp.

Member Function Documentation

◆ description()

static std::string tim::component::likwid_marker::description ( )
inlinestatic

Definition at line 63 of file components.hpp.

63{ return "LIKWID perfmon (CPU) marker forwarding"; }

◆ get()

likwid_data tim::component::likwid_marker::get ( ) const
inline

Definition at line 124 of file components.hpp.

125 {
126 likwid_data _data{};
127#if defined(TIMEMORY_USE_LIKWID_PERFMON)
128 likwid_markerGetRegion(m_prefix, &_data.nevents, _data.events.data(), &_data.time,
129 &_data.count);
130 _data.events.resize(_data.nevents);
131#endif
132 return _data;
133 }

◆ get_opaque()

template<typename... Args>
static opaque tim::component::empty_base::get_opaque ( Args &&  ...)
inlinestaticinherited

Definition at line 72 of file declaration.hpp.

73 {
74 return opaque{};
75 }

◆ global_finalize()

static void tim::component::likwid_marker::global_finalize ( )
inlinestatic

Definition at line 80 of file components.hpp.

81 {
82#if defined(TIMEMORY_USE_LIKWID_PERFMON)
83 likwid_markerClose();
84#endif
85 }

◆ global_init()

static void tim::component::likwid_marker::global_init ( )
inlinestatic

Definition at line 66 of file components.hpp.

67 {
68#if defined(TIMEMORY_USE_LIKWID_PERFMON)
69 likwid_markerInit();
70#endif
71 }

◆ label()

static std::string tim::component::likwid_marker::label ( )
inlinestatic

Definition at line 62 of file components.hpp.

62{ return "likwid_marker"; }

◆ next()

static void tim::component::likwid_marker::next ( )
inlinestatic

Definition at line 87 of file components.hpp.

88 {
89#if defined(TIMEMORY_USE_LIKWID_PERFMON)
90 likwid_markerNextGroup();
91#endif
92 }

◆ record()

static value_type tim::component::likwid_marker::record ( )
inlinestatic

Definition at line 64 of file components.hpp.

64{}

◆ register_marker()

void tim::component::likwid_marker::register_marker ( )
inline

Definition at line 117 of file components.hpp.

118 {
119#if defined(TIMEMORY_USE_LIKWID_PERFMON)
120 likwid_markerRegisterRegion(m_prefix);
121#endif
122 }

Referenced by set_prefix().

◆ reset_region()

void tim::component::likwid_marker::reset_region ( )
inline

Definition at line 110 of file components.hpp.

111 {
112#if defined(TIMEMORY_USE_LIKWID_PERFMON)
113 likwid_markerResetRegion(m_prefix);
114#endif
115 }

◆ set_prefix()

void tim::component::likwid_marker::set_prefix ( const char *  _prefix)
inline

Definition at line 135 of file components.hpp.

136 {
137 m_prefix = _prefix;
139 }
char const std::string & _prefix
Definition: config.cpp:55

References tim::_prefix, and register_marker().

◆ start()

void tim::component::likwid_marker::start ( )
inline

Definition at line 96 of file components.hpp.

97 {
98#if defined(TIMEMORY_USE_LIKWID_PERFMON)
99 likwid_markerStartRegion(m_prefix);
100#endif
101 }

◆ stop()

void tim::component::likwid_marker::stop ( )
inline

Definition at line 103 of file components.hpp.

104 {
105#if defined(TIMEMORY_USE_LIKWID_PERFMON)
106 likwid_markerStopRegion(m_prefix);
107#endif
108 }

◆ thread_init()

static void tim::component::likwid_marker::thread_init ( )
inlinestatic

Definition at line 73 of file components.hpp.

74 {
75#if defined(TIMEMORY_USE_LIKWID_PERFMON)
76 likwid_markerThreadInit();
77#endif
78 }

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