83 SUBDBG(
"_sysdetect_init_component..." );
102 SUBDBG(
"_sysdetect_shutdown_component..." );
118 static int initialized;
171 static int dev_type_id;
207 *(
int *) val = dev_type_info->
id;
213 *(
const char **) val = dev_type_info->
vendor;
219 *(
const char **) val = dev_type_info->
status;
292 *(
const char **) val = cpu_info->
name;
304 *(
unsigned int *) val = cpu_info->
sockets;
307 *(
unsigned int *) val = cpu_info->
numas;
310 *(
int *) val = cpu_info->
cores;
323 *(
unsigned int *) val = (cpu_info->
numa_memory[id] >> 10);
327 *(
unsigned long *) val = gpu_info->nvidia.uid;
330 *(
const char **) val = gpu_info->nvidia.name;
333 *(
unsigned int *) val = gpu_info->nvidia.warp_size;
336 *(
unsigned int *) val = gpu_info->nvidia.max_threads_per_block;
339 *(
unsigned int *) val = gpu_info->nvidia.max_blocks_per_multi_proc;
342 *(
unsigned int *) val = gpu_info->nvidia.max_shmmem_per_block;
345 *(
unsigned int *) val = gpu_info->nvidia.max_shmmem_per_multi_proc;
348 *(
unsigned int *) val = gpu_info->nvidia.max_block_dim_x;
351 *(
unsigned int *) val = gpu_info->nvidia.max_block_dim_y;
354 *(
unsigned int *) val = gpu_info->nvidia.max_block_dim_z;
357 *(
unsigned int *) val = gpu_info->nvidia.max_grid_dim_x;
360 *(
unsigned int *) val = gpu_info->nvidia.max_grid_dim_y;
363 *(
unsigned int *) val = gpu_info->nvidia.max_grid_dim_z;
366 *(
unsigned int *) val = gpu_info->nvidia.multi_processor_count;
369 *(
unsigned int *) val = gpu_info->nvidia.multi_kernel_per_ctx;
372 *(
unsigned int *) val = gpu_info->nvidia.can_map_host_mem;
375 *(
unsigned int *) val = gpu_info->nvidia.can_overlap_comp_and_data_xfer;
378 *(
unsigned int *) val = gpu_info->nvidia.unified_addressing;
381 *(
unsigned int *) val = gpu_info->nvidia.managed_memory;
384 *(
unsigned int *) val = gpu_info->nvidia.major;
387 *(
unsigned int *) val = gpu_info->nvidia.minor;
391 *(
unsigned long *) val = gpu_info->amd.uid;
394 *(
const char **) val = gpu_info->amd.name;
397 *(
unsigned int *) val = gpu_info->amd.simd_per_compute_unit;
400 *(
unsigned int *) val = gpu_info->amd.max_threads_per_workgroup;
403 *(
unsigned int *) val = gpu_info->amd.wavefront_size;
406 *(
unsigned int *) val = gpu_info->amd.max_waves_per_compute_unit;
409 *(
unsigned int *) val = gpu_info->amd.max_shmmem_per_workgroup;
412 *(
unsigned int *) val = gpu_info->amd.max_workgroup_dim_x;
415 *(
unsigned int *) val = gpu_info->amd.max_workgroup_dim_y;
418 *(
unsigned int *) val = gpu_info->amd.max_workgroup_dim_z;
421 *(
unsigned int *) val = gpu_info->amd.max_grid_dim_x;
424 *(
unsigned int *) val = gpu_info->amd.max_grid_dim_y;
427 *(
unsigned int *) val = gpu_info->amd.max_grid_dim_z;
430 *(
unsigned int *) val = gpu_info->amd.compute_unit_count;
433 *(
unsigned int *) val = gpu_info->amd.major;
436 *(
unsigned int *) val = gpu_info->amd.minor;
448 static int initialized;
456 for (k = 0; k < threads; ++k) {
467 .short_name =
"sysdetect",
468 .description =
"System info detection component",
470 .support_version =
"n/a",
471 .kernel_version =
"n/a",
static papi_handle_t handle
void close_amd_gpu_dev_type(_sysdetect_dev_type_info_t *dev_type_info)
void open_amd_gpu_dev_type(_sysdetect_dev_type_info_t *dev_type_info)
int open(const char *pathname, int flags, mode_t mode)
void open_cpu_dev_type(_sysdetect_dev_type_info_t *dev_type_info)
void close_cpu_dev_type(_sysdetect_dev_type_info_t *dev_type_info)
#define PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Y
#define PAPI_DEV_ATTR__CUDA_UINT_THR_PER_BLK
#define PAPI_DEV_ATTR__CUDA_UINT_WARP_SIZE
#define PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_COUNT
#define PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Y
#define PAPI_DEV_ATTR__ROCM_UINT_WAVE_PER_CU
#define PAPI_DEV_ATTR__CUDA_UINT_BLK_PER_SM
#define PAPI_DEV_ATTR__CUDA_ULONG_UID
#define PAPI_DEV_ATTR__CPU_UINT_FAMILY
#define PAPI_DEV_ATTR__CPU_UINT_SOCKET_COUNT
#define PAPI_DEV_TYPE_ATTR__INT_PAPI_ID
#define PAPI_DEV_ATTR__CPU_UINT_THR_PER_NUMA
#define PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_SIZE
#define PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Z
#define PAPI_DEV_ATTR__ROCM_UINT_WAVEFRONT_SIZE
#define PAPI_DEV_ATTR__CUDA_UINT_UNIFIED_ADDR
#define PAPI_DEV_ATTR__CUDA_UINT_SM_COUNT
#define PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_ASSOC
#define PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Y
#define PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_SIZE
#define PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_SIZE
#define PAPI_DEV_ATTR__CPU_UINT_THREAD_COUNT
#define PAPI_DEV_TYPE_ATTR__INT_COUNT
#define PAPI_DEV_ATTR__CPU_UINT_NUMA_COUNT
#define PAPI_DEV_TYPE_ATTR__INT_VENDOR_ID
#define PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_LINE_COUNT
#define PAPI_DEV_ATTR__CUDA_UINT_MANAGED_MEM
#define PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_SIZE
#define PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MINOR
#define PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_SIZE
#define PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_Y
#define PAPI_DEV_ATTR__ROCM_CHAR_DEVICE_NAME
#define PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_BLK
#define PAPI_DEV_ATTR__ROCM_UINT_WORKGROUP_SIZE
#define PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_COUNT
#define PAPI_DEV_ATTR__ROCM_UINT_COMP_CAP_MAJOR
#define PAPI_DEV_ATTR__CPU_CHAR_NAME
#define PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_X
#define PAPI_DEV_ATTR__ROCM_ULONG_UID
#define PAPI_DEV_ATTR__CPU_UINT_L3U_CACHE_LINE_COUNT
#define PAPI_DEV_TYPE_ATTR__CHAR_NAME
#define PAPI_DEV_ATTR__CUDA_UINT_MEMCPY_OVERLAP
#define PAPI_DEV_ATTR__ROCM_UINT_SHM_PER_WG
#define PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MINOR
#define PAPI_DEV_ATTR__CUDA_UINT_MAP_HOST_MEM
#define PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_ASSOC
#define PAPI_DEV_ATTR__CUDA_UINT_SHM_PER_SM
#define PAPI_DEV_ATTR__CPU_UINT_STEPPING
#define PAPI_DEV_ATTR__ROCM_UINT_CU_COUNT
#define PAPI_DEV_ATTR__CPU_UINT_THR_NUMA_AFFINITY
#define PAPI_DEV_ATTR__CUDA_UINT_BLK_DIM_X
#define PAPI_DEV_ATTR__CPU_UINT_NUMA_MEM_SIZE
#define PAPI_DEV_ATTR__ROCM_UINT_SIMD_PER_CU
#define PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_X
#define PAPI_DEV_ATTR__CUDA_UINT_MULTI_KERNEL
#define PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_ASSOC
#define PAPI_DEV_ATTR__CUDA_UINT_GRD_DIM_Z
#define PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_X
#define PAPI_DEV_TYPE_ENUM__FIRST
#define PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_SIZE
#define PAPI_DEV_ATTR__CPU_UINT_MODEL
#define PAPI_DEV_TYPE_ID__MAX_NUM
#define PAPI_DEV_ATTR__ROCM_UINT_WG_DIM_Z
#define PAPI_DEV_ATTR__ROCM_UINT_GRD_DIM_Z
#define PAPI_DEV_ATTR__CPU_UINT_L2U_CACHE_LINE_SIZE
#define PAPI_DEV_ATTR__CPU_UINT_CORE_COUNT
#define PAPI_DEV_ATTR__CPU_UINT_L1I_CACHE_ASSOC
#define PAPI_DEV_ATTR__CPU_UINT_L1D_CACHE_LINE_SIZE
#define PAPI_DEV_ATTR__CUDA_CHAR_DEVICE_NAME
#define PAPI_DEV_TYPE_ATTR__CHAR_STATUS
#define PAPI_DEV_ATTR__CUDA_UINT_COMP_CAP_MAJOR
unsigned long AO_t __attribute__((__aligned__(4)))
void open_nvidia_gpu_dev_type(_sysdetect_dev_type_info_t *dev_type_info)
void close_nvidia_gpu_dev_type(_sysdetect_dev_type_info_t *dev_type_info)
#define SUBDBG(format, args...)
@ PAPI_SYSDETECT_QUERY__DEV_TYPE_ENUM
@ PAPI_SYSDETECT_QUERY__DEV_ATTR
@ PAPI_SYSDETECT_QUERY__DEV_TYPE_ATTR
char name[PAPI_MAX_STR_LEN]
struct _papi_hwi_sysdetect_t::@183::@185 dev_type
PAPI_dev_type_attr_e attr
struct _papi_hwi_sysdetect_t::@183::@186 dev
union _papi_hwi_sysdetect_t::@183 query
struct _papi_hwi_sysdetect_t::@183::@184 enumerate
PAPI_mh_cache_info_t cache[PAPI_MH_MAX_LEVELS]
_sysdetect_cache_level_info_t clevel[PAPI_MAX_MEM_HIERARCHY_LEVELS]
int numa_affinity[PAPI_MAX_NUM_THREADS]
char name[PAPI_MAX_STR_LEN]
int numa_memory[PAPI_MAX_NUM_NODES]
int num_threads_per_numa[PAPI_MAX_THREADS_PER_NUMA]
char status[PAPI_MAX_STR_LEN]
char vendor[PAPI_MAX_STR_LEN]
_sysdetect_dev_info_u * dev_info_arr
void(* close)(_sysdetect_dev_type_info_t *dev_type_info)
void(* open)(_sysdetect_dev_type_info_t *dev_type_info)
PAPI_component_info_t cmp_info
static void _sysdetect_init_private(void)
static int _sysdetect_shutdown_thread(hwd_context_t *ctx __attribute__((unused)))
static int _sysdetect_init_component(int cidx)
static _sysdetect_dev_type_info_t dev_type_info_arr[PAPI_DEV_TYPE_ID__MAX_NUM]
dev_fn_ptr_vector dev_fn_vector[PAPI_DEV_TYPE_ID__MAX_NUM]
static void get_num_threads_per_numa(_sysdetect_cpu_info_t *cpu_info)
static int _sysdetect_init_thread(hwd_context_t *ctx __attribute__((unused)))
int _sysdetect_user(int unused __attribute__((unused)), void *in, void *out)
static int _sysdetect_enum_dev_type(int enum_modifier, void **handle)
static void cleanup_dev_info(void)
static void init_dev_info(void)
static int _sysdetect_shutdown_component(void)
static int _sysdetect_get_dev_type_attr(void *handle, PAPI_dev_type_attr_e attr, void *val)
static int _sysdetect_get_dev_attr(void *handle, int id, PAPI_dev_attr_e attr, void *val)
papi_vector_t _sysdetect_vector