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::cupti_pcsampling Struct Reference

The PC Sampling gives the number of samples for each source and assembly line with various stall reasons. Using this information, you can pinpoint portions of your kernel that are introducing latencies and the reason for the latency. More...

#include "timemory/components/cupti/cupti_pcsampling.hpp"

+ Collaboration diagram for tim::component::cupti_pcsampling:

Public Types

using data_type = cupti::pcdata
 
using size_type = std::size_t
 
using tracker_type = policy::instance_tracker< cupti_pcsampling, false >
 
using config_type = std::tuple< null_type, null_type, null_type, null_type, null_type, std::vector< null_type >, null_type, null_type, null_type, size_t, size_t >
 
using value_type = cupti::pcsample
 
using this_type = cupti_pcsampling
 
using base_type = base< this_type, value_type >
 
using storage_type = empty_storage
 

Public Member Functions

void store (const value_type &_data)
 
void store (value_type &&_data)
 
void start ()
 
void stop ()
 
void set_started ()
 
void set_stopped ()
 
std::string get_display () const
 
auto get_laps () const
 
std::vector< int64_t > get () const
 

Static Public Member Functions

static std::string label ()
 
static std::string description ()
 
static void global_init ()
 
static void global_finalize ()
 
static data_type record ()
 
static void sample ()
 
static std::vector< std::string > label_array ()
 
static void cleanup ()
 
static config_type configure ()
 
static void initialize ()
 
static void finalize ()
 
static auto & get_configuration_data ()
 
template<typename... Args>
static opaque get_opaque (Args &&...)
 

Protected Attributes

const char * m_prefix = nullptr
 

Detailed Description

The PC Sampling gives the number of samples for each source and assembly line with various stall reasons. Using this information, you can pinpoint portions of your kernel that are introducing latencies and the reason for the latency.

Definition at line 58 of file cupti_pcsampling.hpp.

Member Typedef Documentation

◆ base_type

◆ config_type

◆ data_type

Definition at line 63 of file cupti_pcsampling.hpp.

◆ size_type

Definition at line 64 of file cupti_pcsampling.hpp.

◆ storage_type

Definition at line 66 of file declaration.hpp.

◆ this_type

◆ tracker_type

◆ value_type

Definition at line 81 of file cupti_pcsampling.hpp.

Member Function Documentation

◆ cleanup()

static void tim::component::cupti_pcsampling::cleanup ( )
inlinestatic

Definition at line 107 of file cupti_pcsampling.hpp.

107{ cupti::pcstall::allocate_arrays(0); }

◆ configure()

static config_type tim::component::cupti_pcsampling::configure ( )
static

◆ description()

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

Definition at line 86 of file cupti_pcsampling.hpp.

86{ return "CUpti Program Counter (PC) Sampling API"; }

◆ finalize()

static void tim::component::cupti_pcsampling::finalize ( )
static

Referenced by global_finalize().

◆ get()

std::vector< int64_t > tim::component::cupti_pcsampling::get ( ) const

◆ get_configuration_data()

static auto & tim::component::cupti_pcsampling::get_configuration_data ( )
inlinestatic

Definition at line 122 of file cupti_pcsampling.hpp.

123 {
124 static persistent_data _instance{};
125 return _instance;
126 }

◆ get_display()

std::string tim::component::cupti_pcsampling::get_display ( ) const

◆ get_laps()

auto tim::component::cupti_pcsampling::get_laps ( ) const
inline

Definition at line 102 of file cupti_pcsampling.hpp.

102{ return value.totalSamples; }

◆ 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::cupti_pcsampling::global_finalize ( )
inlinestatic

Definition at line 88 of file cupti_pcsampling.hpp.

88{ finalize(); }

References finalize().

◆ global_init()

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

Definition at line 87 of file cupti_pcsampling.hpp.

87{ initialize(); }

References initialize().

◆ initialize()

static void tim::component::cupti_pcsampling::initialize ( )
static

Referenced by global_init().

◆ label()

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

Definition at line 85 of file cupti_pcsampling.hpp.

85{ return "cupti_pcsampling"; }

◆ label_array()

static std::vector< std::string > tim::component::cupti_pcsampling::label_array ( )
static

◆ record()

static data_type tim::component::cupti_pcsampling::record ( )
static

◆ sample()

static void tim::component::cupti_pcsampling::sample ( )
static

◆ set_started()

void tim::component::cupti_pcsampling::set_started ( )

◆ set_stopped()

void tim::component::cupti_pcsampling::set_stopped ( )

◆ start()

void tim::component::cupti_pcsampling::start ( )

◆ stop()

void tim::component::cupti_pcsampling::stop ( )

◆ store() [1/2]

void tim::component::cupti_pcsampling::store ( const value_type _data)

◆ store() [2/2]

void tim::component::cupti_pcsampling::store ( value_type &&  _data)

Member Data Documentation

◆ m_prefix

const char* tim::component::cupti_pcsampling::m_prefix = nullptr
protected

Definition at line 116 of file cupti_pcsampling.hpp.


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