/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-rocprofiler-docs/checkouts/docs-5.6.0/inc/rocprofiler.h Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-rocprofiler-docs/checkouts/docs-5.6.0/inc/rocprofiler.h Source File#

ROCProfilerV1 API: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-rocprofiler-docs/checkouts/docs-5.6.0/inc/rocprofiler.h Source File
rocprofiler.h
Go to the documentation of this file.
1 /******************************************************************************
2 Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved.
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10 
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13 
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 THE SOFTWARE.
21 *******************************************************************************/
22 
24 //
25 // ROC Profiler API
26 //
27 // The goal of the implementation is to provide a HW specific low-level
28 // performance analysis interface for profiling of GPU compute applications.
29 // The profiling includes HW performance counters (PMC) with complex
30 // performance metrics and traces.
31 //
32 // The library can be used by a tool library loaded by HSA runtime or by
33 // higher level HW independent performance analysis API like PAPI.
34 //
35 // The library is written on C and will be based on AQLprofile AMD specific
36 // HSA extension. The library implementation requires HSA API intercepting and
37 // a profiling queue supporting a submit callback interface.
38 //
39 //
76 //
81 
83 #ifndef INC_ROCPROFILER_H_
84 #define INC_ROCPROFILER_H_
85 
86 /* Placeholder for calling convention and import/export macros */
87 #if !defined(ROCPROFILER_CALL)
88 #define ROCPROFILER_CALL
89 #endif /* !defined (ROCPROFILER_CALL) */
90 
91 #if !defined(ROCPROFILER_EXPORT_DECORATOR)
92 #if defined(__GNUC__)
93 #define ROCPROFILER_EXPORT_DECORATOR __attribute__((visibility("default")))
94 #elif defined(_MSC_VER)
95 #define ROCPROFILER_EXPORT_DECORATOR __declspec(dllexport)
96 #endif /* defined (_MSC_VER) */
97 #endif /* !defined (ROCPROFILER_EXPORT_DECORATOR) */
98 
99 #if !defined(ROCPROFILER_IMPORT_DECORATOR)
100 #if defined(__GNUC__)
101 #define ROCPROFILER_IMPORT_DECORATOR
102 #elif defined(_MSC_VER)
103 #define ROCPROFILER_IMPORT_DECORATOR __declspec(dllimport)
104 #endif /* defined (_MSC_VER) */
105 #endif /* !defined (ROCPROFILER_IMPORT_DECORATOR) */
106 
107 #define ROCPROFILER_EXPORT ROCPROFILER_EXPORT_DECORATOR ROCPROFILER_CALL
108 #define ROCPROFILER_IMPORT ROCPROFILER_IMPORT_DECORATOR ROCPROFILER_CALL
109 
110 #if !defined(ROCPROFILER)
111 #if defined(ROCPROFILER_EXPORTS)
112 #define ROCPROFILER_API ROCPROFILER_EXPORT
113 #else /* !defined (ROCPROFILER_EXPORTS) */
114 #define ROCPROFILER_API ROCPROFILER_IMPORT
115 #endif /* !defined (ROCPROFILER_EXPORTS) */
116 #endif /* !defined (ROCPROFILER) */
117 
118 #include <stddef.h>
119 #include <stdint.h>
120 
121 #ifdef __cplusplus
122 extern "C" {
123 #endif /* __cplusplus */
124 
144 #define ROCPROFILER_VERSION_9_0
145 
165 #define ROCPROFILER_VERSION_MAJOR 9
166 
171 #define ROCPROFILER_VERSION_MINOR 0
172 
181 
190 
193 // TODO(aelwazir): Fix them to use the new Error codes
204 typedef enum {
344 
354 
361 // TODO(aelwazir): More clear description, (think about nested!!??)
362 
372 
382 
392 typedef struct {
397  uint64_t handle;
399 
415 typedef struct {
416  uint64_t value;
418 
430 
435 typedef struct {
439 
449 typedef struct {
453  uint64_t handle;
455 
459 typedef enum {
486 
490 typedef struct {
500 
511 typedef struct {
516  uint64_t handle; // Topology folder serial number
518 
524 typedef enum {
534 
535 // TODO(aelwazir): check if we need to report the family name as well!!?? OR
536 // return the agent itself so that they can use HSA API
540 typedef enum {
550 
569  rocprofiler_agent_id_t agent_id,
570  size_t* data_size) ROCPROFILER_VERSION_9_0;
571 
590  rocprofiler_agent_id_t descriptor,
591  const char** name) ROCPROFILER_VERSION_9_0;
592 
605 typedef struct {
609  uint64_t handle;
611 
612 // TODO(aelwazir): Check if there is anymore Queue Information needed
616 typedef enum {
622 
642  rocprofiler_queue_id_t agent_id,
643  size_t* data_size) ROCPROFILER_VERSION_9_0;
644 
663  rocprofiler_queue_id_t descriptor,
664  const char** name) ROCPROFILER_VERSION_9_0;
665 
676 typedef struct {
680  uint64_t handle;
682 
686 typedef enum {
692 
713  rocprofiler_kernel_id_t kernel_id,
714  size_t* data_size) ROCPROFILER_VERSION_9_0;
715 
734  rocprofiler_kernel_id_t kernel_id,
735  const char** data) ROCPROFILER_VERSION_9_0;
736 
742 typedef struct {
746  uint32_t value;
748 
768 typedef struct {
769  const char* name;
770  const char* description;
771  const char* expression;
772  uint32_t instances_count;
773  const char* block_name;
774  uint32_t block_counters;
776 
778  const char* gpu_name, uint32_t gpu_index) ROCPROFILER_VERSION_9_0;
779 
782 
787 typedef struct {
791  uint64_t handle;
793 
797 typedef enum {
812 
834  rocprofiler_session_id_t session_id, rocprofiler_counter_info_kind_t counter_info_type,
835  rocprofiler_counter_id_t counter_id, size_t* data_size) ROCPROFILER_VERSION_9_0;
836 
857  rocprofiler_counter_id_t counter_id,
858  const char** data) ROCPROFILER_VERSION_9_0;
859 
860 typedef struct {
864  uint64_t value;
866 
867 // TODO(aelwazir): add more types to the values should we use unions??!!
871 typedef struct {
875  double value;
877 
883 typedef struct {
893 
899 typedef struct {
903  uint64_t value;
905 
911 typedef struct {
915  uint64_t grid_size;
919  uint64_t workgroup_size;
923  uint64_t lds_size;
927  uint64_t scratch_size;
931  uint64_t arch_vgpr_count;
939  uint64_t sgpr_count;
943  uint64_t wave_size;
947  uint64_t signal_handle;
948 
957 typedef struct {
1006 
1007 typedef struct {
1008  uint32_t value;
1009 
1011 
1012 typedef struct {
1013  uint16_t value; // Counter Value
1014 
1016 
1021 typedef struct {
1023 
1025 
1026 
1033 typedef struct {
1039 
1047  rocprofiler_record_se_spm_data_t shader_engine_data[4];
1048 
1050 
1054 typedef struct {
1055  void* buffer_ptr;
1056  uint32_t buffer_size;
1058 
1066 typedef struct {
1109 
1110 
1111 
1121 typedef enum {
1150  // TODO(aelwazir): Used in kernel Info, memcpy, ..etc, refer to hsa_support
1151  // TODO(aelwazir): Move HSA Events to hsa_support
1158 
1162 typedef struct {
1163  uint32_t id;
1165 
1169 typedef struct {
1173  uint64_t value;
1175 
1179 typedef struct {
1183  const void* handle;
1187  size_t size;
1189 
1198 typedef enum {
1208 
1237  size_t* data_size) ROCPROFILER_VERSION_9_0;
1238 
1265  char** data) ROCPROFILER_VERSION_9_0;
1266 
1277 typedef enum {
1297 
1326  size_t* data_size) ROCPROFILER_VERSION_9_0;
1327 
1354  char** data) ROCPROFILER_VERSION_9_0;
1355 
1366 typedef enum {
1367  // TODO(aelwazir): Get the data from hip_api_data_t
1411 
1439  size_t* data_size) ROCPROFILER_VERSION_9_0;
1440 
1466  char** data) ROCPROFILER_VERSION_9_0;
1467 
1473 typedef struct {
1474  uint64_t id;
1476 
1484 typedef struct {
1532 
1536 typedef struct {
1537  uint64_t value;
1539 
1543 typedef struct {
1549  union {
1557  uint64_t cycle;
1558  };
1562  uint64_t pc;
1566  uint32_t se;
1572 
1577 typedef struct {
1588 
1601 typedef enum {
1606  // Periodic Flush
1607  // Size
1608  // Think of using the kind as an end of the array!!??
1610 
1611 typedef struct {
1613  uint64_t value;
1615 
1616 typedef struct {
1617  uint64_t value;
1619 
1620 typedef struct {
1621  uint64_t value;
1623 
1640  const rocprofiler_record_header_t* end,
1641  rocprofiler_session_id_t session_id,
1642  rocprofiler_buffer_id_t buffer_id);
1643 
1660 
1681  const rocprofiler_record_header_t** next,
1682  rocprofiler_session_id_t session_id,
1684 
1691 // TODO(aelwazir): Replay mode naming !!?? (If changed, reflect on start&stop)
1695 typedef enum {
1714 
1747 
1764 
1770 typedef enum {
1800 
1805 typedef enum {
1818  // TODO(aelwazir): Add more clear description on how to use?
1828 
1829 // TODO(aelwazir): Another way to define this as needed
1832 
1833 // ATT tracing parameter names
1834 typedef enum {
1848 
1849 // att tracing parameters object
1850 typedef struct {
1852  union {
1853  uint32_t value;
1854  const char* counter_name;
1855  };
1857 
1863 typedef struct {
1868  // TODO(aelwazir): get HIP or HSA or counters as enums
1872  union {
1873  const char** name_regex;
1876  uint32_t range[2];
1877  };
1881  uint64_t data_count;
1883 
1884 typedef struct {
1888  const char** counters_names;
1896  uint32_t sampling_rate;
1901 
1903 
1904 typedef enum{
1908 
1909 typedef struct{
1910  char* name;
1913 
1914 typedef struct{
1918 
1919 typedef struct{
1931  uint32_t sampling_rate;
1939  uint32_t initial_delay;
1945 
1946 typedef struct{
1965  uint32_t num_counters;
1967 
1971 typedef union {
1979  const char** counters_names;
1993 
2018  rocprofiler_filter_kind_t filter_kind,
2020  uint64_t data_count,
2021  rocprofiler_filter_id_t* filter_id,
2023 
2042  rocprofiler_filter_id_t filter_id,
2044 
2054  rocprofiler_session_id_t session_id);
2055 
2078  rocprofiler_session_id_t session_id, rocprofiler_filter_id_t filter_id,
2080 
2097 
2122  rocprofiler_session_id_t session_id, rocprofiler_buffer_callback_t buffer_callback,
2123  size_t buffer_size, rocprofiler_buffer_id_t* buffer_id) ROCPROFILER_VERSION_9_0;
2124 
2149  rocprofiler_session_id_t session_id, rocprofiler_buffer_id_t buffer_id,
2150  rocprofiler_buffer_property_t* buffer_properties, uint32_t buffer_properties_count) ROCPROFILER_VERSION_9_0;
2151 
2173 
2223  rocprofiler_replay_mode_t replay_mode, rocprofiler_filter_kind_t filter_kind,
2224  rocprofiler_filter_data_t data, uint64_t data_count, size_t buffer_size,
2225  rocprofiler_buffer_callback_t buffer_callback, rocprofiler_session_id_t* session_id,
2227 
2228 // TODO(aelwazir): Multiple sessions activate for different set of filters
2249 
2265 
2285 
2299 
2321 
2334 
2342 typedef struct {
2343  double value;
2345 
2346 typedef struct {
2347  char metric_name[64];
2350 
2369  const char** counter_names, uint64_t num_counters, rocprofiler_session_id_t* session_id,
2370  int cpu_index, int gpu_index) ROCPROFILER_VERSION_9_0;
2371 
2382 
2397 
2408 
2418 
2421 #ifdef __cplusplus
2422 } // extern "C" block
2423 #endif // __cplusplus
2424 
2425 #endif // INC_ROCPROFILER_H_
ROCPROFILER_API rocprofiler_status_t rocprofiler_device_profiling_session_destroy(rocprofiler_session_id_t session_id) ROCPROFILER_VERSION_9_0
Destroy the device profiling session that was created previously.
ROCPROFILER_API rocprofiler_status_t rocprofiler_device_profiling_session_stop(rocprofiler_session_id_t session_id) ROCPROFILER_VERSION_9_0
Stop the device profiling session that was created previously.
ROCPROFILER_API rocprofiler_status_t rocprofiler_device_profiling_session_create(const char **counter_names, uint64_t num_counters, rocprofiler_session_id_t *session_id, int cpu_index, int gpu_index) ROCPROFILER_VERSION_9_0
Create a device profiling session.
ROCPROFILER_API rocprofiler_status_t rocprofiler_device_profiling_session_poll(rocprofiler_session_id_t session_id, rocprofiler_device_profile_metric_t *data) ROCPROFILER_VERSION_9_0
Poll the device profiling session to read counters from the GPU device.
ROCPROFILER_API rocprofiler_status_t rocprofiler_device_profiling_session_start(rocprofiler_session_id_t session_id) ROCPROFILER_VERSION_9_0
Start the device profiling session that was created previously.
rocprofiler_record_kind_t
Record kind.
Definition: rocprofiler.h:459
@ ROCPROFILER_PC_SAMPLING_RECORD
Represents a PC sampling record.
Definition: rocprofiler.h:476
@ ROCPROFILER_TRACER_RECORD
Represents records that have tracing data (ex.
Definition: rocprofiler.h:468
@ ROCPROFILER_COUNTERS_SAMPLER_RECORD
Represents Counters sampler records.
Definition: rocprofiler.h:484
@ ROCPROFILER_PROFILER_RECORD
Represents records that have profiling data (ex.
Definition: rocprofiler.h:464
@ ROCPROFILER_SPM_RECORD
Represents SPM records.
Definition: rocprofiler.h:480
@ ROCPROFILER_ATT_TRACER_RECORD
Represents a ATT tracing record (Not available yet)
Definition: rocprofiler.h:472
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_hip_tracer_api_data_info(rocprofiler_session_id_t session_id, rocprofiler_tracer_hip_api_data_info_t kind, rocprofiler_tracer_api_data_handle_t api_data_id, rocprofiler_tracer_operation_id_t operation_id, char **data) ROCPROFILER_VERSION_9_0
Query API Data Information using an allocated data pointer by the user, user can get the size of the ...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_hip_tracer_api_data_info_size(rocprofiler_session_id_t session_id, rocprofiler_tracer_hip_api_data_info_t kind, rocprofiler_tracer_api_data_handle_t api_data_id, rocprofiler_tracer_operation_id_t operation_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Tracer API Call Data Information size to allow the user to allocate the right size for the info...
rocprofiler_tracer_hip_api_data_info_t
hip Tracer Data Information Kinds
Definition: rocprofiler.h:1366
@ ROCPROFILER_HIP_STREAM_ID
Stream ID.
Definition: rocprofiler.h:1404
@ ROCPROFILER_HIP_API_DATA
HIP API Data User has to reinterpret_cast to hip_api_data_t*.
Definition: rocprofiler.h:1409
@ ROCPROFILER_HIP_MEM_COPY_SRC
Only available to hip calls that has memory copy operation with source available.
Definition: rocprofiler.h:1382
@ ROCPROFILER_HIP_MEM_COPY_SIZE
Only available to hip calls that has memory copy operation with data size available.
Definition: rocprofiler.h:1392
@ ROCPROFILER_HIP_KERNEL_NAME
Only available for HIP Functions that lead to kernel launch to get the kernel name.
Definition: rocprofiler.h:1377
@ ROCPROFILER_HIP_ACTIVITY_NAME
HIP Activity Name.
Definition: rocprofiler.h:1400
@ ROCPROFILER_HIP_API_DATA_STR
Reporting the whole API data as one string.
Definition: rocprofiler.h:1396
@ ROCPROFILER_HIP_FUNCTION_NAME
hip Tracer Data kind that can be used to return to a pointer to all the API Call Data
Definition: rocprofiler.h:1372
@ ROCPROFILER_HIP_MEM_COPY_DST
Only available to hip calls that has memory copy operation with destination available.
Definition: rocprofiler.h:1387
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_hsa_tracer_api_data_info(rocprofiler_session_id_t session_id, rocprofiler_tracer_hsa_api_data_info_t kind, rocprofiler_tracer_api_data_handle_t api_data_id, rocprofiler_tracer_operation_id_t operation_id, char **data) ROCPROFILER_VERSION_9_0
Query API Data Information using an allocated data pointer by the user, user can get the size of the ...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_hsa_tracer_api_data_info_size(rocprofiler_session_id_t session_id, rocprofiler_tracer_hsa_api_data_info_t kind, rocprofiler_tracer_api_data_handle_t api_data_id, rocprofiler_tracer_operation_id_t operation_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Tracer API Call Data Information size to allow the user to allocate the right size for the info...
rocprofiler_tracer_hsa_api_data_info_t
hsa Tracer Data Information Kinds
Definition: rocprofiler.h:1277
@ ROCPROFILER_HSA_FUNCTION_NAME
HSA Tracer Data kind that can be used to return to a pointer to all the API Call Data.
Definition: rocprofiler.h:1282
@ ROCPROFILER_HSA_API_DATA
HSA Data User has to reinterpret_cast to hsa_api_data_t*.
Definition: rocprofiler.h:1295
@ ROCPROFILER_HSA_ACTIVITY_NAME
HSA Activity Name.
Definition: rocprofiler.h:1290
@ ROCPROFILER_HSA_API_DATA_STR
HSA API Data in string format.
Definition: rocprofiler.h:1286
void(* rocprofiler_buffer_callback_t)(const rocprofiler_record_header_t *begin, const rocprofiler_record_header_t *end, rocprofiler_session_id_t session_id, rocprofiler_buffer_id_t buffer_id)
Memory pool buffer callback.
Definition: rocprofiler.h:1639
ROCPROFILER_API rocprofiler_status_t rocprofiler_next_record(const rocprofiler_record_header_t *record, const rocprofiler_record_header_t **next, rocprofiler_session_id_t session_id, rocprofiler_buffer_id_t buffer_id) ROCPROFILER_VERSION_9_0
Get a pointer to the next profiling record.
rocprofiler_buffer_property_kind_t
Buffer Property Options.
Definition: rocprofiler.h:1601
ROCPROFILER_API rocprofiler_status_t rocprofiler_flush_data(rocprofiler_session_id_t session_id, rocprofiler_buffer_id_t buffer_id) ROCPROFILER_VERSION_9_0
Flush specific Buffer.
@ ROCPROFILER_BUFFER_PROPERTY_KIND_INTERVAL_FLUSH
Flush interval.
Definition: rocprofiler.h:1605
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_counter_info_size(rocprofiler_session_id_t session_id, rocprofiler_counter_info_kind_t counter_info_type, rocprofiler_counter_id_t counter_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Counter Information Data size to allow the user to allocate the right size for the information ...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_counter_info(rocprofiler_session_id_t session_id, rocprofiler_counter_info_kind_t kind, rocprofiler_counter_id_t counter_id, const char **data) ROCPROFILER_VERSION_9_0
Query Counter Information Data using an allocated data pointer by the user, user can get the size of ...
rocprofiler_counter_info_kind_t
Counter Information Types, can be used by rocprofiler_query_counter_info.
Definition: rocprofiler.h:797
ROCPROFILER_API rocprofiler_status_t rocprofiler_iterate_counters(rocprofiler_counters_info_callback_t counters_info_callback) ROCPROFILER_VERSION_9_0
int(* rocprofiler_counters_info_callback_t)(rocprofiler_counter_info_t counter, const char *gpu_name, uint32_t gpu_index) ROCPROFILER_VERSION_9_0
Definition: rocprofiler.h:777
@ ROCPROFILER_COUNTER_NAME
Can be used to get the counter name.
Definition: rocprofiler.h:801
@ ROCPROFILER_COUNTER_BLOCK_ID
Can be used to get the block id of a counter.
Definition: rocprofiler.h:805
@ ROCPROFILER_COUNTER_HIERARCHY_LEVEL
This is the level of hierarchy from the GFX_IP where the counter value should be collected.
Definition: rocprofiler.h:810
const char ** counters_names
Counters to profile.
Definition: rocprofiler.h:1888
int counters_count
Counters count.
Definition: rocprofiler.h:1892
rocprofiler_filter_property_kind_t kind
Filter Property kind.
Definition: rocprofiler.h:1867
uint64_t workgroup_size
workgroup size
Definition: rocprofiler.h:919
uint64_t lds_size
lds_size
Definition: rocprofiler.h:923
uint32_t initial_delay
Initial delay (ms)
Definition: rocprofiler.h:1939
rocprofiler_counters_sampler_counter_output_t * counters
Counters, including identifiers to get counter information and Counters values.
Definition: rocprofiler.h:1961
rocprofiler_timestamp_t timestamp
Host timestamp.
Definition: rocprofiler.h:1553
uint64_t handle
Session Identifier to get the session or to be used to call any API that needs to deal with a specifi...
Definition: rocprofiler.h:397
uint32_t se
Sampled shader element.
Definition: rocprofiler.h:1566
uint64_t value
Definition: rocprofiler.h:1621
rocprofiler_kernel_properties_t kernel_properties
kernel properties, including the grid size, work group size, registers count, wave size and completio...
Definition: rocprofiler.h:1091
uint64_t shader_engine_data_count
The count of the shader engine ATT data.
Definition: rocprofiler.h:1107
rocprofiler_thread_id_t thread_id
Thread id.
Definition: rocprofiler.h:1095
uint64_t handle
Kernel object identifier.
Definition: rocprofiler.h:680
uint64_t cycle
GPU clock counter (not currently used)
Definition: rocprofiler.h:1557
rocprofiler_kernel_id_t kernel_id
Kernel Identifier to be used by the user to get the kernel info using rocprofiler_query_kernel_info.
Definition: rocprofiler.h:1076
rocprofiler_agent_id_t gpu_id
Agent Identifier to be used by the user to get the Agent Information using rocprofiler_query_agent_in...
Definition: rocprofiler.h:972
rocprofiler_kernel_properties_t kernel_properties
kernel properties, including the grid size, work group size, registers count, wave size and completio...
Definition: rocprofiler.h:992
uint32_t sampling_duration
Total sampling duration (ms); time between sampling start/stop.
Definition: rocprofiler.h:1935
uint64_t value
Correlation ID Value.
Definition: rocprofiler.h:1173
uint32_t num_counters
Number of counter values.
Definition: rocprofiler.h:1965
uint32_t instances_count
Definition: rocprofiler.h:772
uint32_t value
Definition: rocprofiler.h:1853
rocprofiler_tracer_operation_id_t operation_id
Tracing Operation ID for HIP/HSA.
Definition: rocprofiler.h:1501
rocprofiler_record_counter_value_t value
Definition: rocprofiler.h:1916
uint32_t sampling_rate
Sampling rate.
Definition: rocprofiler.h:1896
uint64_t handle
Record ID handle.
Definition: rocprofiler.h:453
rocprofiler_counter_id_t counter_handler
Counter Instance Identifier.
Definition: rocprofiler.h:887
rocprofiler_queue_index_t queue_idx
Queue Index - packet index in the queue.
Definition: rocprofiler.h:1099
uint64_t value
Definition: rocprofiler.h:1617
double value
Counter value.
Definition: rocprofiler.h:875
uint64_t accum_vgpr_count
accum vgpr count
Definition: rocprofiler.h:935
const char * description
Definition: rocprofiler.h:770
rocprofiler_kernel_id_t kernel_id
Kernel Identifier to be used by the user to get the kernel info using rocprofiler_query_kernel_info.
Definition: rocprofiler.h:967
const void * handle
Data Handler Identifier.
Definition: rocprofiler.h:1183
rocprofiler_record_kind_t kind
Represents the kind of the record using rocprofiler_record_kind_t.
Definition: rocprofiler.h:494
size_t size
API Data Size.
Definition: rocprofiler.h:1187
uint64_t signal_handle
Dispatch completion signal handle.
Definition: rocprofiler.h:947
rocprofiler_record_counter_instance_t * counters
Counters, including identifiers to get counter information and Counters values.
Definition: rocprofiler.h:987
rocprofiler_queue_id_t queue_id
Queue Identifier to be used by the user to get the Queue Information using rocprofiler_query_agent_in...
Definition: rocprofiler.h:977
rocprofiler_pc_sample_t pc_sample
PC sample data.
Definition: rocprofiler.h:1586
rocprofiler_thread_id_t thread_id
Thread id.
Definition: rocprofiler.h:996
rocprofiler_timestamp_t begin
Definition: rocprofiler.h:436
uint32_t value
Thread ID.
Definition: rocprofiler.h:746
rocprofiler_hip_function_name_t * hip_functions_names
Definition: rocprofiler.h:1874
uint64_t value
queue index value
Definition: rocprofiler.h:864
uint64_t handle
a unique id to represent every agent on the system, this handle should be unique across all nodes in ...
Definition: rocprofiler.h:516
rocprofiler_record_header_t header
ROCProfiler General Record base header to identify the id and kind of every record.
Definition: rocprofiler.h:1071
rocprofiler_record_header_t header
ROCProfiler General Record base header to identify the id and kind of every record.
Definition: rocprofiler.h:1489
rocprofiler_counters_sampler_counter_type_t type
Definition: rocprofiler.h:1911
uint64_t pc
Sampled program counter.
Definition: rocprofiler.h:1562
uint64_t sgpr_count
sgpr_count
Definition: rocprofiler.h:939
rocprofiler_tracer_activity_domain_t domain
Activity domain id, represents the type of the APIs that are being traced.
Definition: rocprofiler.h:1497
rocprofiler_record_header_t header
ROCProfiler General Record base header to identify the id and kind of every record.
Definition: rocprofiler.h:962
rocprofiler_record_header_t header
ROCProfiler General Record base header to identify the id and kind of every record.
Definition: rocprofiler.h:1582
const char ** name_regex
Definition: rocprofiler.h:1873
uint64_t value
Definition: rocprofiler.h:416
rocprofiler_record_counter_value_t value
Counter Instance Value.
Definition: rocprofiler.h:891
uint64_t scratch_size
scratch_size
Definition: rocprofiler.h:927
rocprofiler_record_header_timestamp_t timestamps
Timestamps, start and end timestamps of the record data (ex.
Definition: rocprofiler.h:982
uint32_t value
Definition: rocprofiler.h:1008
rocprofiler_timestamp_t end
Definition: rocprofiler.h:437
uint64_t arch_vgpr_count
arch vgpr count
Definition: rocprofiler.h:931
uint32_t id
Definition: rocprofiler.h:1163
const char * counter_name
Definition: rocprofiler.h:1854
rocprofiler_agent_id_t gpu_id
Sampled GPU agent.
Definition: rocprofiler.h:1570
rocprofiler_hsa_function_name_t * hsa_functions_names
Definition: rocprofiler.h:1875
int counters_num
Counters count.
Definition: rocprofiler.h:1927
uint64_t value
Counters Instances Count for every record.
Definition: rocprofiler.h:903
rocprofiler_record_header_t header
ROCProfiler General Record base header to identify the id and kind of every record.
Definition: rocprofiler.h:1038
rocprofiler_record_counters_instances_count_t counters_count
The count of the counters that were collected by the profiler.
Definition: rocprofiler.h:1004
uint64_t handle
Unique Id for every queue for one agent for one system.
Definition: rocprofiler.h:609
const char * name
Definition: rocprofiler.h:769
uint64_t id
Definition: rocprofiler.h:1474
uint64_t grid_size
Grid Size.
Definition: rocprofiler.h:915
rocprofiler_agent_id_t gpu_id
Agent Identifier to be used by the user to get the Agent Information using rocprofiler_query_agent_in...
Definition: rocprofiler.h:1081
rocprofiler_queue_id_t queue_id
Queue Identifier to be used by the user to get the Queue Information using rocprofiler_query_agent_in...
Definition: rocprofiler.h:1086
double value
Definition: rocprofiler.h:2343
rocprofiler_tracer_api_data_handle_t api_data_handle
API Data Handler to be used by rocprofiler_query_roctx_tracer_api_data_info or rocprofiler_query_hsa_...
Definition: rocprofiler.h:1508
rocprofiler_queue_id_t queue_id
Queue identifier that can be used as a handler in rocprofiler_query_queue_info.
Definition: rocprofiler.h:1526
rocprofiler_tracer_external_id_t external_id
Tracing external ID.
Definition: rocprofiler.h:1493
const char * expression
Definition: rocprofiler.h:771
rocprofiler_record_se_att_data_t * shader_engine_data
ATT data output from each shader engine.
Definition: rocprofiler.h:1103
int gpu_agent_index
Preferred agents to collect counters from.
Definition: rocprofiler.h:1943
uint16_t value
Definition: rocprofiler.h:1013
rocprofiler_att_parameter_name_t parameter_name
Definition: rocprofiler.h:1851
rocprofiler_record_header_timestamp_t timestamps
Timestamps.
Definition: rocprofiler.h:1516
rocprofiler_counters_sampler_counter_input_t * counters
Counters to profile.
Definition: rocprofiler.h:1923
rocprofiler_counters_sampler_parameters_t counters_sampler_parameters
sampled counters parameters
Definition: rocprofiler.h:1991
char * name
Definition: rocprofiler.h:1910
rocprofiler_agent_id_t agent_id
Agent identifier that can be used as a handler in rocprofiler_query_agent_info.
Definition: rocprofiler.h:1521
uint32_t sampling_rate
Sampling rate (ms)
Definition: rocprofiler.h:1931
uint32_t buffer_size
Definition: rocprofiler.h:1056
rocprofiler_record_id_t id
Represents the id of the record.
Definition: rocprofiler.h:498
uint64_t value
Definition: rocprofiler.h:1537
rocprofiler_counters_sampler_counter_type_t type
Definition: rocprofiler.h:1915
const char * block_name
Definition: rocprofiler.h:773
rocprofiler_kernel_dispatch_id_t dispatch_id
Kernel dispatch ID.
Definition: rocprofiler.h:1548
const char ** counters_names
Counters to profile.
Definition: rocprofiler.h:1979
rocprofiler_record_header_timestamp_t timestamps
Timestamps at which the counters were sampled.
Definition: rocprofiler.h:1043
uint64_t wave_size
wave size
Definition: rocprofiler.h:943
rocprofiler_buffer_property_kind_t kind
Definition: rocprofiler.h:1612
void * buffer_ptr
Definition: rocprofiler.h:1055
rocprofiler_att_parameter_t * att_parameters
att parameters
Definition: rocprofiler.h:1983
rocprofiler_agent_id_t gpu_id
Agent Identifier to be used by the user to get the Agent Information using rocprofiler_query_agent_in...
Definition: rocprofiler.h:1956
uint64_t data_count
Data array count.
Definition: rocprofiler.h:1881
uint64_t handle
A unique id generated for every counter requested by the user.
Definition: rocprofiler.h:791
rocprofiler_counter_value_t value
Definition: rocprofiler.h:2348
rocprofiler_tracer_activity_correlation_id_t correlation_id
Activity correlation ID.
Definition: rocprofiler.h:1512
uint32_t block_counters
Definition: rocprofiler.h:774
rocprofiler_spm_parameter_t * spm_parameters
spm counters parameters
Definition: rocprofiler.h:1987
rocprofiler_tracer_activity_domain_t * trace_apis
APIs to trace.
Definition: rocprofiler.h:1975
rocprofiler_thread_id_t thread_id
Thread id.
Definition: rocprofiler.h:1530
rocprofiler_agent_id_t * gpu_agent_id
Preferred agents to collect SPM on.
Definition: rocprofiler.h:1900
rocprofiler_record_header_t header
ROCMtool General Record base header to identify the id and kind of every record.
Definition: rocprofiler.h:1951
uint64_t value
Definition: rocprofiler.h:1613
rocprofiler_queue_index_t queue_idx
Queue Index - packet index in the queue.
Definition: rocprofiler.h:1000
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_agent_info(rocprofiler_agent_info_kind_t kind, rocprofiler_agent_id_t descriptor, const char **name) ROCPROFILER_VERSION_9_0
Query Agent Information Data using an allocated data pointer by the user, user can get the size of th...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_agent_info_size(rocprofiler_agent_info_kind_t kind, rocprofiler_agent_id_t agent_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Agent Information size to allow the user to allocate the right size for the information data re...
rocprofiler_agent_info_kind_t
Types of information that can be requested about the Agents.
Definition: rocprofiler.h:540
rocprofiler_agent_type_t
Using rocprofiler_query_agent_info, user can determine the type of the agent the following struct wil...
Definition: rocprofiler.h:524
@ ROCPROFILER_AGENT_TYPE
GPU Agent Type.
Definition: rocprofiler.h:548
@ ROCPROFILER_AGENT_NAME
GPU Agent Name.
Definition: rocprofiler.h:544
@ ROCPROFILER_CPU_AGENT
CPU Agent.
Definition: rocprofiler.h:528
@ ROCPROFILER_GPU_AGENT
GPU Agent.
Definition: rocprofiler.h:532
rocprofiler_kernel_info_kind_t
Kernel Information Types, can be used by rocprofiler_query_kernel_info.
Definition: rocprofiler.h:686
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_kernel_info(rocprofiler_kernel_info_kind_t kind, rocprofiler_kernel_id_t kernel_id, const char **data) ROCPROFILER_VERSION_9_0
Query Kernel Information Data using an allocated data pointer by the user, user can get the size of t...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_kernel_info_size(rocprofiler_kernel_info_kind_t kind, rocprofiler_kernel_id_t kernel_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Kernel Information Data size to allow the user to allocate the right size for the information d...
@ ROCPROFILER_KERNEL_NAME
Kernel Name Information Type.
Definition: rocprofiler.h:690
rocprofiler_queue_info_kind_t
Types of information that can be requested about the Queues.
Definition: rocprofiler.h:616
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_queue_info_size(rocprofiler_queue_info_kind_t kind, rocprofiler_queue_id_t agent_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Queue Information size to allow the user to allocate the right size for the information data re...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_queue_info(rocprofiler_queue_info_kind_t kind, rocprofiler_queue_id_t descriptor, const char **name) ROCPROFILER_VERSION_9_0
Query Queue Information Data using an allocated data pointer by the user, user can get the size of th...
@ ROCPROFILER_QUEUE_SIZE
AMD HSA Queue Size.
Definition: rocprofiler.h:620
ROCPROFILER_API rocprofiler_status_t rocprofiler_finalize() ROCPROFILER_VERSION_9_0
Finalize the API Tools.
ROCPROFILER_API rocprofiler_status_t rocprofiler_initialize() ROCPROFILER_VERSION_9_0
Initialize the API Tools.
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_roctx_tracer_api_data_info(rocprofiler_session_id_t session_id, rocprofiler_tracer_roctx_api_data_info_t kind, rocprofiler_tracer_api_data_handle_t api_data_id, rocprofiler_tracer_operation_id_t operation_id, char **data) ROCPROFILER_VERSION_9_0
Query API Data Information using an allocated data pointer by the user, user can get the size of the ...
ROCPROFILER_API rocprofiler_status_t rocprofiler_query_roctx_tracer_api_data_info_size(rocprofiler_session_id_t session_id, rocprofiler_tracer_roctx_api_data_info_t kind, rocprofiler_tracer_api_data_handle_t api_data_id, rocprofiler_tracer_operation_id_t operation_id, size_t *data_size) ROCPROFILER_VERSION_9_0
Query Tracer API Call Data Information size to allow the user to allocate the right size for the info...
rocprofiler_tracer_roctx_api_data_info_t
ROCTX Tracer Data Information Kinds.
Definition: rocprofiler.h:1198
@ ROCPROFILER_ROCTX_ID
ROCTX Tracer Data kind that can be used to return ROCTX id.
Definition: rocprofiler.h:1206
@ ROCPROFILER_ROCTX_MESSAGE
ROCTX Tracer Data kind that can be used to return ROCTX message.
Definition: rocprofiler.h:1202
rocprofiler_filter_kind_t
Definition: rocprofiler.h:1770
ROCPROFILER_API rocprofiler_status_t rocprofiler_set_filter_buffer(rocprofiler_session_id_t session_id, rocprofiler_filter_id_t filter_id, rocprofiler_buffer_id_t buffer_id) ROCPROFILER_VERSION_9_0
Set Session Filter Buffer This function will associate buffer to a specific filter.
rocprofiler_counters_sampler_counter_type_t
Definition: rocprofiler.h:1904
ROCPROFILER_API rocprofiler_status_t rocprofiler_set_api_trace_sync_callback(rocprofiler_session_id_t session_id, rocprofiler_filter_id_t filter_id, rocprofiler_sync_callback_t callback) ROCPROFILER_VERSION_9_0
Set Session API Tracing Filter Synchronous Callback This function will associate buffer to a specific...
const char * rocprofiler_hip_function_name_t
Definition: rocprofiler.h:1830
const char * rocprofiler_hsa_function_name_t
Definition: rocprofiler.h:1831
ROCPROFILER_API rocprofiler_status_t rocprofiler_destroy_filter(rocprofiler_session_id_t session_id, rocprofiler_filter_id_t filter_id) ROCPROFILER_VERSION_9_0
Destroy Session Filter This function will destroy a specific filter.
ROCPROFILER_API rocprofiler_status_t rocprofiler_set_buffer_properties(rocprofiler_session_id_t session_id, rocprofiler_buffer_id_t buffer_id, rocprofiler_buffer_property_t *buffer_properties, uint32_t buffer_properties_count) ROCPROFILER_VERSION_9_0
Setting Buffer Properties This function will set buffer properties.
void(* rocprofiler_sync_callback_t)(rocprofiler_record_tracer_t record, rocprofiler_session_id_t session_id)
Synchronous Callback To be only used by rocprofiler_set_api_trace_sync_callback, please refer to rocp...
Definition: rocprofiler.h:2053
ROCPROFILER_API rocprofiler_status_t rocprofiler_create_filter(rocprofiler_session_id_t session_id, rocprofiler_filter_kind_t filter_kind, rocprofiler_filter_data_t data, uint64_t data_count, rocprofiler_filter_id_t *filter_id, rocprofiler_filter_property_t property) ROCPROFILER_VERSION_9_0
Create Session Filter This function will create filter and associate it with a specific session For e...
ROCPROFILER_API rocprofiler_status_t rocprofiler_create_buffer(rocprofiler_session_id_t session_id, rocprofiler_buffer_callback_t buffer_callback, size_t buffer_size, rocprofiler_buffer_id_t *buffer_id) ROCPROFILER_VERSION_9_0
Create Buffer This function will create a buffer that can be associated with a filter.
ROCPROFILER_API rocprofiler_status_t rocprofiler_destroy_buffer(rocprofiler_session_id_t session_id, rocprofiler_buffer_id_t buffer_id) ROCPROFILER_VERSION_9_0
Destroy Buffer This function will destroy a buffer given its id and session id.
rocprofiler_att_parameter_name_t
Definition: rocprofiler.h:1834
rocprofiler_filter_property_kind_t
Data Filter Types to be used by ::rocprofiler_session_set_filter to add filters to a specific session...
Definition: rocprofiler.h:1805
@ ROCPROFILER_DISPATCH_TIMESTAMPS_COLLECTION
Kernel Dispatch Timestamp collection.
Definition: rocprofiler.h:1774
@ ROCPROFILER_ATT_TRACE_COLLECTION
ATT Tracing.
Definition: rocprofiler.h:1786
@ ROCPROFILER_COUNTERS_COLLECTION
GPU Application counter collection.
Definition: rocprofiler.h:1778
@ ROCPROFILER_SPM_COLLECTION
SPM collection.
Definition: rocprofiler.h:1790
@ ROCPROFILER_API_TRACE
HIP/HSA/ROCTX/SYS Trace.
Definition: rocprofiler.h:1794
@ ROCPROFILER_PC_SAMPLING_COLLECTION
PC Sampling collection.
Definition: rocprofiler.h:1782
@ ROCPROFILER_COUNTERS_SAMPLER
Sampled Counters.
Definition: rocprofiler.h:1798
@ ROCPROFILER_COUNTERS_SAMPLER_XGMI_COUNTERS
Definition: rocprofiler.h:1906
@ ROCPROFILER_COUNTERS_SAMPLER_PCIE_COUNTERS
Definition: rocprofiler.h:1905
@ ROCPROFILER_ATT_VM_ID_MASK
Definition: rocprofiler.h:1836
@ ROCPROFILER_ATT_TOKEN_MASK
Definition: rocprofiler.h:1838
@ ROCPROFILER_ATT_PERF_CTRL
Definition: rocprofiler.h:1843
@ ROCPROFILER_ATT_MAXVALUE
Definition: rocprofiler.h:1846
@ ROCPROFILER_ATT_COMPUTE_UNIT_TARGET
Definition: rocprofiler.h:1835
@ ROCPROFILER_ATT_TOKEN_MASK2
Definition: rocprofiler.h:1839
@ ROCPROFILER_ATT_PERFCOUNTER_NAME
Definition: rocprofiler.h:1845
@ ROCPROFILER_ATT_PERFCOUNTER
Definition: rocprofiler.h:1844
@ ROCPROFILER_ATT_MASK
Definition: rocprofiler.h:1837
@ ROCPROFILER_ATT_SAMPLE_RATE
Definition: rocprofiler.h:1841
@ ROCPROFILER_ATT_SE_MASK
Definition: rocprofiler.h:1840
@ ROCPROFILER_ATT_PERF_MASK
Definition: rocprofiler.h:1842
@ ROCPROFILER_FILTER_RANGE
Add Range of calls to be traced or kernels to be profiled.
Definition: rocprofiler.h:1822
@ ROCPROFILER_FILTER_HIP_TRACER_API_FUNCTIONS
Add HIP API calls that will be only traced (ex.
Definition: rocprofiler.h:1813
@ ROCPROFILER_FILTER_HSA_TRACER_API_FUNCTIONS
Add HSA API calls that will be only traced (ex.
Definition: rocprofiler.h:1809
@ ROCPROFILER_FILTER_KERNEL_NAMES
Add Kernel names that will be only profiled or traced.
Definition: rocprofiler.h:1826
@ ROCPROFILER_FILTER_GPU_NAME
Add GPU names that will be only profiled or traced.
Definition: rocprofiler.h:1817
ROCPROFILER_API rocprofiler_status_t rocprofiler_pop_range() ROCPROFILER_VERSION_9_0
Setting an endpoint for a range This function can be used to set an endpoint to range labeled by rocp...
ROCPROFILER_API rocprofiler_status_t rocprofiler_push_range(const char *label) ROCPROFILER_VERSION_9_0
Setting a label to a block range This can be used to label a range of code that is having active prof...
ROCPROFILER_API rocprofiler_status_t rocprofiler_end_replay_pass() ROCPROFILER_VERSION_9_0
End a pass End a pass created and started by ::rocprofiler_start_pass.
ROCPROFILER_API rocprofiler_status_t rocprofiler_start_replay_pass() ROCPROFILER_VERSION_9_0
Create and Start a pass A Pass is a block of code that can be replayed if required by the profiling/t...
ROCPROFILER_API rocprofiler_status_t rocprofiler_destroy_session(rocprofiler_session_id_t session_id) ROCPROFILER_VERSION_9_0
Destroy Session Destroy session created by rocprofiler_create_session, please refer to the samples fo...
ROCPROFILER_API rocprofiler_status_t rocprofiler_terminate_session(rocprofiler_session_id_t session_id) ROCPROFILER_VERSION_9_0
Deactivate Session Deactivate session created by rocprofiler_create_session, please refer to the samp...
ROCPROFILER_API rocprofiler_status_t rocprofiler_create_ready_session(rocprofiler_replay_mode_t replay_mode, rocprofiler_filter_kind_t filter_kind, rocprofiler_filter_data_t data, uint64_t data_count, size_t buffer_size, rocprofiler_buffer_callback_t buffer_callback, rocprofiler_session_id_t *session_id, rocprofiler_filter_property_t property, rocprofiler_sync_callback_t callback) ROCPROFILER_VERSION_9_0
Create Ready Session A one call to create a ready profiling or tracing session, so that the session w...
ROCPROFILER_API rocprofiler_status_t rocprofiler_create_session(rocprofiler_replay_mode_t replay_mode, rocprofiler_session_id_t *session_id) ROCPROFILER_VERSION_9_0
Create Session A ROCProfiler Session is having enough information about what needs to be collected or...
rocprofiler_replay_mode_t
Replay Profiling Modes.
Definition: rocprofiler.h:1695
ROCPROFILER_API rocprofiler_status_t rocprofiler_start_session(rocprofiler_session_id_t session_id) ROCPROFILER_VERSION_9_0
Activate Session Activating session created by rocprofiler_create_session, please refer to the sample...
@ ROCPROFILER_KERNEL_REPLAY_MODE
Replaying every kernel dispatch to get multi passes.
Definition: rocprofiler.h:1708
@ ROCPROFILER_APPLICATION_REPLAY_MODE
Replaying the whole application to get multi passes (Not Yet Supported)
Definition: rocprofiler.h:1704
@ ROCPROFILER_NONE_REPLAY_MODE
No Replay to be done, Mostly for tracing tool or if the user wants to make sure that no replays will ...
Definition: rocprofiler.h:1700
@ ROCPROFILER_USER_REPLAY_MODE
Replaying an user-specified range to get multi passes (Not Yet Supported)
Definition: rocprofiler.h:1712
ROCPROFILER_API const char * rocprofiler_error_str(rocprofiler_status_t status) ROCPROFILER_VERSION_9_0
Query the textual description of the given error for the current thread.
rocprofiler_status_t
ROCProfiler API status codes.
Definition: rocprofiler.h:204
@ ROCPROFILER_STATUS_ERROR_CORRUPTED_SESSION_BUFFER
The requested Session Buffer given the session identifier is corrupted or deleted.
Definition: rocprofiler.h:281
@ ROCPROFILER_STATUS_ERROR_TRACER_API_DATA_INFORMATION_MISSING
The requested information for the tracing API Data is missing.
Definition: rocprofiler.h:268
@ ROCPROFILER_STATUS_ERROR_QUEUE_INFORMATION_MISSING
The requested information about the queue is not found.
Definition: rocprofiler.h:244
@ ROCPROFILER_STATUS_ERROR_COUNTER_INFORMATION_MISSING
The requested Counter information for the given kernel is missing.
Definition: rocprofiler.h:260
@ ROCPROFILER_STATUS_ERROR_SESSION_MISSING_FILTER
Missing Filter for a session.
Definition: rocprofiler.h:293
@ ROCPROFILER_STATUS_ERROR_SESSION_MISSING_BUFFER
Missing Buffer for a session.
Definition: rocprofiler.h:224
@ ROCPROFILER_STATUS_ERROR_HAS_ACTIVE_SESSION
There is already Active session, Can't activate two session at the same time.
Definition: rocprofiler.h:326
@ ROCPROFILER_STATUS_ERROR_KERNEL_NOT_FOUND
Kernel is not found with given identifier.
Definition: rocprofiler.h:248
@ ROCPROFILER_STATUS_ERROR_FILTER_DATA_CORRUPTED
The given filter data is corrupted.
Definition: rocprofiler.h:309
@ ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND
The required buffer is not found for the given session.
Definition: rocprofiler.h:338
@ ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND
Counter is not found with the given identifier.
Definition: rocprofiler.h:256
@ ROCPROFILER_STATUS_ERROR_CORRUPTED_LABEL_DATA
The given label is corrupted.
Definition: rocprofiler.h:313
@ ROCPROFILER_STATUS_ERROR_INCORRECT_REPLAY_MODE
Incorrect Replay mode.
Definition: rocprofiler.h:289
@ ROCPROFILER_STATUS_ERROR_QUEUE_NOT_FOUND
Queue is not found for the given identifier.
Definition: rocprofiler.h:240
@ ROCPROFILER_STATUS_ERROR_INCORRECT_FLUSH_INTERVAL
Incorrect Flush interval.
Definition: rocprofiler.h:301
@ ROCPROFILER_STATUS_ERROR_TRACER_API_DATA_NOT_FOUND
The requested Tracing API Data for the given data identifier is missing.
Definition: rocprofiler.h:264
@ ROCPROFILER_STATUS_ERROR_SESSION_NOT_FOUND
The requested Session given the session identifier is not found.
Definition: rocprofiler.h:276
@ ROCPROFILER_STATUS_ERROR_SESSION_FILTER_DATA_MISMATCH
The session filter can't accept the given data.
Definition: rocprofiler.h:305
@ ROCPROFILER_STATUS_ERROR_INCORRECT_DOMAIN
The given Domain is incorrect.
Definition: rocprofiler.h:272
@ ROCPROFILER_STATUS_ERROR_AGENT_NOT_FOUND
Agent is not found with given identifier.
Definition: rocprofiler.h:232
@ ROCPROFILER_STATUS_ERROR_SESSION_NOT_ACTIVE
Can't terminate a non active session.
Definition: rocprofiler.h:330
@ ROCPROFILER_STATUS_ERROR
A generic error has occurred.
Definition: rocprofiler.h:212
@ ROCPROFILER_STATUS_ERROR_KERNEL_INFORMATION_MISSING
The requested information about the kernel is not found.
Definition: rocprofiler.h:252
@ ROCPROFILER_STATUS_ERROR_RANGE_STACK_IS_EMPTY
There is no label in the labels stack to be popped.
Definition: rocprofiler.h:317
@ ROCPROFILER_STATUS_ERROR_TIMESTAMP_NOT_APPLICABLE
Timestamps can't be collected.
Definition: rocprofiler.h:228
@ ROCPROFILER_STATUS_ERROR_FILTER_NOT_FOUND
The required filter is not found for the given session.
Definition: rocprofiler.h:334
@ ROCPROFILER_STATUS_ERROR_INCORRECT_SIZE
The size given for the buffer is not applicable.
Definition: rocprofiler.h:297
@ ROCPROFILER_STATUS_ERROR_RECORD_CORRUPTED
The requested record given the record identifier is corrupted or deleted.
Definition: rocprofiler.h:285
@ ROCPROFILER_STATUS_ERROR_ALREADY_INITIALIZED
ROCProfiler is already initialized.
Definition: rocprofiler.h:216
@ ROCPROFILER_STATUS_SUCCESS
The function has executed successfully.
Definition: rocprofiler.h:208
@ ROCPROFILER_STATUS_ERROR_PASS_NOT_STARTED
There is no pass that started.
Definition: rocprofiler.h:321
@ ROCPROFILER_STATUS_ERROR_FILTER_NOT_SUPPORTED
The required Filter is not supported.
Definition: rocprofiler.h:342
@ ROCPROFILER_STATUS_ERROR_AGENT_INFORMATION_MISSING
Agent information is missing for the given identifier.
Definition: rocprofiler.h:236
@ ROCPROFILER_STATUS_ERROR_NOT_INITIALIZED
ROCProfiler is not initialized.
Definition: rocprofiler.h:220
#define ROCPROFILER_VERSION_9_0
The function was introduced in version 9.0 of the interface and has the symbol version string of "ROC...
Definition: rocprofiler.h:144
ROCPROFILER_API rocprofiler_status_t rocprofiler_get_timestamp(rocprofiler_timestamp_t *timestamp) ROCPROFILER_VERSION_9_0
Get the system clock timestamp.
rocprofiler_tracer_activity_domain_t
Traced API domains.
Definition: rocprofiler.h:1121
@ ACTIVITY_DOMAIN_ROCTX
ROCTX domain.
Definition: rocprofiler.h:1149
@ ACTIVITY_DOMAIN_EXT_API
External ID domain.
Definition: rocprofiler.h:1145
@ ACTIVITY_DOMAIN_HSA_EVT
HSA events (Device Activity)
Definition: rocprofiler.h:1155
@ ACTIVITY_DOMAIN_HSA_OPS
HSA async activity domain.
Definition: rocprofiler.h:1129
@ ACTIVITY_DOMAIN_HIP_API
HIP API domain.
Definition: rocprofiler.h:1137
@ ACTIVITY_DOMAIN_NUMBER
Definition: rocprofiler.h:1156
@ ACTIVITY_DOMAIN_HSA_API
HSA API domain.
Definition: rocprofiler.h:1125
@ ACTIVITY_DOMAIN_HIP_OPS
HIP async activity domain.
Definition: rocprofiler.h:1133
@ ACTIVITY_DOMAIN_KFD_API
KFD API domain.
Definition: rocprofiler.h:1141
ROCPROFILER_API uint32_t rocprofiler_version_major()
Query the major version of the installed library.
ROCPROFILER_API uint32_t rocprofiler_version_minor()
Query the minor version of the installed library.
#define ROCPROFILER_API
Definition: rocprofiler.h:114
Agent ID handle, which represents a unique id to the agent reported as it can be used to retrieve Age...
Definition: rocprofiler.h:511
Definition: rocprofiler.h:1850
Definition: rocprofiler.h:1616
Definition: rocprofiler.h:1611
Counter ID to be used to query counter information using rocprofiler_query_counter_info.
Definition: rocprofiler.h:787
Definition: rocprofiler.h:768
Definition: rocprofiler.h:2342
Definition: rocprofiler.h:1909
Definition: rocprofiler.h:1914
Definition: rocprofiler.h:1919
Definition: rocprofiler.h:2346
Definition: rocprofiler.h:1007
Definition: rocprofiler.h:1620
Filter Data Type filter data will be used to report required and optional filters for the sessions us...
Definition: rocprofiler.h:1863
Kernel dispatch correlation ID, unique across all dispatches.
Definition: rocprofiler.h:1536
Kernel identifier that represent a unique id for every kernel.
Definition: rocprofiler.h:676
Kernel properties, this will represent the kernel properties such as its grid size,...
Definition: rocprofiler.h:911
An individual PC sample.
Definition: rocprofiler.h:1543
Unique ID handle to represent an HSA Queue of type hsa_queue_t, this id can be used by the user to ge...
Definition: rocprofiler.h:605
Definition: rocprofiler.h:860
ATT tracing record structure.
Definition: rocprofiler.h:1066
Counter Instance Structure, it will represent every counter reported in the array of counters reporte...
Definition: rocprofiler.h:883
Counter Value Structure.
Definition: rocprofiler.h:871
Counters Instances Count Structure, every profiling record has this structure included to report the ...
Definition: rocprofiler.h:899
Definition: rocprofiler.h:1946
Generic ROCProfiler record header.
Definition: rocprofiler.h:490
Timestamps (start & end), it will be used for kernel dispatch tracing as well as API Tracing.
Definition: rocprofiler.h:435
A unique identifier for every record.
Definition: rocprofiler.h:449
PC sample record: contains the program counter/instruction pointer observed during periodic sampling ...
Definition: rocprofiler.h:1577
Profiling record, this will represent all the information reported by the profiler regarding kernel d...
Definition: rocprofiler.h:957
struct to store the trace data from a shader engine.
Definition: rocprofiler.h:1054
Counters, including identifiers to get counter information and Counters values.
Definition: rocprofiler.h:1021
SPM record, this will represent all the information reported by the SPM regarding counters and their ...
Definition: rocprofiler.h:1033
Tracing record, this will represent all the information reported by the tracer regarding APIs and the...
Definition: rocprofiler.h:1484
Session Identifier.
Definition: rocprofiler.h:392
Definition: rocprofiler.h:1884
Holds the thread id.
Definition: rocprofiler.h:742
ROCProfiling Timestamp Type.
Definition: rocprofiler.h:415
Correlation identifier.
Definition: rocprofiler.h:1169
Tracer API Calls Data Handler.
Definition: rocprofiler.h:1179
Tracing external ID.
Definition: rocprofiler.h:1473
Tracing Operation ID for HIP/HSA.
Definition: rocprofiler.h:1162
Filter Kind Data.
Definition: rocprofiler.h:1971