57#define PAPI_CUDA_MPX_COUNTERS 512
58#define PAPI_CUDA_MAX_COUNTERS 30
60typedef struct cuda_ctl {
73 .description =
"CUDA profiling via NVIDIA CuPTI interfaces",
82 .fast_virtual_timer = 0,
84 .attach_must_ptrace = 0,
116 COMPDBG(
"Entering with component idx: %d\n",
cidx);
125 "Not initialized. Access component events to initialize it.");
147 const char *disabled_reason;
192 LOCKDBG(
"Locked COMPONENT_LOCK to enumerate all events.\n");
195 LOCKDBG(
"Unlocked COMPONENT_LOCK.\n");
209 }
else if (*event_code < global_event_names->
count - 1) {
210 *event_code = *event_code + 1;
232 *event_code = evt_rec->evt_code;
313 COMPDBG(
"Entering with events_count %d.\n", ntv_count);
319 if (ntv_count == 0) {
324 if (control->
info == NULL) {
333 ERRDBG(
"Too many events added.\n");
337 for (
i=0;
i<ntv_count;
i++) {
342 void *tmp_context = NULL;
int cuptid_event_table_create(ntv_event_table_t *evt_table)
int cuptid_event_enum(cuptiu_event_table_t *all_evt_names)
int cuptid_event_table_insert_record(ntv_event_table_t evt_table, const char *evt_name, unsigned int evt_code, int evt_pos)
int cuptid_control_create(ntv_event_table_t event_names, cuptid_info_t info, cuptid_ctl_t *pcupti_ctl)
int cuptid_control_start(cuptid_ctl_t cupti_ctl)
int cuptid_event_table_get_item(ntv_event_table_t evt_table, unsigned int evt_idx, ntv_event_t *record)
int cuptid_control_destroy(cuptid_ctl_t *pcupti_ctl)
int cuptid_control_read(cuptid_ctl_t cupti_ctl, long long *values)
int cuptid_event_table_find_name(ntv_event_table_t evt_table, const char *evt_name, ntv_event_t *found_rec)
int cuptid_event_table_select_by_idx(ntv_event_table_t evt_table, int count, int *idcs, ntv_event_table_t *pevt_names)
void cuptid_event_table_destroy(ntv_event_table_t *evt_table)
int cuptid_shutdown(void)
int cuptid_event_name_to_descr(char *evt_name, char *descr)
int cuptid_control_reset(cuptid_ctl_t cupti_ctl)
int cuptid_thread_info_destroy(cuptid_info_t *info)
int cuptid_control_stop(cuptid_ctl_t cupti_ctl)
int cuptid_thread_info_create(cuptid_info_t *info)
void cuptid_disabled_reason_get(const char **msg)
char * evt_name(evstock *stock, int index)
#define PAPI_2MAX_STR_LEN
static long long values[NUM_EVENTS]
#define ERRDBG(format, args...)
#define LOCKDBG(format, args...)
#define COMPDBG(format, args...)
papi_vector_t _cuda_vector
static int cuda_cleanup_eventset(hwd_control_state_t *ctl)
static int check_n_initialize(void)
static int cuda_read(hwd_context_t *ctx, hwd_control_state_t *ctl, long long **val, int flags)
static int cuda_init_component(int cidx)
static int cuda_stop(hwd_context_t *ctx, hwd_control_state_t *ctl)
static int cuda_set_domain(hwd_control_state_t *ctrl, int domain)
static int cuda_shutdown_thread(hwd_context_t *ctx)
#define PAPI_CUDA_MAX_COUNTERS
#define PAPI_CUDA_MPX_COUNTERS
static int cuda_reset(hwd_context_t *ctx, hwd_control_state_t *ctl)
static int cuda_ntv_enum_events(unsigned int *event_code, int modifier)
static int cuda_ntv_name_to_code(const char *name, unsigned int *event_code)
static int cuda_update_control_state(hwd_control_state_t *ctl, NativeInfo_t *ntv_info, int ntv_count, hwd_context_t *ctx)
static int cuda_start(hwd_context_t *ctx, hwd_control_state_t *ctl)
ntv_event_table_t global_event_names
static int cuda_init_control_state(hwd_control_state_t *ctl)
static int cuda_ntv_code_to_name(unsigned int event_code, char *name, int len)
static int cuda_shutdown_component(void)
static int cuda_init_private(void)
static int cuda_ntv_code_to_descr(unsigned int event_code, char *descr, int len)
static int cuda_init_thread(hwd_context_t *ctx)
unsigned long AO_t __attribute__((__aligned__(4)))
Return codes and api definitions.
char name[PAPI_MAX_STR_LEN]
char disabled_reason[PAPI_HUGE_STR_LEN]
long long values[PAPI_CUDA_MAX_COUNTERS]
int events_id[PAPI_CUDA_MAX_COUNTERS]
PAPI_component_info_t cmp_info
inline_static int _papi_hwi_lock(int lck)
inline_static int _papi_hwi_unlock(int lck)