|
PAPI 7.1.0.0
|

Go to the source code of this file.
Data Structures | |
| struct | ntv_event_t |
| struct | ntv_event_table_t |
| struct | rocp_ctx_t |
| struct | event_info_t |
| struct | ntv_arg |
| struct | cb_context_node_t |
| struct | cb_dispatch_arg_t |
| struct | cb_context_arg_t |
| struct | cb_context_payload_t |
Macros | |
| #define | EVENTS_WIDTH (sizeof(uint64_t) * 8) |
| #define | DEVICE_WIDTH ( 7) |
| #define | INSTAN_WIDTH ( 7) |
| #define | QLMASK_WIDTH ( 2) |
| #define | NAMEID_WIDTH (12) |
| #define | UNUSED_WIDTH (EVENTS_WIDTH - DEVICE_WIDTH - INSTAN_WIDTH - QLMASK_WIDTH - NAMEID_WIDTH) |
| #define | DEVICE_SHIFT (EVENTS_WIDTH - UNUSED_WIDTH - DEVICE_WIDTH) |
| #define | INSTAN_SHIFT (DEVICE_SHIFT - INSTAN_WIDTH) |
| #define | QLMASK_SHIFT (INSTAN_SHIFT - QLMASK_WIDTH) |
| #define | NAMEID_SHIFT (QLMASK_SHIFT - NAMEID_WIDTH) |
| #define | DEVICE_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - DEVICE_WIDTH)) << DEVICE_SHIFT) |
| #define | INSTAN_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - INSTAN_WIDTH)) << INSTAN_SHIFT) |
| #define | QLMASK_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - QLMASK_WIDTH)) << QLMASK_SHIFT) |
| #define | NAMEID_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - NAMEID_WIDTH)) << NAMEID_SHIFT) |
| #define | DEVICE_FLAG (0x2) |
| #define | INSTAN_FLAG (0x1) |
Functions | |
| static int | load_rocp_sym (void) |
| static int | init_rocp_env (void) |
| static int | init_event_table (void) |
| static int | unload_rocp_sym (void) |
| static int | sampling_ctx_open (uint64_t *, int, rocp_ctx_t *) |
| static int | intercept_ctx_open (uint64_t *, int, rocp_ctx_t *) |
| static int | sampling_ctx_close (rocp_ctx_t) |
| static int | intercept_ctx_close (rocp_ctx_t) |
| static int | sampling_ctx_start (rocp_ctx_t) |
| static int | intercept_ctx_start (rocp_ctx_t) |
| static int | sampling_ctx_stop (rocp_ctx_t) |
| static int | intercept_ctx_stop (rocp_ctx_t) |
| static int | sampling_ctx_read (rocp_ctx_t, long long **) |
| static int | intercept_ctx_read (rocp_ctx_t, long long **) |
| static int | sampling_ctx_reset (rocp_ctx_t) |
| static int | intercept_ctx_reset (rocp_ctx_t) |
| static int | sampling_shutdown (void) |
| static int | intercept_shutdown (void) |
| static int | evt_code_to_name (uint64_t event_code, char *name, int len) |
| static int | evt_id_create (event_info_t *info, uint64_t *event_id) |
| static int | evt_id_to_info (uint64_t event_id, event_info_t *info) |
| static int | evt_name_to_device (const char *name, int *device) |
| static int | evt_name_to_instance (const char *name, int *instance) |
| static int | evt_name_to_basename (const char *name, char *base, int len) |
| int | rocp_init_environment (void) |
| int | rocp_init (void) |
| int | rocp_evt_enum (uint64_t *event_code, int modifier) |
| int | rocp_evt_code_to_descr (uint64_t event_code, char *descr, int len) |
| int | rocp_evt_name_to_code (const char *name, uint64_t *event_code) |
| int | rocp_evt_code_to_name (uint64_t event_code, char *name, int len) |
| int | rocp_evt_code_to_info (uint64_t event_code, PAPI_event_info_t *info) |
| int | rocp_ctx_open (uint64_t *events_id, int num_events, rocp_ctx_t *rocp_ctx) |
| int | rocp_ctx_close (rocp_ctx_t rocp_ctx) |
| int | rocp_ctx_start (rocp_ctx_t rocp_ctx) |
| int | rocp_ctx_stop (rocp_ctx_t rocp_ctx) |
| int | rocp_ctx_read (rocp_ctx_t rocp_ctx, long long **counts) |
| int | rocp_ctx_reset (rocp_ctx_t rocp_ctx) |
| int | rocp_shutdown (void) |
| static hsa_status_t | count_ntv_events_cb (const rocprofiler_info_data_t, void *) |
| static hsa_status_t | get_ntv_events_cb (const rocprofiler_info_data_t, void *) |
| hsa_status_t | count_ntv_events_cb (const rocprofiler_info_data_t info __attribute__((unused)), void *count) |
| static int | init_features (uint64_t *, int, rocprofiler_feature_t *) |
| static int | finalize_features (rocprofiler_feature_t *, int) |
| static int | sampling_ctx_init (uint64_t *, int, rocp_ctx_t *) |
| static int | sampling_ctx_finalize (rocp_ctx_t *) |
| static int | ctx_open (rocp_ctx_t) |
| static int | ctx_close (rocp_ctx_t) |
| static int | ctx_init (uint64_t *, int, rocp_ctx_t *) |
| static int | ctx_finalize (rocp_ctx_t *) |
| static int | ctx_get_dev_feature_count (rocp_ctx_t, int) |
| static int | shutdown_event_table (void) |
| static int | event_id_to_dev_id_cb (uint64_t event_id, int *device) |
| static int | sampling_ctx_get_dev_feature_count (rocp_ctx_t, int) |
| static int | intercept_ctx_get_dev_feature_count (rocp_ctx_t, int) |
| static int | verify_events (uint64_t *, int) |
| static int | init_callbacks (rocprofiler_feature_t *, int) |
| static int | register_dispatch_counter (unsigned long, int *) |
| static int | increment_and_fetch_dispatch_counter (unsigned long) |
| static int | decrement_and_fetch_dispatch_counter (unsigned long) |
| static int | unregister_dispatch_counter (unsigned long) |
| static int | fetch_dispatch_counter (unsigned long) |
| static cb_context_node_t * | alloc_context_node (int) |
| static void | free_context_node (cb_context_node_t *) |
| static int | get_context_node (int, cb_context_node_t **) |
| static int | get_context_counters (int, cb_context_node_t *, rocp_ctx_t) |
| static void | put_context_counters (rocprofiler_feature_t *, int, cb_context_node_t *) |
| static void | put_context_node (int, cb_context_node_t *) |
| static int | intercept_ctx_init (uint64_t *, int, rocp_ctx_t *) |
| static int | intercept_ctx_finalize (rocp_ctx_t *) |
| static int | count_unique_events (uint64_t *events_id, int num_events, int *num_unique) |
| static int | copy_unique_events (uint64_t *target, uint64_t *source, int source_len) |
| static int | save_callback_features (rocprofiler_feature_t *features, int feature_count) |
| static int | cleanup_callback_features (rocprofiler_feature_t *features, int feature_count) |
| static bool | context_handler_cb (const rocprofiler_pool_entry_t *, void *) |
| static hsa_status_t | dispatch_cb (const rocprofiler_callback_data_t *, void *, rocprofiler_group_t *) |
| static void | process_context_entry (cb_context_payload_t *, rocprofiler_feature_t *, int) |
| void | __attribute__ ((visibility("default"))) |
Variables | |
| unsigned int | rocm_prof_mode |
| unsigned int | _rocm_lock |
| static hsa_status_t(* | rocp_get_info_p )(const hsa_agent_t *, rocprofiler_info_kind_t, void *) |
| static hsa_status_t(* | rocp_iterate_info_p )(const hsa_agent_t *, rocprofiler_info_kind_t, hsa_status_t(*)(const rocprofiler_info_data_t, void *), void *) |
| static hsa_status_t(* | rocp_error_string_p )(const char **) |
| static hsa_status_t(* | rocp_open_p )(hsa_agent_t, rocprofiler_feature_t *, uint32_t, rocprofiler_t **, uint32_t, rocprofiler_properties_t *) |
| static hsa_status_t(* | rocp_close_p )(rocprofiler_t *) |
| static hsa_status_t(* | rocp_group_count_p )(const rocprofiler_t *, uint32_t *) |
| static hsa_status_t(* | rocp_start_p )(rocprofiler_t *, uint32_t) |
| static hsa_status_t(* | rocp_read_p )(rocprofiler_t *, uint32_t) |
| static hsa_status_t(* | rocp_stop_p )(rocprofiler_t *, uint32_t) |
| static hsa_status_t(* | rocp_get_group_p )(rocprofiler_t *, uint32_t, rocprofiler_group_t *) |
| static hsa_status_t(* | rocp_get_data_p )(rocprofiler_t *, uint32_t) |
| static hsa_status_t(* | rocp_group_get_data_p )(rocprofiler_group_t *) |
| static hsa_status_t(* | rocp_get_metrics_p )(const rocprofiler_t *) |
| static hsa_status_t(* | rocp_reset_p )(rocprofiler_t *, uint32_t) |
| static hsa_status_t(* | rocp_pool_open_p )(hsa_agent_t, rocprofiler_feature_t *, uint32_t, rocprofiler_pool_t **, uint32_t, rocprofiler_pool_properties_t *) |
| static hsa_status_t(* | rocp_pool_close_p )(rocprofiler_pool_t *) |
| static hsa_status_t(* | rocp_pool_fetch_p )(rocprofiler_pool_t *, rocprofiler_pool_entry_t *) |
| static hsa_status_t(* | rocp_pool_flush_p )(rocprofiler_pool_t *) |
| static hsa_status_t(* | rocp_set_queue_cbs_p )(rocprofiler_queue_callbacks_t, void *) |
| static hsa_status_t(* | rocp_start_queue_cbs_p )(void) |
| static hsa_status_t(* | rocp_stop_queue_cbs_p )(void) |
| static hsa_status_t(* | rocp_remove_queue_cbs_p )(void) |
| static void * | rocp_dlp = NULL |
| static ntv_event_table_t | ntv_table |
| static ntv_event_table_t * | ntv_table_p |
| static void * | htable |
| static void * | htable_intercept |
| struct { | |
| uint64_t * events_id | |
| rocprofiler_feature_t * features | |
| int feature_count | |
| int active_thread_count | |
| int kernel_count | |
| } | intercept_global_state |
| static cb_dispatch_arg_t | cb_dispatch_arg |
| static cb_context_node_t * | cb_ctx_list_heads [PAPI_ROCM_MAX_DEV_COUNT] |
Definition in file roc_profiler.c.
| #define DEVICE_FLAG (0x2) |
Definition at line 39 of file roc_profiler.c.
| #define DEVICE_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - DEVICE_WIDTH)) << DEVICE_SHIFT) |
Definition at line 35 of file roc_profiler.c.
| #define DEVICE_SHIFT (EVENTS_WIDTH - UNUSED_WIDTH - DEVICE_WIDTH) |
Definition at line 31 of file roc_profiler.c.
| #define DEVICE_WIDTH ( 7) |
Definition at line 26 of file roc_profiler.c.
| #define EVENTS_WIDTH (sizeof(uint64_t) * 8) |
Event identifier encoding format: +------------------------------—+----—+----—+–+---------—+ | unused | dev | inst | | nameid | +------------------------------—+----—+----—+–+---------—+
unused : 36 bits device : 7 bits ([0 - 127] devices) instance : 7 bits ([0 - 127] instances) qlmask : 2 bits (qualifier mask) nameid : 12 bits ([0 - 4095] event names)
Definition at line 25 of file roc_profiler.c.
| #define INSTAN_FLAG (0x1) |
Definition at line 40 of file roc_profiler.c.
| #define INSTAN_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - INSTAN_WIDTH)) << INSTAN_SHIFT) |
Definition at line 36 of file roc_profiler.c.
| #define INSTAN_SHIFT (DEVICE_SHIFT - INSTAN_WIDTH) |
Definition at line 32 of file roc_profiler.c.
| #define INSTAN_WIDTH ( 7) |
Definition at line 27 of file roc_profiler.c.
| #define NAMEID_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - NAMEID_WIDTH)) << NAMEID_SHIFT) |
Definition at line 38 of file roc_profiler.c.
| #define NAMEID_SHIFT (QLMASK_SHIFT - NAMEID_WIDTH) |
Definition at line 34 of file roc_profiler.c.
| #define NAMEID_WIDTH (12) |
Definition at line 29 of file roc_profiler.c.
| #define QLMASK_MASK ((0xFFFFFFFFFFFFFFFF >> (EVENTS_WIDTH - QLMASK_WIDTH)) << QLMASK_SHIFT) |
Definition at line 37 of file roc_profiler.c.
| #define QLMASK_SHIFT (INSTAN_SHIFT - QLMASK_WIDTH) |
Definition at line 33 of file roc_profiler.c.
| #define QLMASK_WIDTH ( 2) |
Definition at line 28 of file roc_profiler.c.
| #define UNUSED_WIDTH (EVENTS_WIDTH - DEVICE_WIDTH - INSTAN_WIDTH - QLMASK_WIDTH - NAMEID_WIDTH) |
Definition at line 30 of file roc_profiler.c.
| void __attribute__ | ( | (visibility("default")) | ) |
Definition at line 2374 of file roc_profiler.c.

|
static |
Definition at line 2211 of file roc_profiler.c.

Definition at line 1916 of file roc_profiler.c.


|
static |
Definition at line 2156 of file roc_profiler.c.


Definition at line 1875 of file roc_profiler.c.


| hsa_status_t count_ntv_events_cb | ( | const rocprofiler_info_data_t info | __attribute__(unused), |
| void * | count | ||
| ) |
init_event_table utility functions
Definition at line 873 of file roc_profiler.c.
|
static |

Definition at line 1841 of file roc_profiler.c.


|
static |
Definition at line 1324 of file roc_profiler.c.


|
static |
Definition at line 1958 of file roc_profiler.c.


Definition at line 1384 of file roc_profiler.c.


Context init and finalize
Definition at line 1947 of file roc_profiler.c.


|
static |
Definition at line 1268 of file roc_profiler.c.


Definition at line 2327 of file roc_profiler.c.


|
static |
Definition at line 2114 of file roc_profiler.c.


sampling_ctx_open utility functions
Definition at line 1145 of file roc_profiler.c.


Definition at line 739 of file roc_profiler.c.


|
static |
Definition at line 764 of file roc_profiler.c.

|
static |
Definition at line 774 of file roc_profiler.c.


Definition at line 851 of file roc_profiler.c.

Definition at line 809 of file roc_profiler.c.

Definition at line 820 of file roc_profiler.c.


Definition at line 2281 of file roc_profiler.c.


|
static |
|
static |
Definition at line 2343 of file roc_profiler.c.

|
static |
Definition at line 2297 of file roc_profiler.c.


|
static |
Definition at line 880 of file roc_profiler.c.


Definition at line 2265 of file roc_profiler.c.


Definition at line 1993 of file roc_profiler.c.


|
static |
Definition at line 682 of file roc_profiler.c.


rocp_ctx_{open,close,start,stop,read,reset} sampling mode utility functions
Definition at line 1346 of file roc_profiler.c.


|
static |
Definition at line 580 of file roc_profiler.c.

|
static |
Definition at line 1512 of file roc_profiler.c.


|
static |
Definition at line 1926 of file roc_profiler.c.

Definition at line 1416 of file roc_profiler.c.

Definition at line 1755 of file roc_profiler.c.


Definition at line 1472 of file roc_profiler.c.


Definition at line 1607 of file roc_profiler.c.


|
static |
|
static |
Definition at line 1537 of file roc_profiler.c.


|
static |
Definition at line 1572 of file roc_profiler.c.


|
static |
Definition at line 1688 of file roc_profiler.c.


|
static |
rocp_{init,shutdown} and rocp_ctx_{open,close,start,stop,read,reset} functions
rocp_init utility functions
Definition at line 470 of file roc_profiler.c.

|
static |
intercept mode counter read infrastructure
Definition at line 2167 of file roc_profiler.c.


|
static |
Definition at line 2228 of file roc_profiler.c.


|
static |
Definition at line 2253 of file roc_profiler.c.

Definition at line 2052 of file roc_profiler.c.


| int rocp_ctx_close | ( | rocp_ctx_t | rocp_ctx | ) |
Definition at line 401 of file roc_profiler.c.


Definition at line 390 of file roc_profiler.c.


Definition at line 434 of file roc_profiler.c.


| int rocp_ctx_reset | ( | rocp_ctx_t | rocp_ctx | ) |
Definition at line 445 of file roc_profiler.c.


| int rocp_ctx_start | ( | rocp_ctx_t | rocp_ctx | ) |
Definition at line 412 of file roc_profiler.c.


| int rocp_ctx_stop | ( | rocp_ctx_t | rocp_ctx | ) |
Definition at line 423 of file roc_profiler.c.


Definition at line 260 of file roc_profiler.c.


| int rocp_evt_code_to_info | ( | uint64_t | event_code, |
| PAPI_event_info_t * | info | ||
| ) |
Definition at line 331 of file roc_profiler.c.


Definition at line 324 of file roc_profiler.c.


Definition at line 193 of file roc_profiler.c.


| int rocp_evt_name_to_code | ( | const char * | name, |
| uint64_t * | event_code | ||
| ) |
Definition at line 276 of file roc_profiler.c.


| int rocp_init | ( | void | ) |
Definition at line 159 of file roc_profiler.c.


| int rocp_init_environment | ( | void | ) |
Definition at line 152 of file roc_profiler.c.


| int rocp_shutdown | ( | void | ) |
Definition at line 456 of file roc_profiler.c.


|
static |
Definition at line 952 of file roc_profiler.c.


|
static |
Definition at line 1238 of file roc_profiler.c.


Definition at line 1394 of file roc_profiler.c.

Definition at line 1154 of file roc_profiler.c.


Definition at line 921 of file roc_profiler.c.


Definition at line 1029 of file roc_profiler.c.


|
static |
Definition at line 1089 of file roc_profiler.c.


|
static |
Definition at line 973 of file roc_profiler.c.


|
static |
Definition at line 1001 of file roc_profiler.c.


|
static |
Definition at line 1113 of file roc_profiler.c.


Definition at line 1906 of file roc_profiler.c.


|
static |
rocp_shutdown sampling mode utility functions
Definition at line 1124 of file roc_profiler.c.

|
static |
Definition at line 545 of file roc_profiler.c.

Definition at line 2075 of file roc_profiler.c.


intercept_ctx_{open,close} utility functions
Definition at line 1718 of file roc_profiler.c.


| unsigned int _rocm_lock |
Definition at line 85 of file roc_profiler.c.
| int active_thread_count |
Definition at line 1451 of file roc_profiler.c.
|
static |
The context handler prepares a node for every processes entry. The node is associated with the thread that generated the monitoring request and contains the value of the counters read by rocprofiler. Each node is then added to the corresponding device queue and is eventually read by intercept_ctx_read
Definition at line 2111 of file roc_profiler.c.
|
static |
Definition at line 1685 of file roc_profiler.c.
| uint64_t* events_id |
Definition at line 1448 of file roc_profiler.c.
| int feature_count |
Definition at line 1450 of file roc_profiler.c.
| rocprofiler_feature_t* features |
Definition at line 1449 of file roc_profiler.c.
|
static |
Definition at line 147 of file roc_profiler.c.
|
static |
Definition at line 148 of file roc_profiler.c.
| struct { ... } intercept_global_state |
| int kernel_count |
Definition at line 1452 of file roc_profiler.c.
|
static |
Definition at line 145 of file roc_profiler.c.
|
static |
Definition at line 146 of file roc_profiler.c.
| unsigned int rocm_prof_mode |
Definition at line 84 of file roc_profiler.c.
|
static |
Definition at line 94 of file roc_profiler.c.
|
static |
Definition at line 144 of file roc_profiler.c.
|
static |
Definition at line 90 of file roc_profiler.c.
|
static |
Definition at line 100 of file roc_profiler.c.
|
static |
Definition at line 99 of file roc_profiler.c.
|
static |
Definition at line 88 of file roc_profiler.c.
|
static |
Definition at line 102 of file roc_profiler.c.
|
static |
Definition at line 95 of file roc_profiler.c.
|
static |
Definition at line 101 of file roc_profiler.c.
|
static |
Definition at line 89 of file roc_profiler.c.
|
static |
Definition at line 93 of file roc_profiler.c.
|
static |
Definition at line 107 of file roc_profiler.c.
|
static |
Definition at line 108 of file roc_profiler.c.
|
static |
Definition at line 109 of file roc_profiler.c.
|
static |
Definition at line 106 of file roc_profiler.c.
|
static |
Definition at line 97 of file roc_profiler.c.
|
static |
Definition at line 113 of file roc_profiler.c.
|
static |
Definition at line 103 of file roc_profiler.c.
|
static |
Definition at line 110 of file roc_profiler.c.
|
static |
Definition at line 96 of file roc_profiler.c.
|
static |
Definition at line 111 of file roc_profiler.c.
|
static |
Definition at line 98 of file roc_profiler.c.
|
static |
Definition at line 112 of file roc_profiler.c.