PAPI
7.1.0.0
Loading...
Searching...
No Matches
linux_intel_gpu_metrics.h
Go to the documentation of this file.
1
/*
2
* linux_intel_gpu_metrics.h: IntelĀ® Graphics Processing Unit (GPU) Component for PAPI.
3
*
4
* Copyright (c) 2020 Intel Corp. All rights reserved
5
* Contributed by Peinan Zhang <peinan.zhang@intel.com>
6
*
7
* Permission is hereby granted, free of charge, to any person obtaining a copy
8
* of this software and associated documentation files (the "Software"), to deal
9
* in the Software without restriction, including without limitation the rights
10
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
11
* of the Software, and to permit persons to whom the Software is furnished to do so,
12
* subject to the following conditions:
13
*
14
* The above copyright notice and this permission notice shall be included in all
15
* copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
18
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
19
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
21
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
22
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
*/
24
25
#ifndef _INTEL_GPU_METRICS_H
26
#define _INTEL_GPU_METRICS_H
27
28
/* Headers required by PAPI */
29
#include "
papi.h
"
30
#include "
papi_internal.h
"
31
#include "
papi_vector.h
"
32
#include "
papi_memory.h
"
33
34
/* environment varaiable for changing the control */
35
#define METRICS_SAMPLING_PERIOD "METRICS_SAMPLING_PERIOD"
// setting sampling period
36
#define ENABLE_API_TRACING "ZET_ENABLE_API_TRACING_EXP"
// for oneAPI Level0 V1.0 +
37
#define ENABLE_SUB_DEVICE "ENABLE_SUB_DEVICE"
38
39
#define MINIMUM_SAMPLING_PERIOD 100000
40
#define DEFAULT_SAMPLING_PERIOD 400000
41
42
#define GPU_MAX_COUNTERS 54
43
#define GPU_MAX_METRICS 128
44
45
void (*
_dl_non_dynamic_init
) (void)
__attribute__
((weak));
46
47
48
typedef
struct
_metric_ctl_s {
49
uint32_t
interval
;
50
uint32_t
metrics_type
;
51
int
mode
;
52
uint32_t
loops
;
53
int
domain
;
54
}
MetricCtlState
;
55
56
57
typedef
struct
_device_context_s {
58
uint32_t
device_code
;
59
uint32_t
mgroup_code
;
60
uint32_t
num_metrics
;
61
uint32_t metric_code[
GPU_MAX_METRICS
];
62
DEVICE_HANDLE
handle
;
63
uint32_t
num_reports
;
64
uint32_t
num_data_sets
;
65
uint32_t *
data_set_sidx
;
66
uint32_t
data_size
;
67
MetricData
*
data
;
68
}
DeviceContext
;
69
70
typedef
struct
_metric_context_s {
71
int
cmp_id
;
72
int
device_id
;
73
int
domain
;
74
int
thread_id
;
75
int
data_avail
;
76
uint32_t
num_metrics
;
77
uint32_t
num_reports
;
78
uint32_t
num_devices
;
79
uint32_t *
active_sub_devices
;
80
uint32_t *
active_devices
;
81
uint32_t metric_idx[
GPU_MAX_METRICS
];
82
uint32_t dev_ctx_idx[
GPU_MAX_METRICS
];
83
uint32_t subdev_idx[
GPU_MAX_METRICS
];
84
long
long
metric_values
[
GPU_MAX_METRICS
];
85
}
MetricContext
;
86
87
88
89
#endif
/* _INTEL_GPU_METRICS_H */
90
DEVICE_HANDLE
int DEVICE_HANDLE
Definition:
GPUMetricInterface.h:50
metric_values
long long metric_values[MAX_NUM_METRICS]
Definition:
gpu_metric_list.c:54
_dl_non_dynamic_init
void(* _dl_non_dynamic_init)(void) __attribute__((weak))
Definition:
linux_intel_gpu_metrics.h:45
GPU_MAX_METRICS
#define GPU_MAX_METRICS
Definition:
linux_intel_gpu_metrics.h:43
__attribute__
unsigned long AO_t __attribute__((__aligned__(4)))
Definition:
m68k.h:21
papi.h
Return codes and api definitions.
papi_internal.h
papi_memory.h
papi_vector.h
DeviceContext
Definition:
linux_intel_gpu_metrics.h:57
DeviceContext::data
MetricData * data
Definition:
linux_intel_gpu_metrics.h:67
DeviceContext::device_code
uint32_t device_code
Definition:
linux_intel_gpu_metrics.h:58
DeviceContext::num_reports
uint32_t num_reports
Definition:
linux_intel_gpu_metrics.h:63
DeviceContext::data_size
uint32_t data_size
Definition:
linux_intel_gpu_metrics.h:66
DeviceContext::data_set_sidx
uint32_t * data_set_sidx
Definition:
linux_intel_gpu_metrics.h:65
DeviceContext::num_data_sets
uint32_t num_data_sets
Definition:
linux_intel_gpu_metrics.h:64
DeviceContext::num_metrics
uint32_t num_metrics
Definition:
linux_intel_gpu_metrics.h:60
DeviceContext::mgroup_code
uint32_t mgroup_code
Definition:
linux_intel_gpu_metrics.h:59
DeviceContext::handle
DEVICE_HANDLE handle
Definition:
linux_intel_gpu_metrics.h:62
MetricContext
Definition:
linux_intel_gpu_metrics.h:70
MetricContext::cmp_id
int cmp_id
Definition:
linux_intel_gpu_metrics.h:71
MetricContext::active_sub_devices
uint32_t * active_sub_devices
Definition:
linux_intel_gpu_metrics.h:79
MetricContext::thread_id
int thread_id
Definition:
linux_intel_gpu_metrics.h:74
MetricContext::num_metrics
uint32_t num_metrics
Definition:
linux_intel_gpu_metrics.h:76
MetricContext::device_id
int device_id
Definition:
linux_intel_gpu_metrics.h:72
MetricContext::num_devices
uint32_t num_devices
Definition:
linux_intel_gpu_metrics.h:78
MetricContext::num_reports
uint32_t num_reports
Definition:
linux_intel_gpu_metrics.h:77
MetricContext::domain
int domain
Definition:
linux_intel_gpu_metrics.h:73
MetricContext::data_avail
int data_avail
Definition:
linux_intel_gpu_metrics.h:75
MetricContext::active_devices
uint32_t * active_devices
Definition:
linux_intel_gpu_metrics.h:80
MetricCtlState
Definition:
linux_intel_gpu_metrics.h:48
MetricCtlState::interval
uint32_t interval
Definition:
linux_intel_gpu_metrics.h:49
MetricCtlState::domain
int domain
Definition:
linux_intel_gpu_metrics.h:53
MetricCtlState::mode
int mode
Definition:
linux_intel_gpu_metrics.h:51
MetricCtlState::metrics_type
uint32_t metrics_type
Definition:
linux_intel_gpu_metrics.h:50
MetricCtlState::loops
uint32_t loops
Definition:
linux_intel_gpu_metrics.h:52
MetricData
Definition:
GPUMetricInterface.h:90
src
components
intel_gpu
linux_intel_gpu_metrics.h
Generated on Wed Dec 20 2023 18:12:51 for PAPI by
1.9.6