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.
|
This component is useful for bundling together a fixed set of hardware counter identifiers which require no runtime configuration. More...
#include "timemory/components/papi/papi_tuple.hpp"
Public Types | |
using | size_type = std::size_t |
using | value_type = std::array< long long, sizeof...(EventTypes)> |
using | entry_type = typename value_type::value_type |
using | this_type = papi_tuple< EventTypes... > |
using | base_type = base< this_type, value_type > |
using | storage_type = typename base_type::storage_type |
using | tracker_type = policy::instance_tracker< papi_tuple< EventTypes... > > |
using | common_type = this_type |
template<typename Tp > | |
using | array_t = std::array< Tp, num_events > |
Public Member Functions | |
void | sample () |
void | start () |
void | stop () |
this_type & | operator+= (const this_type &rhs) |
this_type & | operator-= (const this_type &rhs) |
template<typename Archive > | |
void | serialize (Archive &ar, const unsigned int) |
entry_type | get_display (int evt_type) const |
string_t | get_display () const |
template<typename Tp = double> | |
auto | get () const |
Static Public Member Functions | |
static void | configure () |
static void | thread_init () |
static void | thread_finalize () |
static void | initialize () |
static void | finalize () |
static value_type | record () |
static std::string | label () |
static std::string | description () |
static std::string | display_unit () |
static int64_t | unit () |
template<typename Lhs , typename Rhs , size_t N, size_t... Idx> | |
static void | convert (std::array< Lhs, N > &lhs, const std::array< Rhs, N > &rhs, std::index_sequence< Idx... >) |
static array_t< std::string > | label_array () |
static array_t< std::string > | description_array () |
static array_t< std::string > | display_unit_array () |
static array_t< int64_t > | unit_array () |
template<typename... Args> | |
static opaque | get_opaque (Args &&...) |
Static Public Attributes | |
static const size_type | num_events = sizeof...(EventTypes) |
static const short | precision = 3 |
static const short | width = 12 |
This component is useful for bundling together a fixed set of hardware counter identifiers which require no runtime configuration.
EventTypes | Compile-time constant list of PAPI event identifiers |
Definition at line 65 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::array_t = std::array<Tp, num_events> |
Definition at line 81 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::base_type = base<this_type, value_type> |
Definition at line 74 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::common_type = this_type |
Definition at line 77 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::entry_type = typename value_type::value_type |
Definition at line 72 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::size_type = std::size_t |
Definition at line 70 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::storage_type = typename base_type::storage_type |
Definition at line 75 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::this_type = papi_tuple<EventTypes...> |
Definition at line 73 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::tracker_type = policy::instance_tracker<papi_tuple<EventTypes...> > |
Definition at line 76 of file papi_tuple.hpp.
using tim::component::papi_tuple< EventTypes >::value_type = std::array<long long, sizeof...(EventTypes)> |
Definition at line 71 of file papi_tuple.hpp.
|
inlinestatic |
Definition at line 92 of file papi_tuple.hpp.
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::configure(), tim::component::papi_tuple< EventTypes >::initialize(), tim::component::papi_tuple< EventTypes >::sample(), tim::component::papi_tuple< EventTypes >::start(), and tim::component::papi_tuple< EventTypes >::thread_init().
|
inlinestatic |
Definition at line 294 of file papi_tuple.hpp.
References TIMEMORY_FOLD_EXPRESSION.
Referenced by tim::component::papi_tuple< EventTypes >::get().
|
inlinestatic |
Definition at line 229 of file papi_tuple.hpp.
|
inlinestatic |
Definition at line 323 of file papi_tuple.hpp.
References tim::at(), and tim::component::papi_tuple< EventTypes >::num_events.
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::description_array().
|
inlinestatic |
Definition at line 230 of file papi_tuple.hpp.
|
inlinestatic |
Definition at line 334 of file papi_tuple.hpp.
References tim::at(), and tim::component::papi_tuple< EventTypes >::num_events.
|
inlinestatic |
Definition at line 110 of file papi_tuple.hpp.
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::finalize().
|
inline |
Definition at line 301 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::convert(), and tim::component::base< papi_tuple< EventTypes... >, std::array< long long, sizeof...(EventTypes)> >::load().
|
inline |
Definition at line 255 of file papi_tuple.hpp.
References tim::at(), tim::component::base< Tp, Value >::get_format_flags(), tim::component::base< Tp, Value >::get_precision(), tim::component::base< Tp, Value >::get_width(), tim::component::base< papi_tuple< EventTypes... >, std::array< long long, sizeof...(EventTypes)> >::load(), tim::component::papi_tuple< EventTypes >::num_events, and tim::os.
Referenced by tim::component::papi_tuple< EventTypes >::serialize().
|
inline |
Definition at line 253 of file papi_tuple.hpp.
|
inlinestaticinherited |
Definition at line 72 of file declaration.hpp.
|
inlinestatic |
Definition at line 109 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::configure().
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::initialize().
|
inlinestatic |
Definition at line 225 of file papi_tuple.hpp.
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::label().
|
inlinestatic |
Definition at line 312 of file papi_tuple.hpp.
References tim::at(), and tim::component::papi_tuple< EventTypes >::num_events.
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::display_unit_array(), and tim::component::papi_rate_tuple< RateT, EventTypes >::label_array().
|
inline |
Definition at line 197 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::num_events.
|
inline |
Definition at line 206 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::num_events.
|
inlinestatic |
Definition at line 114 of file papi_tuple.hpp.
References tim::component::papi_common::data().
Referenced by tim::component::papi_tuple< EventTypes >::sample(), tim::component::papi_tuple< EventTypes >::start(), and tim::component::papi_tuple< EventTypes >::stop().
|
inline |
Definition at line 157 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::configure(), tim::component::papi_common::events, tim::component::papi_tuple< EventTypes >::record(), and tim::invoke::start().
|
inline |
Definition at line 237 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::get_display(), tim::component::base< papi_tuple< EventTypes... >, std::array< long long, sizeof...(EventTypes)> >::laps, and tim::component::papi_tuple< EventTypes >::num_events.
|
inline |
Definition at line 171 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::configure(), tim::component::papi_common::events, tim::component::papi_tuple< EventTypes >::record(), and tim::invoke::start().
|
inline |
Definition at line 186 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::record(), and tim::invoke::stop().
|
inlinestatic |
Definition at line 104 of file papi_tuple.hpp.
References tim::component::papi_common::finalize_papi().
|
inlinestatic |
Definition at line 103 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::configure().
|
inlinestatic |
Definition at line 231 of file papi_tuple.hpp.
|
inlinestatic |
Definition at line 345 of file papi_tuple.hpp.
References tim::component::papi_tuple< EventTypes >::num_events.
Referenced by tim::component::papi_rate_tuple< RateT, EventTypes >::unit_array().
|
friend |
Definition at line 122 of file papi_tuple.hpp.
|
friend |
Definition at line 79 of file papi_tuple.hpp.
|
friend |
Definition at line 79 of file papi_tuple.hpp.
|
friend |
Definition at line 79 of file papi_tuple.hpp.
|
friend |
Definition at line 79 of file papi_tuple.hpp.
|
friend |
Definition at line 79 of file papi_tuple.hpp.
|
static |
Definition at line 79 of file papi_tuple.hpp.
Referenced by tim::component::papi_tuple< EventTypes >::description_array(), tim::component::papi_tuple< EventTypes >::display_unit_array(), tim::component::papi_tuple< EventTypes >::get_display(), tim::component::papi_tuple< EventTypes >::label_array(), tim::component::papi_tuple< EventTypes >::operator+=(), tim::component::papi_tuple< EventTypes >::operator-=(), tim::component::papi_tuple< EventTypes >::serialize(), and tim::component::papi_tuple< EventTypes >::unit_array().
|
static |
Definition at line 221 of file papi_tuple.hpp.
|
static |
Definition at line 222 of file papi_tuple.hpp.