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.
|
Combines hardware counters and timers and executes the empirical roofline toolkit during application termination to estimate the peak possible performance for the machine. More...
#include "timemory/components/roofline/gpu_roofline.hpp"
Public Member Functions | |
gpu_roofline () | |
~gpu_roofline ()=default | |
gpu_roofline (const gpu_roofline &rhs) | |
gpu_roofline & | operator= (const gpu_roofline &rhs) |
gpu_roofline (gpu_roofline &&) noexcept=default | |
gpu_roofline & | operator= (gpu_roofline &&) noexcept=default |
result_type | get () const |
void | start () |
void | stop () |
this_type & | operator+= (const this_type &rhs) |
this_type & | operator-= (const this_type &rhs) |
this_type & | operator+= (const value_type &rhs) |
secondary_type | get_secondary () const |
string_t | get_display () const |
template<typename Archive > | |
void | save (Archive &ar, const unsigned int) const |
template<typename Archive > | |
void | load (Archive &ar, const unsigned int) |
Static Public Member Functions | |
static events_callback_t & | get_events_callback () |
static metrics_callback_t & | get_metrics_callback () |
static MODE & | event_mode () |
static void | configure (const MODE &_mode, int _device=0) |
static void | configure () |
static std::string | get_mode_string () |
static std::string | get_type_string () |
static ert_config_t & | get_finalizer () |
static ert_data_ptr_t & | get_ert_data () |
static void | global_init () |
template<typename Tp , typename FuncT > | |
static void | set_executor_callback (FuncT &&f) |
static void | global_finalize (storage_type *_store) |
static void | thread_init () |
static void | thread_finalize () |
template<typename Archive > | |
static void | extra_serialization (Archive &ar) |
static int64_t | unit () |
static std::string | label () |
static std::string | description () |
static std::string | display_unit () |
static value_type | record () |
static label_type | label_array () |
static label_type | display_unit_array () |
template<typename... Args> | |
static opaque | get_opaque (Args &&...) |
Static Public Attributes | |
static const short | precision = 3 |
static const short | width = 8 |
Friends | |
struct | operation::record< this_type > |
struct | operation::start< this_type > |
struct | operation::stop< this_type > |
struct | operation::set_started< this_type > |
struct | operation::set_stopped< this_type > |
class | impl::storage< this_type, trait::uses_value_storage< this_type, value_type >::value > |
std::ostream & | operator<< (std::ostream &os, const this_type &obj) |
Combines hardware counters and timers and executes the empirical roofline toolkit during application termination to estimate the peak possible performance for the machine.
Types | Variadic list of data types for roofline analysis |
Definition at line 70 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::activity_type = cupti_activity |
Definition at line 82 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::activity_value_type = typename cupti_activity::value_type |
Definition at line 580 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::base_type = base<this_type, value_type> |
Definition at line 77 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::count_type = wall_clock |
Definition at line 86 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::counters_type = cupti_counters |
Definition at line 81 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::counters_value_type = typename cupti_counters::value_type |
Definition at line 581 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::device_t = device::gpu |
Definition at line 83 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_callback_t = std::tuple<ert_callback_type<Types>...> |
Definition at line 112 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_callback_type = ert::callback<ert_executor_type<Tp> > |
Definition at line 106 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_config_t = std::tuple<ert_config_type<Types>...> |
Definition at line 109 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_config_type = ert::configuration<device_t, Tp, count_type> |
Definition at line 100 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_counter_t = std::tuple<ert_counter_type<Types>...> |
Definition at line 110 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_counter_type = ert::counter<device_t, Tp, count_type> |
Definition at line 102 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_data_ptr_t = std::shared_ptr<ert_data_t> |
Definition at line 96 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_data_t = ert::exec_data<count_type> |
Definition at line 95 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_executor_t = std::tuple<ert_executor_type<Types>...> |
Definition at line 111 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::ert_executor_type = ert::executor<device_t, Tp, count_type> |
Definition at line 104 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::events_callback_t = std::function<strvec_t()> |
Definition at line 132 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::label_type = std::vector<std::string> |
Definition at line 85 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::metrics_callback_t = events_callback_t |
Definition at line 133 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::result_type = std::vector<double> |
Definition at line 84 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::secondary_type = std::unordered_multimap<std::string, value_type> |
Definition at line 582 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::size_type = std::size_t |
Definition at line 80 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::storage_type = typename base_type::storage_type |
Definition at line 78 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::strvec_t = std::vector<std::string> |
Definition at line 131 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::this_type = gpu_roofline<Types...> |
Definition at line 76 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::types_tuple = std::tuple<Types...> |
Definition at line 87 of file gpu_roofline.hpp.
using tim::component::gpu_roofline< Types >::value_type = std::tuple<typename cupti_activity::value_type, typename cupti_counters::value_type> |
Definition at line 74 of file gpu_roofline.hpp.
|
strong |
Enumerator | |
---|---|
COUNTERS | |
ACTIVITY |
Definition at line 123 of file gpu_roofline.hpp.
|
inline |
Definition at line 427 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::configure().
|
default |
|
inline |
Definition at line 430 of file gpu_roofline.hpp.
|
defaultnoexcept |
|
inlinestatic |
Definition at line 261 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::configure(), and tim::component::gpu_roofline< Types >::event_mode().
Referenced by tim::component::gpu_roofline< Types >::gpu_roofline(), and tim::component::gpu_roofline< Types >::configure().
|
inlinestatic |
Definition at line 180 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::cupti_counters::configure(), tim::component::gpu_roofline< Types >::event_mode(), tim::component::gpu_roofline< Types >::get_events_callback(), tim::component::gpu_roofline< Types >::get_metrics_callback(), tim::instruction_roofline, and tim::component::cupti_counters::label_array().
|
inlinestatic |
Definition at line 390 of file gpu_roofline.hpp.
|
inlinestatic |
Definition at line 396 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::base< cupti_activity, intmax_t >::display_unit(), tim::component::cupti_counters::display_unit(), and tim::component::gpu_roofline< Types >::event_mode().
Referenced by tim::component::gpu_roofline< Types >::display_unit_array().
|
inlinestatic |
Definition at line 662 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::display_unit().
|
inlinestatic |
Definition at line 152 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, tim::gpu_roofline_mode, and tim::roofline_mode.
Referenced by tim::component::gpu_roofline< Types >::configure(), tim::component::gpu_roofline< Types >::display_unit(), tim::component::gpu_roofline< Types >::get(), tim::component::gpu_roofline< Types >::get_display(), tim::component::gpu_roofline< Types >::get_mode_string(), tim::component::gpu_roofline< Types >::get_secondary(), tim::component::gpu_roofline< Types >::global_finalize(), tim::component::gpu_roofline< Types >::global_init(), tim::component::gpu_roofline< Types >::load(), tim::component::gpu_roofline< Types >::operator+=(), tim::component::gpu_roofline< Types >::operator-=(), tim::component::gpu_roofline< Types >::record(), tim::component::gpu_roofline< Types >::save(), tim::component::gpu_roofline< Types >::start(), tim::component::gpu_roofline< Types >::stop(), and tim::component::gpu_roofline< Types >::unit().
|
inlinestatic |
Definition at line 358 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::get_ert_data().
|
inline |
Definition at line 450 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
Referenced by tim::component::gpu_roofline< Types >::save().
|
inline |
Definition at line 635 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
Referenced by tim::component::gpu_roofline< Types >::save().
|
inlinestatic |
Definition at line 291 of file gpu_roofline.hpp.
Referenced by tim::component::gpu_roofline< Types >::extra_serialization(), and tim::component::gpu_roofline< Types >::global_finalize().
|
inlinestatic |
Definition at line 137 of file gpu_roofline.hpp.
Referenced by tim::component::gpu_roofline< Types >::configure().
|
inlinestatic |
Definition at line 283 of file gpu_roofline.hpp.
Referenced by tim::component::gpu_roofline< Types >::global_finalize().
|
inlinestatic |
Definition at line 143 of file gpu_roofline.hpp.
Referenced by tim::component::gpu_roofline< Types >::configure().
|
inlinestatic |
Definition at line 269 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
Referenced by tim::component::gpu_roofline< Types >::label(), and tim::component::gpu_roofline< Types >::save().
|
inlinestaticinherited |
Definition at line 72 of file declaration.hpp.
|
inline |
Definition at line 586 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
|
inlinestatic |
Definition at line 276 of file gpu_roofline.hpp.
References tim::demangle(), and tim::mpl::apply< Ret >::join().
Referenced by tim::component::gpu_roofline< Types >::label(), and tim::component::gpu_roofline< Types >::save().
|
inlinestatic |
Definition at line 323 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::debug, tim::component::gpu_roofline< Types >::event_mode(), tim::component::gpu_roofline< Types >::get_ert_data(), tim::component::gpu_roofline< Types >::get_finalizer(), tim::component::empty_storage::size(), and tim::verbose.
|
inlinestatic |
Definition at line 299 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, and tim::component::gpu_roofline< Types >::event_mode().
|
inlinestatic |
Definition at line 375 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::get_mode_string(), tim::component::gpu_roofline< Types >::get_type_string(), tim::roofline_type_labels, and tim::roofline_type_labels_gpu.
|
inlinestatic |
Definition at line 658 of file gpu_roofline.hpp.
|
inline |
Definition at line 844 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, tim::component::gpu_roofline< Types >::event_mode(), and tim::component::base< gpu_roofline< Types... >, std::tuple< cupti_activity::value_type, cupti_counters::value_type > >::laps.
|
inline |
Definition at line 508 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
|
inline |
Definition at line 556 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
|
inline |
Definition at line 532 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
|
inline |
Definition at line 435 of file gpu_roofline.hpp.
|
defaultnoexcept |
|
inlinestatic |
|
inline |
Definition at line 795 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::event_mode(), tim::component::gpu_roofline< Types >::get(), tim::component::gpu_roofline< Types >::get_display(), tim::component::gpu_roofline< Types >::get_mode_string(), tim::component::gpu_roofline< Types >::get_type_string(), and tim::component::base< gpu_roofline< Types... >, std::tuple< cupti_activity::value_type, cupti_counters::value_type > >::laps.
|
inlinestatic |
Definition at line 316 of file gpu_roofline.hpp.
References tim::ert::executor< DeviceT, Tp, CounterT >::get_callback().
|
inline |
Definition at line 463 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
|
inline |
Definition at line 484 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::COUNTERS, and tim::component::gpu_roofline< Types >::event_mode().
|
inlinestatic |
Definition at line 353 of file gpu_roofline.hpp.
|
inlinestatic |
Definition at line 352 of file gpu_roofline.hpp.
|
inlinestatic |
Definition at line 368 of file gpu_roofline.hpp.
References tim::component::gpu_roofline< Types >::ACTIVITY, tim::component::gpu_roofline< Types >::event_mode(), tim::component::base< cupti_activity, intmax_t >::unit(), and tim::component::cupti_counters::unit().
|
friend |
Definition at line 586 of file gpu_roofline.hpp.
|
friend |
Definition at line 1 of file gpu_roofline.hpp.
|
friend |
Definition at line 1 of file gpu_roofline.hpp.
|
friend |
Definition at line 1 of file gpu_roofline.hpp.
|
friend |
Definition at line 1 of file gpu_roofline.hpp.
|
friend |
Definition at line 1 of file gpu_roofline.hpp.
|
friend |
Definition at line 650 of file gpu_roofline.hpp.
|
static |
Definition at line 118 of file gpu_roofline.hpp.
|
static |
Definition at line 119 of file gpu_roofline.hpp.