|
enum | {
PAPI_ENUM_EVENTS = 0
, PAPI_ENUM_FIRST
, PAPI_PRESET_ENUM_AVAIL
, PAPI_PRESET_ENUM_MSC
,
PAPI_PRESET_ENUM_INS
, PAPI_PRESET_ENUM_IDL
, PAPI_PRESET_ENUM_BR
, PAPI_PRESET_ENUM_CND
,
PAPI_PRESET_ENUM_MEM
, PAPI_PRESET_ENUM_CACH
, PAPI_PRESET_ENUM_L1
, PAPI_PRESET_ENUM_L2
,
PAPI_PRESET_ENUM_L3
, PAPI_PRESET_ENUM_TLB
, PAPI_PRESET_ENUM_FP
, PAPI_NTV_ENUM_UMASKS
,
PAPI_NTV_ENUM_UMASK_COMBOS
, PAPI_NTV_ENUM_IARR
, PAPI_NTV_ENUM_DARR
, PAPI_NTV_ENUM_OPCM
,
PAPI_NTV_ENUM_IEAR
, PAPI_NTV_ENUM_DEAR
, PAPI_NTV_ENUM_GROUPS
} |
|
enum | { PAPI_LOCATION_CORE = 0
, PAPI_LOCATION_CPU
, PAPI_LOCATION_PACKAGE
, PAPI_LOCATION_UNCORE
} |
| This structure is the event information that is exposed to the user through the API. More...
|
|
enum | { PAPI_DATATYPE_INT64 = 0
, PAPI_DATATYPE_UINT64
, PAPI_DATATYPE_FP64
, PAPI_DATATYPE_BIT64
} |
|
enum | { PAPI_VALUETYPE_RUNNING_SUM = 0
, PAPI_VALUETYPE_ABSOLUTE
} |
|
enum | { PAPI_TIMESCOPE_SINCE_START = 0
, PAPI_TIMESCOPE_SINCE_LAST
, PAPI_TIMESCOPE_UNTIL_NEXT
, PAPI_TIMESCOPE_POINT
} |
|
enum | { PAPI_UPDATETYPE_ARBITRARY = 0
, PAPI_UPDATETYPE_PUSH
, PAPI_UPDATETYPE_PULL
, PAPI_UPDATETYPE_FIXEDFREQ
} |
|
enum | PAPI_dev_type_id_e {
PAPI_DEV_TYPE_ID__CPU
, PAPI_DEV_TYPE_ID__CUDA
, PAPI_DEV_TYPE_ID__ROCM
, PAPI_DEV_TYPE_ID__MAX_NUM
,
PAPI_DEV_TYPE_ID__CPU
, PAPI_DEV_TYPE_ID__CUDA
, PAPI_DEV_TYPE_ID__ROCM
, PAPI_DEV_TYPE_ID__MAX_NUM
,
PAPI_DEV_TYPE_ID__CPU
, PAPI_DEV_TYPE_ID__CUDA
, PAPI_DEV_TYPE_ID__ROCM
, PAPI_DEV_TYPE_ID__MAX_NUM
,
PAPI_DEV_TYPE_ID__CPU
, PAPI_DEV_TYPE_ID__CUDA
, PAPI_DEV_TYPE_ID__ROCM
, PAPI_DEV_TYPE_ID__MAX_NUM
} |
|
enum | {
PAPI_DEV_TYPE_ENUM__FIRST = (0 )
, PAPI_DEV_TYPE_ENUM__CPU = (1 << PAPI_DEV_TYPE_ID__CPU )
, PAPI_DEV_TYPE_ENUM__CUDA = (1 << PAPI_DEV_TYPE_ID__CUDA)
, PAPI_DEV_TYPE_ENUM__ROCM = (1 << PAPI_DEV_TYPE_ID__ROCM)
,
PAPI_DEV_TYPE_ENUM__ALL = (1 << PAPI_DEV_TYPE_ID__MAX_NUM) - 1
} |
|
enum | PAPI_dev_type_attr_e {
PAPI_DEV_TYPE_ATTR__INT_PAPI_ID
, PAPI_DEV_TYPE_ATTR__INT_VENDOR_ID
, PAPI_DEV_TYPE_ATTR__CHAR_NAME
, PAPI_DEV_TYPE_ATTR__INT_COUNT
,
PAPI_DEV_TYPE_ATTR__CHAR_STATUS
, PAPI_DEV_TYPE_ATTR__INT_PAPI_ID
, PAPI_DEV_TYPE_ATTR__INT_VENDOR_ID
, PAPI_DEV_TYPE_ATTR__CHAR_NAME
,
PAPI_DEV_TYPE_ATTR__INT_COUNT
, PAPI_DEV_TYPE_ATTR__CHAR_STATUS
, PAPI_DEV_TYPE_ATTR__INT_PAPI_ID
, PAPI_DEV_TYPE_ATTR__INT_VENDOR_ID
,
PAPI_DEV_TYPE_ATTR__CHAR_NAME
, PAPI_DEV_TYPE_ATTR__INT_COUNT
, PAPI_DEV_TYPE_ATTR__CHAR_STATUS
, PAPI_DEV_TYPE_ATTR__INT_PAPI_ID
,
PAPI_DEV_TYPE_ATTR__INT_VENDOR_ID
, PAPI_DEV_TYPE_ATTR__CHAR_NAME
, PAPI_DEV_TYPE_ATTR__INT_COUNT
, PAPI_DEV_TYPE_ATTR__CHAR_STATUS
} |
|
enum | PAPI_dev_attr_e {
PAPI_DEV_ATTR__CPU_CHAR_NAME
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_ASSOC
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_SOCKET_COUNT
, PAPI_DEV_ATTR__CPU_UINT_NUMA_COUNT
, PAPI_DEV_ATTR__CPU_UINT_CORE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_THREAD_COUNT
, PAPI_DEV_ATTR__CPU_UINT_FAMILY
, PAPI_DEV_ATTR__CPU_UINT_MODEL
, PAPI_DEV_ATTR__CPU_UINT_STEPPING
,
PAPI_DEV_ATTR__CPU_UINT_NUMA_MEM_SIZE
, PAPI_DEV_ATTR__CPU_UINT_THR_NUMA_AFFINITY
, PAPI_DEV_ATTR__CPU_UINT_THR_PER_NUMA
, PAPI_DEV_ATTR__CUDA_ULONG_UID
,
PAPI_DEV_ATTR__CUDA_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__CUDA_UINT_WARP_SIZE
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_SM
,
PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_X
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_X
,
PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_THR_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SM_COUNT
,
PAPI_DEV_ATTR__CUDA_UINT_MULTI_KERNEL
, PAPI_DEV_ATTR__CUDA_UINT_MAP_HOST_MEM
, PAPI_DEV_ATTR__CUDA_UINT_MEMCPY_OVERLAP
, PAPI_DEV_ATTR__CUDA_UINT_UNIFIED_ADDR
,
PAPI_DEV_ATTR__CUDA_UINT_MANAGED_MEM
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MINOR
, PAPI_DEV_ATTR__CUDA_UINT_BLK_PER_SM
,
PAPI_DEV_ATTR__ROCM_ULONG_UID
, PAPI_DEV_ATTR__ROCM_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__ROCM_UINT_WAVEFRONT_SIZE
, PAPI_DEV_ATTR__ROCM_UINT_WORKGROUP_SIZE
,
PAPI_DEV_ATTR__ROCM_UINT_WAVE_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_SHM_PER_WG
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Y
,
PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Z
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Z
,
PAPI_DEV_ATTR__ROCM_UINT_CU_COUNT
, PAPI_DEV_ATTR__ROCM_UINT_SIMD_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MINOR
,
PAPI_DEV_ATTR__CPU_CHAR_NAME
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_ASSOC
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_SOCKET_COUNT
, PAPI_DEV_ATTR__CPU_UINT_NUMA_COUNT
, PAPI_DEV_ATTR__CPU_UINT_CORE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_THREAD_COUNT
, PAPI_DEV_ATTR__CPU_UINT_FAMILY
, PAPI_DEV_ATTR__CPU_UINT_MODEL
, PAPI_DEV_ATTR__CPU_UINT_STEPPING
,
PAPI_DEV_ATTR__CPU_UINT_NUMA_MEM_SIZE
, PAPI_DEV_ATTR__CPU_UINT_THR_NUMA_AFFINITY
, PAPI_DEV_ATTR__CPU_UINT_THR_PER_NUMA
, PAPI_DEV_ATTR__CUDA_ULONG_UID
,
PAPI_DEV_ATTR__CUDA_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__CUDA_UINT_WARP_SIZE
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_SM
,
PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_X
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_X
,
PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_THR_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SM_COUNT
,
PAPI_DEV_ATTR__CUDA_UINT_MULTI_KERNEL
, PAPI_DEV_ATTR__CUDA_UINT_MAP_HOST_MEM
, PAPI_DEV_ATTR__CUDA_UINT_MEMCPY_OVERLAP
, PAPI_DEV_ATTR__CUDA_UINT_UNIFIED_ADDR
,
PAPI_DEV_ATTR__CUDA_UINT_MANAGED_MEM
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MINOR
, PAPI_DEV_ATTR__CUDA_UINT_BLK_PER_SM
,
PAPI_DEV_ATTR__ROCM_ULONG_UID
, PAPI_DEV_ATTR__ROCM_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__ROCM_UINT_WAVEFRONT_SIZE
, PAPI_DEV_ATTR__ROCM_UINT_WORKGROUP_SIZE
,
PAPI_DEV_ATTR__ROCM_UINT_WAVE_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_SHM_PER_WG
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Y
,
PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Z
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Z
,
PAPI_DEV_ATTR__ROCM_UINT_CU_COUNT
, PAPI_DEV_ATTR__ROCM_UINT_SIMD_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MINOR
,
PAPI_DEV_ATTR__CPU_CHAR_NAME
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_ASSOC
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_SOCKET_COUNT
, PAPI_DEV_ATTR__CPU_UINT_NUMA_COUNT
, PAPI_DEV_ATTR__CPU_UINT_CORE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_THREAD_COUNT
, PAPI_DEV_ATTR__CPU_UINT_FAMILY
, PAPI_DEV_ATTR__CPU_UINT_MODEL
, PAPI_DEV_ATTR__CPU_UINT_STEPPING
,
PAPI_DEV_ATTR__CPU_UINT_NUMA_MEM_SIZE
, PAPI_DEV_ATTR__CPU_UINT_THR_NUMA_AFFINITY
, PAPI_DEV_ATTR__CPU_UINT_THR_PER_NUMA
, PAPI_DEV_ATTR__CUDA_ULONG_UID
,
PAPI_DEV_ATTR__CUDA_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__CUDA_UINT_WARP_SIZE
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_SM
,
PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_X
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_X
,
PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_THR_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SM_COUNT
,
PAPI_DEV_ATTR__CUDA_UINT_MULTI_KERNEL
, PAPI_DEV_ATTR__CUDA_UINT_MAP_HOST_MEM
, PAPI_DEV_ATTR__CUDA_UINT_MEMCPY_OVERLAP
, PAPI_DEV_ATTR__CUDA_UINT_UNIFIED_ADDR
,
PAPI_DEV_ATTR__CUDA_UINT_MANAGED_MEM
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MINOR
, PAPI_DEV_ATTR__CUDA_UINT_BLK_PER_SM
,
PAPI_DEV_ATTR__ROCM_ULONG_UID
, PAPI_DEV_ATTR__ROCM_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__ROCM_UINT_WAVEFRONT_SIZE
, PAPI_DEV_ATTR__ROCM_UINT_WORKGROUP_SIZE
,
PAPI_DEV_ATTR__ROCM_UINT_WAVE_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_SHM_PER_WG
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Y
,
PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Z
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Z
,
PAPI_DEV_ATTR__ROCM_UINT_CU_COUNT
, PAPI_DEV_ATTR__ROCM_UINT_SIMD_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MINOR
,
PAPI_DEV_ATTR__CPU_CHAR_NAME
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_SIZE
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_SIZE
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_COUNT
, PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_ASSOC
,
PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_ASSOC
, PAPI_DEV_ATTR__CPU_UINT_SOCKET_COUNT
, PAPI_DEV_ATTR__CPU_UINT_NUMA_COUNT
, PAPI_DEV_ATTR__CPU_UINT_CORE_COUNT
,
PAPI_DEV_ATTR__CPU_UINT_THREAD_COUNT
, PAPI_DEV_ATTR__CPU_UINT_FAMILY
, PAPI_DEV_ATTR__CPU_UINT_MODEL
, PAPI_DEV_ATTR__CPU_UINT_STEPPING
,
PAPI_DEV_ATTR__CPU_UINT_NUMA_MEM_SIZE
, PAPI_DEV_ATTR__CPU_UINT_THR_NUMA_AFFINITY
, PAPI_DEV_ATTR__CPU_UINT_THR_PER_NUMA
, PAPI_DEV_ATTR__CUDA_ULONG_UID
,
PAPI_DEV_ATTR__CUDA_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__CUDA_UINT_WARP_SIZE
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_SM
,
PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_X
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_X
,
PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Z
, PAPI_DEV_ATTR__CUDA_UINT_THR_PER_BLK
, PAPI_DEV_ATTR__CUDA_UINT_SM_COUNT
,
PAPI_DEV_ATTR__CUDA_UINT_MULTI_KERNEL
, PAPI_DEV_ATTR__CUDA_UINT_MAP_HOST_MEM
, PAPI_DEV_ATTR__CUDA_UINT_MEMCPY_OVERLAP
, PAPI_DEV_ATTR__CUDA_UINT_UNIFIED_ADDR
,
PAPI_DEV_ATTR__CUDA_UINT_MANAGED_MEM
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MINOR
, PAPI_DEV_ATTR__CUDA_UINT_BLK_PER_SM
,
PAPI_DEV_ATTR__ROCM_ULONG_UID
, PAPI_DEV_ATTR__ROCM_CHAR_DEVICE_NAME
, PAPI_DEV_ATTR__ROCM_UINT_WAVEFRONT_SIZE
, PAPI_DEV_ATTR__ROCM_UINT_WORKGROUP_SIZE
,
PAPI_DEV_ATTR__ROCM_UINT_WAVE_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_SHM_PER_WG
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Y
,
PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Z
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_X
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Y
, PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Z
,
PAPI_DEV_ATTR__ROCM_UINT_CU_COUNT
, PAPI_DEV_ATTR__ROCM_UINT_SIMD_PER_CU
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MAJOR
, PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MINOR
} |
|
|
int | PAPI_accum (int EventSet, long long *values) |
|
int | PAPI_add_event (int EventSet, int Event) |
|
int | PAPI_add_named_event (int EventSet, const char *EventName) |
|
int | PAPI_add_events (int EventSet, int *Events, int number) |
|
int | PAPI_assign_eventset_component (int EventSet, int cidx) |
|
int | PAPI_attach (int EventSet, unsigned long tid) |
|
int | PAPI_cleanup_eventset (int EventSet) |
|
int | PAPI_create_eventset (int *EventSet) |
|
int | PAPI_detach (int EventSet) |
|
int | PAPI_destroy_eventset (int *EventSet) |
|
int | PAPI_enum_event (int *EventCode, int modifier) |
|
int | PAPI_enum_cmp_event (int *EventCode, int modifier, int cidx) |
|
int | PAPI_event_code_to_name (int EventCode, char *out) |
|
int | PAPI_event_name_to_code (const char *in, int *out) |
|
int | PAPI_get_dmem_info (PAPI_dmem_info_t *dest) |
|
int | PAPI_get_event_info (int EventCode, PAPI_event_info_t *info) |
|
const PAPI_exe_info_t * | PAPI_get_executable_info (void) |
|
const PAPI_hw_info_t * | PAPI_get_hardware_info (void) |
|
const PAPI_component_info_t * | PAPI_get_component_info (int cidx) |
|
int | PAPI_get_multiplex (int EventSet) |
|
int | PAPI_get_opt (int option, PAPI_option_t *ptr) |
|
int | PAPI_get_cmp_opt (int option, PAPI_option_t *ptr, int cidx) |
|
long long | PAPI_get_real_cyc (void) |
|
long long | PAPI_get_real_nsec (void) |
|
long long | PAPI_get_real_usec (void) |
|
const PAPI_shlib_info_t * | PAPI_get_shared_lib_info (void) |
|
int | PAPI_get_thr_specific (int tag, void **ptr) |
|
int | PAPI_get_overflow_event_index (int Eventset, long long overflow_vector, int *array, int *number) |
|
long long | PAPI_get_virt_cyc (void) |
|
long long | PAPI_get_virt_nsec (void) |
|
long long | PAPI_get_virt_usec (void) |
|
int | PAPI_is_initialized (void) |
|
int | PAPI_library_init (int version) |
|
int | PAPI_list_events (int EventSet, int *Events, int *number) |
|
int | PAPI_list_threads (unsigned long *tids, int *number) |
|
int | PAPI_lock (int) |
|
int | PAPI_multiplex_init (void) |
|
int | PAPI_num_cmp_hwctrs (int cidx) |
|
int | PAPI_num_events (int EventSet) |
|
int | PAPI_overflow (int EventSet, int EventCode, int threshold, int flags, PAPI_overflow_handler_t handler) |
|
void | PAPI_perror (const char *msg) |
|
int | PAPI_profil (void *buf, unsigned bufsiz, vptr_t offset, unsigned scale, int EventSet, int EventCode, int threshold, int flags) |
|
int | PAPI_query_event (int EventCode) |
|
int | PAPI_query_named_event (const char *EventName) |
|
int | PAPI_read (int EventSet, long long *values) |
|
int | PAPI_read_ts (int EventSet, long long *values, long long *cyc) |
|
int | PAPI_register_thread (void) |
|
int | PAPI_remove_event (int EventSet, int EventCode) |
|
int | PAPI_remove_named_event (int EventSet, const char *EventName) |
|
int | PAPI_remove_events (int EventSet, int *Events, int number) |
|
int | PAPI_reset (int EventSet) |
|
int | PAPI_set_debug (int level) |
|
int | PAPI_set_cmp_domain (int domain, int cidx) |
|
int | PAPI_set_domain (int domain) |
|
int | PAPI_set_cmp_granularity (int granularity, int cidx) |
|
int | PAPI_set_granularity (int granularity) |
|
int | PAPI_set_multiplex (int EventSet) |
|
int | PAPI_set_opt (int option, PAPI_option_t *ptr) |
|
int | PAPI_set_thr_specific (int tag, void *ptr) |
|
void | PAPI_shutdown (void) |
|
int | PAPI_sprofil (PAPI_sprofil_t *prof, int profcnt, int EventSet, int EventCode, int threshold, int flags) |
|
int | PAPI_start (int EventSet) |
|
int | PAPI_state (int EventSet, int *status) |
|
int | PAPI_stop (int EventSet, long long *values) |
|
char * | PAPI_strerror (int) |
|
unsigned long | PAPI_thread_id (void) |
|
int | PAPI_thread_init (unsigned long(*id_fn)(void)) |
|
int | PAPI_unlock (int) |
|
int | PAPI_unregister_thread (void) |
|
int | PAPI_write (int EventSet, long long *values) |
|
int | PAPI_get_event_component (int EventCode) |
|
int | PAPI_get_eventset_component (int EventSet) |
|
int | PAPI_get_component_index (const char *name) |
|
int | PAPI_disable_component (int cidx) |
|
int | PAPI_disable_component_by_name (const char *name) |
|
int | PAPI_num_components (void) |
|
int | PAPI_flips_rate (int event, float *rtime, float *ptime, long long *flpins, float *mflips) |
|
int | PAPI_flops_rate (int event, float *rtime, float *ptime, long long *flpops, float *mflops) |
|
int | PAPI_ipc (float *rtime, float *ptime, long long *ins, float *ipc) |
|
int | PAPI_epc (int event, float *rtime, float *ptime, long long *ref, long long *core, long long *evt, float *epc) |
|
int | PAPI_rate_stop (void) |
|
int | PAPI_enum_dev_type (int enum_modifier, void **handle) |
|
int | PAPI_get_dev_type_attr (void *handle, PAPI_dev_type_attr_e attr, void *value) |
|
int | PAPI_get_dev_attr (void *handle, int id, PAPI_dev_attr_e attr, void *value) |
|
int | PAPI_hl_region_begin (const char *region) |
|
int | PAPI_hl_read (const char *region) |
|
int | PAPI_hl_region_end (const char *region) |
|
int | PAPI_hl_stop (void) |
|
int | PAPI_num_hwctrs (void) |
|
#define PAPI_VERSION_NUMBER |
( |
|
maj, |
|
|
|
min, |
|
|
|
rev, |
|
|
|
inc |
|
) |
| (((maj)<<24) | ((min)<<16) | ((rev)<<8) | (inc)) |
@page CDI PAPI Component Development Interface
@par \em Introduction
PAPI-C consists of a Framework and between 1 and 16 Components.
The Framework is platform independent and exposes the PAPI API to end users.
The Components provide access to hardware information on specific subsystems.
By convention, Component 0 is always a CPU Component.
This allows default behavior for legacy code, and provides a universal
place to define system-wide operations and parameters,
like clock rates and interrupt structures.
Currently only a single CPU Component can exist at a time.
@par No CPU
In certain cases it can be desirable to use a generic CPU component for
testing instrumentation or for operation on systems that don't provide
the proper patches for accessing cpu counters.
For such a case, the configure option:
@code
configure --with-no-cpu-counters = yes
@endcode
is provided to build PAPI with an "empty" cpu component.
@par Exposed Interface
A Component for PAPI-C typically consists of a single header file and a
single (or small number of) source file(s).
All of the information for a Component needed by PAPI-C is exposed through
a single data structure that is declared and initialized at the bottom
of the main source file.
This structure, @ref papi_vector_t , is defined in @ref papi_vector.h .
@par Compiling With an Existing Component
Components provided with the PAPI source distribution all appear in the
src/components directory.
Each component exists in its own directory, named the same as the component itself.
To include a component in a PAPI build, use the configure command line as shown:
@code
configure --with-components="component list"
@endcode
Replace the "component list" argument with either the name of a specific
component directory or multiple component names separated by spaces and
enclosed in quotes as shown below:
\c configure --with-components="acpi lustre infiniband"
In some cases components themselves require additional configuration.
In these cases an error message will be produced when you run @code make @endcode .
To fix this, run the configure script found in the component directory.
@par Adding a New Component
The mechanics of adding a new component to the PAPI 4.1 build are relatively straight-forward.
Add a directory to the papi/src/components directory that is named with
the base name of the component.
This directory will contain the source files and build files for the new component.
If configuration of the component is necessary,
additional configure and make files will be needed.
The /example directory can be cloned and renamed as a starting point.
Other components can be used as examples.
This is described in more detail in /components/README.
@par Developing a New Component
A PAPI-C component generally consists of a header file and one or a
small number of source files.
The source file must contain a @ref papi_vector_t structure that
exposes the internal data and entry points of the component to the PAPI-C Framework.
This structure must have a unique name that is exposed externally and
contains the name of the directory containing the component source code.
Three types of information are exposed in the @ref papi_vector_t structure:
Configuration parameters are contained in the @ref PAPI_component_info_t structure;
Sizes of opaque data structures necessary for memory management are in the @ref cmp_struct_sizes_t structure;
An array of function entry points which, if implemented, provide access to the functionality of the component.
If a function is not implemented in a given component its value in the structure can be left unset.
In this case it will be initialized to NULL, and result (generally) in benign, although unproductive, behavior.
During the development of a component, functions can be implemented and tested in blocks.
Further information about an appropriate order for developing these functions
can be found in the Component Development Cookbook .
@par PAPI-C Open Research Issues:
- Support for non-standard data types:
Currently PAPI supports returned data values expressed as unsigned 64-bit integers.
This is appropriate for counting events, but may not be as appropriate
for expressing other values.
Examples of some other possible data types are shown below.
Data type might be expressed as a flag in the event definition.
- Signed Integer
- Float: 64-bit IEEE double precision
- Fixed Point: 32-bit integer and 32-bit fraction
- Ratios: 32 bit numerator and 32 bit denominator
- Synchronization:
Components might report values with widely different time scales and
remote measurements may be significantly skewed in time from local measurements.
It would be desirable to have a mechanism to synchronize these values in time.
- Dynamic Component Discovery:
Components currently must be included statically in the PAPI library build.
This minimizes startup disruption and time lag, particularly for large parallel systems.
In some instances it would also be desirable to support a run-time
discovery process for components, possibly by searching a specific
location for dynamic libraries.
- Component Repository:
A small collection of components are currently maintained and
supported inside the PAPI source distribution.
It would be desirable to create a public component repository where 3rd
parties could submit components for the use and benefit of the larger community.
- Multiple CPU Components:
With the rise in popularity of heterogeneous computing systems, it may
become desirable to have more than one CPU component.
Issues must then be resolved relating to which cpu time-base is used,
how are interrupts handled, etc.
Definition at line 218 of file papi.h.