Basic data types

Basic data types#

Rocprofiler SDK Developer API: Basic data types
Rocprofiler SDK Developer API 0.4.0
ROCm Profiling API and tools
Basic data types

Basic data types and typedefs. More...

Data Structures

union  rocprofiler_user_data_t
 User-assignable data type. More...
 
struct  rocprofiler_context_id_t
 Context ID. More...
 
struct  rocprofiler_queue_id_t
 Queue ID. More...
 
struct  rocprofiler_correlation_id_t
 ROCProfiler Record Correlation ID. More...
 
struct  rocprofiler_buffer_id_t
 Buffer ID. More...
 
struct  rocprofiler_agent_id_t
 Agent Identifier. More...
 
struct  rocprofiler_counter_id_t
 Counter ID. More...
 
struct  rocprofiler_profile_config_id_t
 Profile Configurations. More...
 
struct  rocprofiler_dim3_t
 Multi-dimensional struct of data used to describe GPU workgroup and grid sizes. More...
 
struct  rocprofiler_callback_tracing_record_t
 Tracing record. More...
 
struct  rocprofiler_record_header_t
 Generic record with type identifier(s) and a pointer to data. This data type is used with buffered data. More...
 
struct  rocprofiler_kernel_dispatch_info_t
 ROCProfiler kernel dispatch information. More...
 
struct  rocprofiler_record_dimension_info_t
 Details for the dimension, including its size, for a counter record. More...
 
struct  rocprofiler_record_counter_t
 ROCProfiler Profile Counting Counter Record per instance. More...
 
struct  rocprofiler_counter_info_v0_t
 Counter info struct version 0. More...
 
struct  rocprofiler_spm_record_t
 ROCProfiler SPM Record. More...
 
union  rocprofiler_record_header_t.__unnamed16__
 
struct  rocprofiler_record_header_t.__unnamed16__.__unnamed18__
 

Macros

#define ROCPROFILER_CORRELATION_ID_INTERNAL_NONE   ROCPROFILER_UINT64_C(0)
 The NULL value of an internal correlation ID.
 

Typedefs

typedef uint64_t rocprofiler_timestamp_t
 ROCProfiler Timestamp.
 
typedef uint64_t rocprofiler_address_t
 ROCProfiler Address.
 
typedef uint64_t rocprofiler_thread_id_t
 Thread ID. Value will be equivalent to syscall(__NR_gettid)
 
typedef uint32_t rocprofiler_tracing_operation_t
 Tracing Operation ID. Depending on the kind, operations can be determined. If the value is equal to zero that means all operations will be considered for tracing. Detailed API tracing operations can be found at associated header file for that partiular operation. i.e: For ROCProfiler enumeration of HSA AMD Extended API tracing operations, look at source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h.
 
typedef uint64_t rocprofiler_kernel_id_t
 Kernel identifier type.
 
typedef uint64_t rocprofiler_dispatch_id_t
 
typedef uint64_t rocprofiler_counter_instance_id_t
 Unique record id encoding both the counter and dimensional values (positions) for the record.
 
typedef uint64_t rocprofiler_counter_dimension_id_t
 A dimension for counter instances. Some example dimensions include XCC, SM (Shader), etc. This value represents the dimension beind described or queried about.
 

Enumerations

enum  rocprofiler_status_t {
  ROCPROFILER_STATUS_SUCCESS = 0 ,
  ROCPROFILER_STATUS_ERROR ,
  ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_THREAD_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_AGENT_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_CONTEXT_ERROR ,
  ROCPROFILER_STATUS_ERROR_CONTEXT_INVALID ,
  ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_STARTED ,
  ROCPROFILER_STATUS_ERROR_CONTEXT_CONFLICT ,
  ROCPROFILER_STATUS_ERROR_BUFFER_BUSY ,
  ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED ,
  ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED ,
  ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED ,
  ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI ,
  ROCPROFILER_STATUS_ERROR_INVALID_ARGUMENT ,
  ROCPROFILER_STATUS_ERROR_METRIC_NOT_VALID_FOR_AGENT ,
  ROCPROFILER_STATUS_ERROR_FINALIZED ,
  ROCPROFILER_STATUS_ERROR_HSA_NOT_LOADED ,
  ROCPROFILER_STATUS_ERROR_DIM_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_PROFILE_COUNTER_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_AST_GENERATION_FAILED ,
  ROCPROFILER_STATUS_ERROR_AST_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_AQL_NO_EVENT_COORD ,
  ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_KERNEL ,
  ROCPROFILER_STATUS_ERROR_OUT_OF_RESOURCES ,
  ROCPROFILER_STATUS_ERROR_PROFILE_NOT_FOUND ,
  ROCPROFILER_STATUS_ERROR_AGENT_DISPATCH_CONFLICT ,
  ROCPROFILER_STATUS_INTERNAL_NO_AGENT_CONTEXT ,
  ROCPROFILER_STATUS_ERROR_SAMPLE_RATE_EXCEEDED ,
  ROCPROFILER_STATUS_ERROR_NO_PROFILE_QUEUE ,
  ROCPROFILER_STATUS_ERROR_NO_HARDWARE_COUNTERS ,
  ROCPROFILER_STATUS_ERROR_AGENT_MISMATCH ,
  ROCPROFILER_STATUS_ERROR_NOT_AVAILABLE ,
  ROCPROFILER_STATUS_ERROR_EXCEEDS_HW_LIMIT ,
  ROCPROFILER_STATUS_LAST
}
 Status codes. More...
 
enum  rocprofiler_buffer_category_t {
  ROCPROFILER_BUFFER_CATEGORY_NONE = 0 ,
  ROCPROFILER_BUFFER_CATEGORY_TRACING ,
  ROCPROFILER_BUFFER_CATEGORY_PC_SAMPLING ,
  ROCPROFILER_BUFFER_CATEGORY_COUNTERS ,
  ROCPROFILER_BUFFER_CATEGORY_LAST
}
 Buffer record categories. This enumeration type is encoded in rocprofiler_record_header_t category field. More...
 
enum  rocprofiler_agent_type_t {
  ROCPROFILER_AGENT_TYPE_NONE = 0 ,
  ROCPROFILER_AGENT_TYPE_CPU ,
  ROCPROFILER_AGENT_TYPE_GPU ,
  ROCPROFILER_AGENT_TYPE_LAST
}
 Agent type. More...
 
enum  rocprofiler_callback_phase_t {
  ROCPROFILER_CALLBACK_PHASE_NONE = 0 ,
  ROCPROFILER_CALLBACK_PHASE_ENTER ,
  ROCPROFILER_CALLBACK_PHASE_LOAD ,
  ROCPROFILER_CALLBACK_PHASE_EXIT ,
  ROCPROFILER_CALLBACK_PHASE_UNLOAD ,
  ROCPROFILER_CALLBACK_PHASE_LAST
}
 Service Callback Phase. More...
 
enum  rocprofiler_callback_tracing_kind_t {
  ROCPROFILER_CALLBACK_TRACING_NONE = 0 ,
  ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API ,
  ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API ,
  ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API ,
  ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API ,
  ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API ,
  ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API ,
  ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API ,
  ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API ,
  ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API ,
  ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT ,
  ROCPROFILER_CALLBACK_TRACING_SCRATCH_MEMORY ,
  ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH ,
  ROCPROFILER_CALLBACK_TRACING_MEMORY_COPY ,
  ROCPROFILER_CALLBACK_TRACING_LAST
}
 Service Callback Tracing Kind. More...
 
enum  rocprofiler_buffer_tracing_kind_t {
  ROCPROFILER_BUFFER_TRACING_NONE = 0 ,
  ROCPROFILER_BUFFER_TRACING_HSA_CORE_API ,
  ROCPROFILER_BUFFER_TRACING_HSA_AMD_EXT_API ,
  ROCPROFILER_BUFFER_TRACING_HSA_IMAGE_EXT_API ,
  ROCPROFILER_BUFFER_TRACING_HSA_FINALIZE_EXT_API ,
  ROCPROFILER_BUFFER_TRACING_HIP_RUNTIME_API ,
  ROCPROFILER_BUFFER_TRACING_HIP_COMPILER_API ,
  ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API ,
  ROCPROFILER_BUFFER_TRACING_MARKER_CONTROL_API ,
  ROCPROFILER_BUFFER_TRACING_MARKER_NAME_API ,
  ROCPROFILER_BUFFER_TRACING_MEMORY_COPY ,
  ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH ,
  ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION ,
  ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY ,
  ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT ,
  ROCPROFILER_BUFFER_TRACING_LAST
}
 Service Buffer Tracing Kind. More...
 
enum  rocprofiler_code_object_operation_t {
  ROCPROFILER_CODE_OBJECT_NONE = 0 ,
  ROCPROFILER_CODE_OBJECT_LOAD ,
  ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER ,
  ROCPROFILER_CODE_OBJECT_LAST
}
 ROCProfiler Code Object Tracer Operation. More...
 
enum  rocprofiler_memory_copy_operation_t {
  ROCPROFILER_MEMORY_COPY_NONE = 0 ,
  ROCPROFILER_MEMORY_COPY_HOST_TO_HOST ,
  ROCPROFILER_MEMORY_COPY_HOST_TO_DEVICE ,
  ROCPROFILER_MEMORY_COPY_DEVICE_TO_HOST ,
  ROCPROFILER_MEMORY_COPY_DEVICE_TO_DEVICE ,
  ROCPROFILER_MEMORY_COPY_LAST
}
 Memory Copy Operation. More...
 
enum  rocprofiler_page_migration_operation_t {
  ROCPROFILER_PAGE_MIGRATION_NONE = 0 ,
  ROCPROFILER_PAGE_MIGRATION_PAGE_MIGRATE ,
  ROCPROFILER_PAGE_MIGRATION_PAGE_FAULT ,
  ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND ,
  ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU ,
  ROCPROFILER_PAGE_MIGRATION_LAST
}
 Page migration event. More...
 
enum  rocprofiler_kernel_dispatch_operation_t {
  ROCPROFILER_KERNEL_DISPATCH_NONE = 0 ,
  ROCPROFILER_KERNEL_DISPATCH_ENQUEUE = 1 ,
  ROCPROFILER_KERNEL_DISPATCH_COMPLETE ,
  ROCPROFILER_KERNEL_DISPATCH_LAST ,
  ROCPROFILER_KERNEL_DISPATCH_ENQUEUE = 1 ,
  ROCPROFILER_KERNEL_DISPATCH_COMPLETE
}
 ROCProfiler Kernel Dispatch Tracing Operation Types. More...
 
enum  rocprofiler_pc_sampling_method_t {
  ROCPROFILER_PC_SAMPLING_METHOD_NONE = 0 ,
  ROCPROFILER_PC_SAMPLING_METHOD_STOCHASTIC ,
  ROCPROFILER_PC_SAMPLING_METHOD_HOST_TRAP ,
  ROCPROFILER_PC_SAMPLING_METHOD_LAST
}
 PC Sampling Method. More...
 
enum  rocprofiler_pc_sampling_unit_t {
  ROCPROFILER_PC_SAMPLING_UNIT_NONE = 0 ,
  ROCPROFILER_PC_SAMPLING_UNIT_INSTRUCTIONS ,
  ROCPROFILER_PC_SAMPLING_UNIT_CYCLES ,
  ROCPROFILER_PC_SAMPLING_UNIT_TIME ,
  ROCPROFILER_PC_SAMPLING_UNIT_LAST
}
 PC Sampling Unit. More...
 
enum  rocprofiler_buffer_policy_t {
  ROCPROFILER_BUFFER_POLICY_NONE = 0 ,
  ROCPROFILER_BUFFER_POLICY_DISCARD ,
  ROCPROFILER_BUFFER_POLICY_LOSSLESS ,
  ROCPROFILER_BUFFER_POLICY_LAST
}
 Actions when Buffer is full. More...
 
enum  rocprofiler_scratch_memory_operation_t {
  ROCPROFILER_SCRATCH_MEMORY_NONE = 0 ,
  ROCPROFILER_SCRATCH_MEMORY_ALLOC ,
  ROCPROFILER_SCRATCH_MEMORY_FREE ,
  ROCPROFILER_SCRATCH_MEMORY_ASYNC_RECLAIM ,
  ROCPROFILER_SCRATCH_MEMORY_LAST
}
 Scratch event kind. More...
 
enum  rocprofiler_scratch_alloc_flag_t {
  ROCPROFILER_SCRATCH_ALLOC_FLAG_NONE = 0 ,
  ROCPROFILER_SCRATCH_ALLOC_FLAG_USE_ONCE ,
  ROCPROFILER_SCRATCH_ALLOC_FLAG_ALT
}
 Allocation flags for. More...
 
enum  rocprofiler_runtime_library_t {
  ROCPROFILER_LIBRARY = (1 << 0) ,
  ROCPROFILER_HSA_LIBRARY = (1 << 1) ,
  ROCPROFILER_HIP_LIBRARY = (1 << 2) ,
  ROCPROFILER_MARKER_LIBRARY = (1 << 3) ,
  ROCPROFILER_LIBRARY_LAST = ROCPROFILER_MARKER_LIBRARY
}
 Enumeration for specifying runtime libraries supported by rocprofiler. This enumeration is used for thread creation callbacks. More...
 
enum  rocprofiler_intercept_table_t {
  ROCPROFILER_HSA_TABLE = (1 << 0) ,
  ROCPROFILER_HIP_RUNTIME_TABLE = (1 << 1) ,
  ROCPROFILER_HIP_COMPILER_TABLE = (1 << 2) ,
  ROCPROFILER_MARKER_CORE_TABLE = (1 << 3) ,
  ROCPROFILER_MARKER_CONTROL_TABLE = (1 << 4) ,
  ROCPROFILER_MARKER_NAME_TABLE = (1 << 5) ,
  ROCPROFILER_TABLE_LAST = ROCPROFILER_MARKER_NAME_TABLE
}
 Enumeration for specifying intercept tables supported by rocprofiler. This enumeration is used for intercept tables. More...
 
enum  rocprofiler_counter_info_version_id_t {
  ROCPROFILER_COUNTER_INFO_VERSION_NONE ,
  ROCPROFILER_COUNTER_INFO_VERSION_0 ,
  ROCPROFILER_COUNTER_INFO_VERSION_LAST
}
 Enumeration for specifying the counter info struct version you want. More...
 
enum  rocprofiler_counter_record_kind_t {
  ROCPROFILER_COUNTER_RECORD_NONE = 0 ,
  ROCPROFILER_COUNTER_RECORD_PROFILE_COUNTING_DISPATCH_HEADER ,
  ROCPROFILER_COUNTER_RECORD_VALUE ,
  ROCPROFILER_COUNTER_RECORD_LAST
}
 Enumeration for distinguishing different buffer record kinds within the ROCPROFILER_BUFFER_CATEGORY_COUNTERS category. More...
 
enum  rocprofiler_counter_flag_t {
  ROCPROFILER_COUNTER_FLAG_NONE = 0 ,
  ROCPROFILER_COUNTER_FLAG_ASYNC ,
  ROCPROFILER_COUNTER_FLAG_LAST
}
 Enumeration of flags that can be used with some counter api calls. More...
 
enum  rocprofiler_pc_sampling_record_kind_t {
  ROCPROFILER_PC_SAMPLING_RECORD_NONE = 0 ,
  ROCPROFILER_PC_SAMPLING_RECORD_SAMPLE ,
  ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_LOAD_MARKER ,
  ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_UNLOAD_MARKER ,
  ROCPROFILER_PC_SAMPLING_RECORD_LAST
}
 Enumeration for distinguishing different buffer record kinds within the ROCPROFILER_BUFFER_CATEGORY_PC_SAMPLING category. More...
 

Detailed Description

Basic data types and typedefs.


Data Structure Documentation

◆ rocprofiler_user_data_t

union rocprofiler_user_data_t

User-assignable data type.

Examples
api_buffered_tracing/client.cpp, and samples/api_callback_tracing/client.cpp.

Definition at line 486 of file fwd.h.

+ Collaboration diagram for rocprofiler_user_data_t:
Data Fields
void * ptr usage example: set to address of data allocation
uint64_t value usage example: set to process id, thread id, etc.

◆ rocprofiler_context_id_t

struct rocprofiler_context_id_t

Context ID.

Examples
api_buffered_tracing/client.cpp, and samples/api_callback_tracing/client.cpp.

Definition at line 501 of file fwd.h.

+ Collaboration diagram for rocprofiler_context_id_t:
Data Fields
uint64_t handle

◆ rocprofiler_queue_id_t

struct rocprofiler_queue_id_t

Queue ID.

Definition at line 509 of file fwd.h.

+ Collaboration diagram for rocprofiler_queue_id_t:
Data Fields
uint64_t handle

◆ rocprofiler_correlation_id_t

struct rocprofiler_correlation_id_t

ROCProfiler Record Correlation ID.

Definition at line 517 of file fwd.h.

+ Collaboration diagram for rocprofiler_correlation_id_t:
Data Fields
rocprofiler_user_data_t external
uint64_t internal

◆ rocprofiler_buffer_id_t

struct rocprofiler_buffer_id_t

Buffer ID.

Examples
api_buffered_tracing/client.cpp.

Definition at line 532 of file fwd.h.

+ Collaboration diagram for rocprofiler_buffer_id_t:
Data Fields
uint64_t handle

◆ rocprofiler_agent_id_t

struct rocprofiler_agent_id_t

Agent Identifier.

Definition at line 540 of file fwd.h.

+ Collaboration diagram for rocprofiler_agent_id_t:
Data Fields
uint64_t handle

◆ rocprofiler_counter_id_t

struct rocprofiler_counter_id_t

Counter ID.

Definition at line 548 of file fwd.h.

+ Collaboration diagram for rocprofiler_counter_id_t:
Data Fields
uint64_t handle

◆ rocprofiler_profile_config_id_t

struct rocprofiler_profile_config_id_t

Profile Configurations.

See also
rocprofiler_create_profile_config for how to create.

Definition at line 557 of file fwd.h.

+ Collaboration diagram for rocprofiler_profile_config_id_t:
Data Fields
uint64_t handle

◆ rocprofiler_dim3_t

struct rocprofiler_dim3_t

Multi-dimensional struct of data used to describe GPU workgroup and grid sizes.

Definition at line 565 of file fwd.h.

+ Collaboration diagram for rocprofiler_dim3_t:
Data Fields
uint32_t x
uint32_t y
uint32_t z

◆ rocprofiler_callback_tracing_record_t

struct rocprofiler_callback_tracing_record_t

Tracing record.

Examples
api_buffered_tracing/client.cpp, and samples/api_callback_tracing/client.cpp.

Definition at line 576 of file fwd.h.

+ Collaboration diagram for rocprofiler_callback_tracing_record_t:
Data Fields
rocprofiler_context_id_t context_id
rocprofiler_correlation_id_t correlation_id
rocprofiler_callback_tracing_kind_t kind
uint32_t operation
void * payload
rocprofiler_callback_phase_t phase
rocprofiler_thread_id_t thread_id

◆ rocprofiler_record_header_t

struct rocprofiler_record_header_t

Generic record with type identifier(s) and a pointer to data. This data type is used with buffered data.

void
tool_tracing_callback(rocprofiler_record_header_t** headers,
size_t num_headers)
{
for(size_t i = 0; i < num_headers; ++i)
{
rocprofiler_record_header_t* header = headers[i];
if(header->category == ROCPROFILER_BUFFER_CATEGORY_TRACING &&
header->kind == ROCPROFILER_BUFFER_TRACING_HSA_API)
{
// cast to rocprofiler_buffer_tracing_hsa_api_record_t which
// is type associated with this category + kind
auto* record =
// trivial test
assert(record->start_timestamp <= record->end_timestamp);
}
}
}
@ ROCPROFILER_BUFFER_CATEGORY_TRACING
Definition fwd.h:119
Generic record with type identifier(s) and a pointer to data. This data type is used with buffered da...
Definition fwd.h:617
ROCProfiler Buffer HSA API Tracer Record.
Examples
api_buffered_tracing/client.cpp.

Definition at line 616 of file fwd.h.

+ Collaboration diagram for rocprofiler_record_header_t:
Data Fields
union rocprofiler_record_header_t.__unnamed16__ __unnamed__
void * payload

◆ rocprofiler_kernel_dispatch_info_t

struct rocprofiler_kernel_dispatch_info_t

ROCProfiler kernel dispatch information.

Definition at line 652 of file fwd.h.

+ Collaboration diagram for rocprofiler_kernel_dispatch_info_t:
Data Fields
rocprofiler_agent_id_t agent_id Agent ID where kernel is launched.
rocprofiler_dispatch_id_t dispatch_id unique id for each dispatch
rocprofiler_dim3_t grid_size runtime grid size
uint32_t group_segment_size runtime group memory segment size
rocprofiler_kernel_id_t kernel_id Kernel identifier.
uint32_t private_segment_size runtime private memory segment size
rocprofiler_queue_id_t queue_id Queue ID where kernel packet is enqueued.
uint8_t reserved_padding[56]
uint64_t size Size of this struct (minus reserved padding)
rocprofiler_dim3_t workgroup_size runtime workgroup size (grid * threads)

◆ rocprofiler_record_dimension_info_t

struct rocprofiler_record_dimension_info_t

Details for the dimension, including its size, for a counter record.

Definition at line 669 of file fwd.h.

+ Collaboration diagram for rocprofiler_record_dimension_info_t:
Data Fields
rocprofiler_counter_dimension_id_t id Id for this dimension used by rocprofiler_query_record_dimension_position.
unsigned long instance_size
const char * name

◆ rocprofiler_record_counter_t

struct rocprofiler_record_counter_t

ROCProfiler Profile Counting Counter Record per instance.

Definition at line 682 of file fwd.h.

+ Collaboration diagram for rocprofiler_record_counter_t:
Data Fields
double counter_value counter value
rocprofiler_dispatch_id_t dispatch_id A value greater than zero indicates that this counter record is associated with a specific dispatch.

This value can be mapped to a dispatch via the dispatch_info field (

See also
rocprofiler_kernel_dispatch_info_t) of a rocprofiler_profile_counting_dispatch_data_t instance (provided during callback for profile config) or a rocprofiler_profile_counting_dispatch_record_t records (which will be insert into the buffer prior to the associated rocprofiler_record_counter_t records).
rocprofiler_counter_instance_id_t id counter identifier
rocprofiler_user_data_t user_data

◆ rocprofiler_counter_info_v0_t

struct rocprofiler_counter_info_v0_t

Counter info struct version 0.

Definition at line 703 of file fwd.h.

+ Collaboration diagram for rocprofiler_counter_info_v0_t:
Data Fields
const char * block Block of the counter (non-derived only)
const char * description Description of the counter.
const char * expression Counter expression (derived counters only)
rocprofiler_counter_id_t id Id of this counter.
uint8_t is_constant: 1 If this counter is HW constant.
uint8_t is_derived: 1 If this counter is a derived counter.
const char * name Name of the counter.

◆ rocprofiler_spm_record_t

struct rocprofiler_spm_record_t

ROCProfiler SPM Record.

Definition at line 718 of file fwd.h.

+ Collaboration diagram for rocprofiler_spm_record_t:
Data Fields
rocprofiler_record_counter_t * counters

Counters, including identifiers to get counter information and Counters values

uint64_t counters_count

◆ rocprofiler_record_header_t.__unnamed16__

union rocprofiler_record_header_t.__unnamed16__

Definition at line 618 of file fwd.h.

+ Collaboration diagram for rocprofiler_record_header_t.__unnamed16__:
Data Fields
struct rocprofiler_record_header_t.__unnamed16__.__unnamed18__ __unnamed__
uint64_t hash generic identifier. You can compute this via: uint64_t hash = category | ((uint64_t)(kind) << 32), e.g.

◆ rocprofiler_record_header_t.__unnamed16__.__unnamed18__

struct rocprofiler_record_header_t.__unnamed16__.__unnamed18__

Definition at line 620 of file fwd.h.

+ Collaboration diagram for rocprofiler_record_header_t.__unnamed16__.__unnamed18__:
Data Fields
uint32_t category rocprofiler_buffer_category_t
uint32_t kind domain

Macro Definition Documentation

◆ ROCPROFILER_CORRELATION_ID_INTERNAL_NONE

#define ROCPROFILER_CORRELATION_ID_INTERNAL_NONE   ROCPROFILER_UINT64_C(0)

The NULL value of an internal correlation ID.

Definition at line 526 of file fwd.h.

Typedef Documentation

◆ rocprofiler_address_t

typedef uint64_t rocprofiler_address_t

ROCProfiler Address.

Definition at line 434 of file fwd.h.

◆ rocprofiler_counter_dimension_id_t

A dimension for counter instances. Some example dimensions include XCC, SM (Shader), etc. This value represents the dimension beind described or queried about.

Definition at line 474 of file fwd.h.

◆ rocprofiler_counter_instance_id_t

Unique record id encoding both the counter and dimensional values (positions) for the record.

Definition at line 466 of file fwd.h.

◆ rocprofiler_dispatch_id_t

typedef uint64_t rocprofiler_dispatch_id_t

Definition at line 460 of file fwd.h.

◆ rocprofiler_kernel_id_t

typedef uint64_t rocprofiler_kernel_id_t

Kernel identifier type.

Definition at line 454 of file fwd.h.

◆ rocprofiler_thread_id_t

typedef uint64_t rocprofiler_thread_id_t

Thread ID. Value will be equivalent to syscall(__NR_gettid)

Definition at line 439 of file fwd.h.

◆ rocprofiler_timestamp_t

typedef uint64_t rocprofiler_timestamp_t

ROCProfiler Timestamp.

Definition at line 429 of file fwd.h.

◆ rocprofiler_tracing_operation_t

Tracing Operation ID. Depending on the kind, operations can be determined. If the value is equal to zero that means all operations will be considered for tracing. Detailed API tracing operations can be found at associated header file for that partiular operation. i.e: For ROCProfiler enumeration of HSA AMD Extended API tracing operations, look at source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h.

Definition at line 448 of file fwd.h.

Enumeration Type Documentation

◆ rocprofiler_agent_type_t

Agent type.

Enumerator
ROCPROFILER_AGENT_TYPE_NONE 

Agent type is unknown.

ROCPROFILER_AGENT_TYPE_CPU 

Agent type is a CPU.

ROCPROFILER_AGENT_TYPE_GPU 

Agent type is a GPU.

ROCPROFILER_AGENT_TYPE_LAST 

Definition at line 128 of file fwd.h.

129{
130 ROCPROFILER_AGENT_TYPE_NONE = 0, ///< Agent type is unknown
131 ROCPROFILER_AGENT_TYPE_CPU, ///< Agent type is a CPU
132 ROCPROFILER_AGENT_TYPE_GPU, ///< Agent type is a GPU
rocprofiler_agent_type_t
Agent type.
Definition fwd.h:129
@ ROCPROFILER_AGENT_TYPE_NONE
Agent type is unknown.
Definition fwd.h:130
@ ROCPROFILER_AGENT_TYPE_GPU
Agent type is a GPU.
Definition fwd.h:132
@ ROCPROFILER_AGENT_TYPE_LAST
Definition fwd.h:133
@ ROCPROFILER_AGENT_TYPE_CPU
Agent type is a CPU.
Definition fwd.h:131

◆ rocprofiler_buffer_category_t

Buffer record categories. This enumeration type is encoded in rocprofiler_record_header_t category field.

Enumerator
ROCPROFILER_BUFFER_CATEGORY_NONE 
ROCPROFILER_BUFFER_CATEGORY_TRACING 
ROCPROFILER_BUFFER_CATEGORY_PC_SAMPLING 
ROCPROFILER_BUFFER_CATEGORY_COUNTERS 
ROCPROFILER_BUFFER_CATEGORY_LAST 

Definition at line 116 of file fwd.h.

117{
rocprofiler_buffer_category_t
Buffer record categories. This enumeration type is encoded in rocprofiler_record_header_t category fi...
Definition fwd.h:117
@ ROCPROFILER_BUFFER_CATEGORY_NONE
Definition fwd.h:118
@ ROCPROFILER_BUFFER_CATEGORY_PC_SAMPLING
Definition fwd.h:120
@ ROCPROFILER_BUFFER_CATEGORY_LAST
Definition fwd.h:122
@ ROCPROFILER_BUFFER_CATEGORY_COUNTERS
Definition fwd.h:121

◆ rocprofiler_buffer_policy_t

Actions when Buffer is full.

Enumerator
ROCPROFILER_BUFFER_POLICY_NONE 

No policy has been set.

ROCPROFILER_BUFFER_POLICY_DISCARD 

Drop records when buffer is full.

ROCPROFILER_BUFFER_POLICY_LOSSLESS 

Block when buffer is full.

ROCPROFILER_BUFFER_POLICY_LAST 

Definition at line 310 of file fwd.h.

311{
312 ROCPROFILER_BUFFER_POLICY_NONE = 0, ///< No policy has been set
313 ROCPROFILER_BUFFER_POLICY_DISCARD, ///< Drop records when buffer is full
314 ROCPROFILER_BUFFER_POLICY_LOSSLESS, ///< Block when buffer is full
rocprofiler_buffer_policy_t
Actions when Buffer is full.
Definition fwd.h:311
@ ROCPROFILER_BUFFER_POLICY_DISCARD
Drop records when buffer is full.
Definition fwd.h:313
@ ROCPROFILER_BUFFER_POLICY_NONE
No policy has been set.
Definition fwd.h:312
@ ROCPROFILER_BUFFER_POLICY_LOSSLESS
Block when buffer is full.
Definition fwd.h:314
@ ROCPROFILER_BUFFER_POLICY_LAST
Definition fwd.h:315

◆ rocprofiler_buffer_tracing_kind_t

Service Buffer Tracing Kind.

See also
rocprofiler_configure_buffer_tracing_service.
Enumerator
ROCPROFILER_BUFFER_TRACING_NONE 
ROCPROFILER_BUFFER_TRACING_HSA_CORE_API 
See also
rocprofiler_hsa_core_api_id_t
ROCPROFILER_BUFFER_TRACING_HSA_AMD_EXT_API 
See also
rocprofiler_hsa_amd_ext_api_id_t
ROCPROFILER_BUFFER_TRACING_HSA_IMAGE_EXT_API 
See also
rocprofiler_hsa_image_ext_api_id_t
ROCPROFILER_BUFFER_TRACING_HSA_FINALIZE_EXT_API 
See also
rocprofiler_hsa_finalize_ext_api_id_t
ROCPROFILER_BUFFER_TRACING_HIP_RUNTIME_API 
See also
rocprofiler_hip_runtime_api_id_t
ROCPROFILER_BUFFER_TRACING_HIP_COMPILER_API 
See also
rocprofiler_hip_compiler_api_id_t
ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API 
See also
rocprofiler_marker_core_api_id_t
ROCPROFILER_BUFFER_TRACING_MARKER_CONTROL_API 
See also
rocprofiler_marker_control_api_id_t
ROCPROFILER_BUFFER_TRACING_MARKER_NAME_API 
See also
rocprofiler_marker_name_api_id_t
ROCPROFILER_BUFFER_TRACING_MEMORY_COPY 
See also
rocprofiler_memory_copy_operation_t
ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH 

Buffer kernel dispatch info.

ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION 

Buffer page migration info.

ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY 

Buffer scratch memory reclaimation info.

ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT 

Correlation ID in no longer in use.

ROCPROFILER_BUFFER_TRACING_LAST 

Definition at line 178 of file fwd.h.

179{
181 ROCPROFILER_BUFFER_TRACING_HSA_CORE_API, ///< @see ::rocprofiler_hsa_core_api_id_t
182 ROCPROFILER_BUFFER_TRACING_HSA_AMD_EXT_API, ///< @see ::rocprofiler_hsa_amd_ext_api_id_t
183 ROCPROFILER_BUFFER_TRACING_HSA_IMAGE_EXT_API, ///< @see ::rocprofiler_hsa_image_ext_api_id_t
185 ///< ::rocprofiler_hsa_finalize_ext_api_id_t
186 ROCPROFILER_BUFFER_TRACING_HIP_RUNTIME_API, ///< @see ::rocprofiler_hip_runtime_api_id_t
187 ROCPROFILER_BUFFER_TRACING_HIP_COMPILER_API, ///< @see ::rocprofiler_hip_compiler_api_id_t
188 ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API, ///< @see ::rocprofiler_marker_core_api_id_t
189 ROCPROFILER_BUFFER_TRACING_MARKER_CONTROL_API, ///< @see ::rocprofiler_marker_control_api_id_t
190 ROCPROFILER_BUFFER_TRACING_MARKER_NAME_API, ///< @see ::rocprofiler_marker_name_api_id_t
191 ROCPROFILER_BUFFER_TRACING_MEMORY_COPY, ///< @see ::rocprofiler_memory_copy_operation_t
192 ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH, ///< Buffer kernel dispatch info
193 ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION, ///< Buffer page migration info
194 ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY, ///< Buffer scratch memory reclaimation info
195 ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT, ///< Correlation ID in no longer in use
rocprofiler_buffer_tracing_kind_t
Service Buffer Tracing Kind.
Definition fwd.h:179
@ ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION
Buffer page migration info.
Definition fwd.h:193
@ ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API
Definition fwd.h:188
@ ROCPROFILER_BUFFER_TRACING_MARKER_NAME_API
Definition fwd.h:190
@ ROCPROFILER_BUFFER_TRACING_LAST
Definition fwd.h:196
@ ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
Correlation ID in no longer in use.
Definition fwd.h:195
@ ROCPROFILER_BUFFER_TRACING_HSA_CORE_API
Definition fwd.h:181
@ ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
Definition fwd.h:191
@ ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY
Buffer scratch memory reclaimation info.
Definition fwd.h:194
@ ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
Buffer kernel dispatch info.
Definition fwd.h:192
@ ROCPROFILER_BUFFER_TRACING_HIP_RUNTIME_API
Definition fwd.h:186
@ ROCPROFILER_BUFFER_TRACING_MARKER_CONTROL_API
Definition fwd.h:189
@ ROCPROFILER_BUFFER_TRACING_NONE
Definition fwd.h:180
@ ROCPROFILER_BUFFER_TRACING_HSA_IMAGE_EXT_API
Definition fwd.h:183
@ ROCPROFILER_BUFFER_TRACING_HIP_COMPILER_API
Definition fwd.h:187
@ ROCPROFILER_BUFFER_TRACING_HSA_AMD_EXT_API
Definition fwd.h:182
@ ROCPROFILER_BUFFER_TRACING_HSA_FINALIZE_EXT_API
Definition fwd.h:184

◆ rocprofiler_callback_phase_t

Service Callback Phase.

Enumerator
ROCPROFILER_CALLBACK_PHASE_NONE 

Callback has no phase.

ROCPROFILER_CALLBACK_PHASE_ENTER 

Callback invoked prior to function execution.

ROCPROFILER_CALLBACK_PHASE_LOAD 

Callback invoked prior to code object loading.

ROCPROFILER_CALLBACK_PHASE_EXIT 

Callback invoked after to function execution.

ROCPROFILER_CALLBACK_PHASE_UNLOAD 

Callback invoked prior to code object unloading.

ROCPROFILER_CALLBACK_PHASE_LAST 

Definition at line 139 of file fwd.h.

140{
141 ROCPROFILER_CALLBACK_PHASE_NONE = 0, ///< Callback has no phase
142 ROCPROFILER_CALLBACK_PHASE_ENTER, ///< Callback invoked prior to function execution
144 ROCPROFILER_CALLBACK_PHASE_ENTER, ///< Callback invoked prior to code object loading
145 ROCPROFILER_CALLBACK_PHASE_EXIT, ///< Callback invoked after to function execution
147 ROCPROFILER_CALLBACK_PHASE_EXIT, ///< Callback invoked prior to code object unloading
rocprofiler_callback_phase_t
Service Callback Phase.
Definition fwd.h:140
@ ROCPROFILER_CALLBACK_PHASE_NONE
Callback has no phase.
Definition fwd.h:141
@ ROCPROFILER_CALLBACK_PHASE_UNLOAD
Callback invoked prior to code object unloading.
Definition fwd.h:146
@ ROCPROFILER_CALLBACK_PHASE_EXIT
Callback invoked after to function execution.
Definition fwd.h:145
@ ROCPROFILER_CALLBACK_PHASE_ENTER
Callback invoked prior to function execution.
Definition fwd.h:142
@ ROCPROFILER_CALLBACK_PHASE_LAST
Definition fwd.h:148
@ ROCPROFILER_CALLBACK_PHASE_LOAD
Callback invoked prior to code object loading.
Definition fwd.h:143

◆ rocprofiler_callback_tracing_kind_t

Service Callback Tracing Kind.

See also
rocprofiler_configure_callback_tracing_service.
Enumerator
ROCPROFILER_CALLBACK_TRACING_NONE 
ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API 
See also
rocprofiler_hsa_core_api_id_t
ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API 
See also
rocprofiler_hsa_amd_ext_api_id_t
ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API 
See also
rocprofiler_hsa_image_ext_api_id_t
ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API 
See also
rocprofiler_hsa_finalize_ext_api_id_t
ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API 
See also
rocprofiler_hip_runtime_api_id_t
ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API 
See also
rocprofiler_hip_compiler_api_id_t
ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API 
See also
rocprofiler_marker_core_api_id_t
ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API 
See also
rocprofiler_marker_control_api_id_t
ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API 
See also
rocprofiler_marker_name_api_id_t
ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT 
See also
rocprofiler_code_object_operation_t
ROCPROFILER_CALLBACK_TRACING_SCRATCH_MEMORY 
See also
rocprofiler_scratch_memory_operation_t
ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH 

Callbacks for kernel dispatches.

ROCPROFILER_CALLBACK_TRACING_MEMORY_COPY 
See also
rocprofiler_memory_copy_operation_t
ROCPROFILER_CALLBACK_TRACING_LAST 
Examples
samples/api_callback_tracing/client.cpp.

Definition at line 154 of file fwd.h.

155{
157 ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API, ///< @see ::rocprofiler_hsa_core_api_id_t
158 ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API, ///< @see ::rocprofiler_hsa_amd_ext_api_id_t
159 ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API, ///< @see ::rocprofiler_hsa_image_ext_api_id_t
161 ///< ::rocprofiler_hsa_finalize_ext_api_id_t
162 ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API, ///< @see ::rocprofiler_hip_runtime_api_id_t
163 ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API, ///< @see ::rocprofiler_hip_compiler_api_id_t
164 ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API, ///< @see ::rocprofiler_marker_core_api_id_t
166 ///< ::rocprofiler_marker_control_api_id_t
167 ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API, ///< @see ::rocprofiler_marker_name_api_id_t
168 ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT, ///< @see ::rocprofiler_code_object_operation_t
169 ROCPROFILER_CALLBACK_TRACING_SCRATCH_MEMORY, ///< @see ::rocprofiler_scratch_memory_operation_t
170 ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH, ///< Callbacks for kernel dispatches
171 ROCPROFILER_CALLBACK_TRACING_MEMORY_COPY, ///< @see ::rocprofiler_memory_copy_operation_t
rocprofiler_callback_tracing_kind_t
Service Callback Tracing Kind.
Definition fwd.h:155
@ ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT
Definition fwd.h:168
@ ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API
Definition fwd.h:165
@ ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH
Callbacks for kernel dispatches.
Definition fwd.h:170
@ ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
Definition fwd.h:163
@ ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API
Definition fwd.h:158
@ ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API
Definition fwd.h:167
@ ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API
Definition fwd.h:157
@ ROCPROFILER_CALLBACK_TRACING_LAST
Definition fwd.h:172
@ ROCPROFILER_CALLBACK_TRACING_MEMORY_COPY
Definition fwd.h:171
@ ROCPROFILER_CALLBACK_TRACING_NONE
Definition fwd.h:156
@ ROCPROFILER_CALLBACK_TRACING_SCRATCH_MEMORY
Definition fwd.h:169
@ ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API
Definition fwd.h:162
@ ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API
Definition fwd.h:159
@ ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API
Definition fwd.h:164
@ ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API
Definition fwd.h:160

◆ rocprofiler_code_object_operation_t

ROCProfiler Code Object Tracer Operation.

Enumerator
ROCPROFILER_CODE_OBJECT_NONE 

Unknown code object operation.

ROCPROFILER_CODE_OBJECT_LOAD 

Code object containing kernel symbols.

ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER 

Kernel symbols.

ROCPROFILER_CODE_OBJECT_LAST 

Definition at line 202 of file fwd.h.

203{
204 ROCPROFILER_CODE_OBJECT_NONE = 0, ///< Unknown code object operation
205 ROCPROFILER_CODE_OBJECT_LOAD, ///< Code object containing kernel symbols
rocprofiler_code_object_operation_t
ROCProfiler Code Object Tracer Operation.
Definition fwd.h:203
@ ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER
Kernel symbols.
Definition fwd.h:206
@ ROCPROFILER_CODE_OBJECT_LAST
Definition fwd.h:207
@ ROCPROFILER_CODE_OBJECT_NONE
Unknown code object operation.
Definition fwd.h:204
@ ROCPROFILER_CODE_OBJECT_LOAD
Code object containing kernel symbols.
Definition fwd.h:205

◆ rocprofiler_counter_flag_t

Enumeration of flags that can be used with some counter api calls.

Enumerator
ROCPROFILER_COUNTER_FLAG_NONE 
ROCPROFILER_COUNTER_FLAG_ASYNC 

Do not wait for completion before returning.

ROCPROFILER_COUNTER_FLAG_LAST 

Definition at line 400 of file fwd.h.

401{
403 ROCPROFILER_COUNTER_FLAG_ASYNC, ///< Do not wait for completion before returning.
rocprofiler_counter_flag_t
Enumeration of flags that can be used with some counter api calls.
Definition fwd.h:401
@ ROCPROFILER_COUNTER_FLAG_LAST
Definition fwd.h:404
@ ROCPROFILER_COUNTER_FLAG_NONE
Definition fwd.h:402
@ ROCPROFILER_COUNTER_FLAG_ASYNC
Do not wait for completion before returning.
Definition fwd.h:403

◆ rocprofiler_counter_info_version_id_t

Enumeration for specifying the counter info struct version you want.

Enumerator
ROCPROFILER_COUNTER_INFO_VERSION_NONE 
ROCPROFILER_COUNTER_INFO_VERSION_0 
See also
rocprofiler_counter_info_v0_t
ROCPROFILER_COUNTER_INFO_VERSION_LAST 

Definition at line 374 of file fwd.h.

375{
377 ROCPROFILER_COUNTER_INFO_VERSION_0, ///< @see ::rocprofiler_counter_info_v0_t
rocprofiler_counter_info_version_id_t
Enumeration for specifying the counter info struct version you want.
Definition fwd.h:375
@ ROCPROFILER_COUNTER_INFO_VERSION_0
Definition fwd.h:377
@ ROCPROFILER_COUNTER_INFO_VERSION_LAST
Definition fwd.h:378
@ ROCPROFILER_COUNTER_INFO_VERSION_NONE
Definition fwd.h:376

◆ rocprofiler_counter_record_kind_t

Enumeration for distinguishing different buffer record kinds within the ROCPROFILER_BUFFER_CATEGORY_COUNTERS category.

Enumerator
ROCPROFILER_COUNTER_RECORD_NONE 
ROCPROFILER_COUNTER_RECORD_PROFILE_COUNTING_DISPATCH_HEADER 

rocprofiler_profile_counting_dispatch_record_t

ROCPROFILER_COUNTER_RECORD_VALUE 
ROCPROFILER_COUNTER_RECORD_LAST 

Definition at line 385 of file fwd.h.

386{
388 ROCPROFILER_COUNTER_RECORD_PROFILE_COUNTING_DISPATCH_HEADER, ///< ::rocprofiler_profile_counting_dispatch_record_t
391
392 /// @var ROCPROFILER_COUNTER_RECORD_KIND_DISPATCH_PROFILE_HEADER
393 /// @brief Indicates the payload type is of type
394 /// ::rocprofiler_profile_counting_dispatch_record_t
rocprofiler_counter_record_kind_t
Enumeration for distinguishing different buffer record kinds within the ROCPROFILER_BUFFER_CATEGORY_C...
Definition fwd.h:386
@ ROCPROFILER_COUNTER_RECORD_PROFILE_COUNTING_DISPATCH_HEADER
rocprofiler_profile_counting_dispatch_record_t
Definition fwd.h:388
@ ROCPROFILER_COUNTER_RECORD_VALUE
Definition fwd.h:389
@ ROCPROFILER_COUNTER_RECORD_LAST
Definition fwd.h:390
@ ROCPROFILER_COUNTER_RECORD_NONE
Definition fwd.h:387

◆ rocprofiler_intercept_table_t

Enumeration for specifying intercept tables supported by rocprofiler. This enumeration is used for intercept tables.

See also
Intercept table for runtime libraries.
Enumerator
ROCPROFILER_HSA_TABLE 
ROCPROFILER_HIP_RUNTIME_TABLE 
ROCPROFILER_HIP_COMPILER_TABLE 
ROCPROFILER_MARKER_CORE_TABLE 
ROCPROFILER_MARKER_CONTROL_TABLE 
ROCPROFILER_MARKER_NAME_TABLE 
ROCPROFILER_TABLE_LAST 

Definition at line 360 of file fwd.h.

361{
362 ROCPROFILER_HSA_TABLE = (1 << 0),
rocprofiler_intercept_table_t
Enumeration for specifying intercept tables supported by rocprofiler. This enumeration is used for in...
Definition fwd.h:361
@ ROCPROFILER_MARKER_NAME_TABLE
Definition fwd.h:367
@ ROCPROFILER_MARKER_CONTROL_TABLE
Definition fwd.h:366
@ ROCPROFILER_HIP_COMPILER_TABLE
Definition fwd.h:364
@ ROCPROFILER_MARKER_CORE_TABLE
Definition fwd.h:365
@ ROCPROFILER_TABLE_LAST
Definition fwd.h:368
@ ROCPROFILER_HSA_TABLE
Definition fwd.h:362
@ ROCPROFILER_HIP_RUNTIME_TABLE
Definition fwd.h:363

◆ rocprofiler_kernel_dispatch_operation_t

ROCProfiler Kernel Dispatch Tracing Operation Types.

Enumerator
ROCPROFILER_KERNEL_DISPATCH_NONE 

Unknown kernel dispatch operation.

ROCPROFILER_KERNEL_DISPATCH_ENQUEUE 
ROCPROFILER_KERNEL_DISPATCH_COMPLETE 
ROCPROFILER_KERNEL_DISPATCH_LAST 
ROCPROFILER_KERNEL_DISPATCH_ENQUEUE 
ROCPROFILER_KERNEL_DISPATCH_COMPLETE 

Definition at line 241 of file fwd.h.

242{
243 ROCPROFILER_KERNEL_DISPATCH_NONE = 0, ///< Unknown kernel dispatch operation
247
248 /// @var ROCPROFILER_KERNEL_DISPATCH_ENQUEUE
249 /// @brief Invoke callback prior to a kernel being enqueued and after the kernel has been
250 /// enqueued. When the phase is ::ROCPROFILER_CALLBACK_PHASE_ENTER, this is an opportunity to
251 /// push an external correlation id and/or modify the active contexts before a kernel is
252 /// launched. Any active contexts containing services related to a kernel dispatch (kernel
253 /// tracing, counter collection, etc.) will be captured after this callback and attached to the
254 /// kernel. These captured contexts will be considered "active" when the kernel completes even
255 /// if the context was stopped before the kernel completes -- this contract is designed to
256 /// ensure that tools do not have to delay stopping a context because of an async operation in
257 /// order to get the data they requested when the async operation was started. When the phase is
258 /// ::ROCPROFILER_CALLBACK_PHASE_EXIT, the active contexts for the kernel dispatch have been
259 /// captured and it is safe to disable those contexts without affecting the delivery of the
260 /// requested data when the kernel completes. It is important to note that, even if the context
261 /// associated with the kernel dispatch callback tracing service is disabled in between the
262 /// enter and exit phase, the exit phase callback is still delievered but that context will not
263 /// be captured when the kernel is enqueued and therefore will not provide a
264 /// ::ROCPROFILER_KERNEL_DISPATCH_COMPLETE callback. Furthermore, it should be
265 /// noted that if a tool encodes information into the `::rocprofiler_user_data_t` output
266 /// parameter in ::rocprofiler_callback_tracing_cb_t, that same value will be delivered in the
267 /// exit phase and in the ::ROCPROFILER_KERNEL_DISPATCH_COMPLETE callback. In
268 /// other words, any modifications to that user data value in the exit phase will not be
269 /// reflected in the ::ROCPROFILER_KERNEL_DISPATCH_COMPLETE callback because a
270 /// copy of that user data struct is attached to the kernel, not a reference to the user data
271 /// struct.
272 ///
273 /// @var ROCPROFILER_KERNEL_DISPATCH_COMPLETE
274 /// @brief Invoke callback after a kernel has completed and the HSA runtime has processed the
275 /// signal indicating that the kernel has completed. The latter half of this statement is
276 /// important. There is no guarantee that these callbacks are invoked in any order related to
277 /// when the kernels were dispatched, i.e. even if kernel A is launched and fully executed
278 /// before kernel B is launched, it is entirely possible that the HSA runtime ends up processing
279 /// the signal associated with kernel B before processing the signal associated with kernel A --
280 /// resulting in rocprofiler-sdk invoking this operation callback for kernel B before invoking
281 /// the callback for kernel A.
rocprofiler_kernel_dispatch_operation_t
ROCProfiler Kernel Dispatch Tracing Operation Types.
Definition fwd.h:242
@ ROCPROFILER_KERNEL_DISPATCH_ENQUEUE
Definition fwd.h:244
@ ROCPROFILER_KERNEL_DISPATCH_COMPLETE
Definition fwd.h:245
@ ROCPROFILER_KERNEL_DISPATCH_NONE
Unknown kernel dispatch operation.
Definition fwd.h:243
@ ROCPROFILER_KERNEL_DISPATCH_LAST
Definition fwd.h:246

◆ rocprofiler_memory_copy_operation_t

Memory Copy Operation.

Enumerator
ROCPROFILER_MEMORY_COPY_NONE 

Unknown memory copy direction.

ROCPROFILER_MEMORY_COPY_HOST_TO_HOST 

Memory copy from host to host.

ROCPROFILER_MEMORY_COPY_HOST_TO_DEVICE 

Memory copy from host to device.

ROCPROFILER_MEMORY_COPY_DEVICE_TO_HOST 

Memory copy from device to host.

ROCPROFILER_MEMORY_COPY_DEVICE_TO_DEVICE 

Memory copy from device to device.

ROCPROFILER_MEMORY_COPY_LAST 

Definition at line 213 of file fwd.h.

214{
215 ROCPROFILER_MEMORY_COPY_NONE = 0, ///< Unknown memory copy direction
216 ROCPROFILER_MEMORY_COPY_HOST_TO_HOST, ///< Memory copy from host to host
217 ROCPROFILER_MEMORY_COPY_HOST_TO_DEVICE, ///< Memory copy from host to device
218 ROCPROFILER_MEMORY_COPY_DEVICE_TO_HOST, ///< Memory copy from device to host
219 ROCPROFILER_MEMORY_COPY_DEVICE_TO_DEVICE, ///< Memory copy from device to device
rocprofiler_memory_copy_operation_t
Memory Copy Operation.
Definition fwd.h:214
@ ROCPROFILER_MEMORY_COPY_LAST
Definition fwd.h:220
@ ROCPROFILER_MEMORY_COPY_DEVICE_TO_DEVICE
Memory copy from device to device.
Definition fwd.h:219
@ ROCPROFILER_MEMORY_COPY_HOST_TO_HOST
Memory copy from host to host.
Definition fwd.h:216
@ ROCPROFILER_MEMORY_COPY_DEVICE_TO_HOST
Memory copy from device to host.
Definition fwd.h:218
@ ROCPROFILER_MEMORY_COPY_NONE
Unknown memory copy direction.
Definition fwd.h:215
@ ROCPROFILER_MEMORY_COPY_HOST_TO_DEVICE
Memory copy from host to device.
Definition fwd.h:217

◆ rocprofiler_page_migration_operation_t

Page migration event.

Enumerator
ROCPROFILER_PAGE_MIGRATION_NONE 

Unknown event.

ROCPROFILER_PAGE_MIGRATION_PAGE_MIGRATE 
ROCPROFILER_PAGE_MIGRATION_PAGE_FAULT 
ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND 
ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU 
ROCPROFILER_PAGE_MIGRATION_LAST 

Definition at line 226 of file fwd.h.

227{
228 ROCPROFILER_PAGE_MIGRATION_NONE = 0, ///< Unknown event
233 // Any and all events, from all processes. Requires superuser
234 // ROCPROFILER_PAGE_MIGRATION_ANY_ALL_PROCESSES,
rocprofiler_page_migration_operation_t
Page migration event.
Definition fwd.h:227
@ ROCPROFILER_PAGE_MIGRATION_NONE
Unknown event.
Definition fwd.h:228
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND
Definition fwd.h:231
@ ROCPROFILER_PAGE_MIGRATION_LAST
Definition fwd.h:235
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU
Definition fwd.h:232
@ ROCPROFILER_PAGE_MIGRATION_PAGE_FAULT
Definition fwd.h:230
@ ROCPROFILER_PAGE_MIGRATION_PAGE_MIGRATE
Definition fwd.h:229

◆ rocprofiler_pc_sampling_method_t

PC Sampling Method.

Enumerator
ROCPROFILER_PC_SAMPLING_METHOD_NONE 

Unknown sampling type.

ROCPROFILER_PC_SAMPLING_METHOD_STOCHASTIC 

Stochastic sampling (MI300+)

ROCPROFILER_PC_SAMPLING_METHOD_HOST_TRAP 

Interval sampling (MI200+)

ROCPROFILER_PC_SAMPLING_METHOD_LAST 

Definition at line 287 of file fwd.h.

288{
289 ROCPROFILER_PC_SAMPLING_METHOD_NONE = 0, ///< Unknown sampling type
290 ROCPROFILER_PC_SAMPLING_METHOD_STOCHASTIC, ///< Stochastic sampling (MI300+)
291 ROCPROFILER_PC_SAMPLING_METHOD_HOST_TRAP, ///< Interval sampling (MI200+)
rocprofiler_pc_sampling_method_t
PC Sampling Method.
Definition fwd.h:288
@ ROCPROFILER_PC_SAMPLING_METHOD_STOCHASTIC
Stochastic sampling (MI300+)
Definition fwd.h:290
@ ROCPROFILER_PC_SAMPLING_METHOD_HOST_TRAP
Interval sampling (MI200+)
Definition fwd.h:291
@ ROCPROFILER_PC_SAMPLING_METHOD_LAST
Definition fwd.h:292
@ ROCPROFILER_PC_SAMPLING_METHOD_NONE
Unknown sampling type.
Definition fwd.h:289

◆ rocprofiler_pc_sampling_record_kind_t

Enumeration for distinguishing different buffer record kinds within the ROCPROFILER_BUFFER_CATEGORY_PC_SAMPLING category.

Enumerator
ROCPROFILER_PC_SAMPLING_RECORD_NONE 
ROCPROFILER_PC_SAMPLING_RECORD_SAMPLE 

rocprofiler_pc_sampling_record_t

ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_LOAD_MARKER 

rocprofiler_pc_sampling_code_object_load_marker_t

ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_UNLOAD_MARKER 

rocprofiler_pc_sampling_code_object_unload_marker_t

ROCPROFILER_PC_SAMPLING_RECORD_LAST 

Definition at line 411 of file fwd.h.

412{
414 ROCPROFILER_PC_SAMPLING_RECORD_SAMPLE, ///< ::rocprofiler_pc_sampling_record_t
415 ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_LOAD_MARKER, ///< ::rocprofiler_pc_sampling_code_object_load_marker_t
416 ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_UNLOAD_MARKER, ///< ::rocprofiler_pc_sampling_code_object_unload_marker_t
rocprofiler_pc_sampling_record_kind_t
Enumeration for distinguishing different buffer record kinds within the ROCPROFILER_BUFFER_CATEGORY_P...
Definition fwd.h:412
@ ROCPROFILER_PC_SAMPLING_RECORD_LAST
Definition fwd.h:417
@ ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_UNLOAD_MARKER
rocprofiler_pc_sampling_code_object_unload_marker_t
Definition fwd.h:416
@ ROCPROFILER_PC_SAMPLING_RECORD_CODE_OBJECT_LOAD_MARKER
rocprofiler_pc_sampling_code_object_load_marker_t
Definition fwd.h:415
@ ROCPROFILER_PC_SAMPLING_RECORD_NONE
Definition fwd.h:413
@ ROCPROFILER_PC_SAMPLING_RECORD_SAMPLE
rocprofiler_pc_sampling_record_t
Definition fwd.h:414

◆ rocprofiler_pc_sampling_unit_t

PC Sampling Unit.

Enumerator
ROCPROFILER_PC_SAMPLING_UNIT_NONE 

Sample interval has unspecified units.

ROCPROFILER_PC_SAMPLING_UNIT_INSTRUCTIONS 

Sample interval is in instructions.

ROCPROFILER_PC_SAMPLING_UNIT_CYCLES 

Sample interval is in cycles.

ROCPROFILER_PC_SAMPLING_UNIT_TIME 

Sample internval is in nanoseconds.

ROCPROFILER_PC_SAMPLING_UNIT_LAST 

Definition at line 298 of file fwd.h.

299{
300 ROCPROFILER_PC_SAMPLING_UNIT_NONE = 0, ///< Sample interval has unspecified units
301 ROCPROFILER_PC_SAMPLING_UNIT_INSTRUCTIONS, ///< Sample interval is in instructions
302 ROCPROFILER_PC_SAMPLING_UNIT_CYCLES, ///< Sample interval is in cycles
303 ROCPROFILER_PC_SAMPLING_UNIT_TIME, ///< Sample internval is in nanoseconds
rocprofiler_pc_sampling_unit_t
PC Sampling Unit.
Definition fwd.h:299
@ ROCPROFILER_PC_SAMPLING_UNIT_LAST
Definition fwd.h:304
@ ROCPROFILER_PC_SAMPLING_UNIT_TIME
Sample internval is in nanoseconds.
Definition fwd.h:303
@ ROCPROFILER_PC_SAMPLING_UNIT_NONE
Sample interval has unspecified units.
Definition fwd.h:300
@ ROCPROFILER_PC_SAMPLING_UNIT_INSTRUCTIONS
Sample interval is in instructions.
Definition fwd.h:301
@ ROCPROFILER_PC_SAMPLING_UNIT_CYCLES
Sample interval is in cycles.
Definition fwd.h:302

◆ rocprofiler_runtime_library_t

Enumeration for specifying runtime libraries supported by rocprofiler. This enumeration is used for thread creation callbacks.

See also
Internal Thread Handling.
Enumerator
ROCPROFILER_LIBRARY 
ROCPROFILER_HSA_LIBRARY 
ROCPROFILER_HIP_LIBRARY 
ROCPROFILER_MARKER_LIBRARY 
ROCPROFILER_LIBRARY_LAST 

Definition at line 347 of file fwd.h.

348{
349 ROCPROFILER_LIBRARY = (1 << 0),
350 ROCPROFILER_HSA_LIBRARY = (1 << 1),
351 ROCPROFILER_HIP_LIBRARY = (1 << 2),
rocprofiler_runtime_library_t
Enumeration for specifying runtime libraries supported by rocprofiler. This enumeration is used for t...
Definition fwd.h:348
@ ROCPROFILER_LIBRARY_LAST
Definition fwd.h:353
@ ROCPROFILER_HIP_LIBRARY
Definition fwd.h:351
@ ROCPROFILER_LIBRARY
Definition fwd.h:349
@ ROCPROFILER_HSA_LIBRARY
Definition fwd.h:350
@ ROCPROFILER_MARKER_LIBRARY
Definition fwd.h:352

◆ rocprofiler_scratch_alloc_flag_t

Allocation flags for.

See also
rocprofiler_buffer_tracing_scratch_memory_record_t
Enumerator
ROCPROFILER_SCRATCH_ALLOC_FLAG_NONE 
ROCPROFILER_SCRATCH_ALLOC_FLAG_USE_ONCE 

This scratch allocation is only valid for 1 dispatch.

ROCPROFILER_SCRATCH_ALLOC_FLAG_ALT 

Used alternate scratch instead of main scratch.

Definition at line 333 of file fwd.h.

334{
337 HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_USE_ONCE, ///< This scratch allocation is only valid for 1
338 ///< dispatch.
340 HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_ALT, ///< Used alternate scratch instead of main scratch
rocprofiler_scratch_alloc_flag_t
Allocation flags for.
Definition fwd.h:334
@ ROCPROFILER_SCRATCH_ALLOC_FLAG_USE_ONCE
This scratch allocation is only valid for 1 dispatch.
Definition fwd.h:336
@ ROCPROFILER_SCRATCH_ALLOC_FLAG_ALT
Used alternate scratch instead of main scratch.
Definition fwd.h:339
@ ROCPROFILER_SCRATCH_ALLOC_FLAG_NONE
Definition fwd.h:335

◆ rocprofiler_scratch_memory_operation_t

Scratch event kind.

Enumerator
ROCPROFILER_SCRATCH_MEMORY_NONE 

Unknown scratch operation.

ROCPROFILER_SCRATCH_MEMORY_ALLOC 

Scratch memory allocation event.

ROCPROFILER_SCRATCH_MEMORY_FREE 

Scratch memory free event.

ROCPROFILER_SCRATCH_MEMORY_ASYNC_RECLAIM 

Scratch memory asynchronously reclaimed.

ROCPROFILER_SCRATCH_MEMORY_LAST 

Definition at line 321 of file fwd.h.

322{
323 ROCPROFILER_SCRATCH_MEMORY_NONE = 0, ///< Unknown scratch operation
324 ROCPROFILER_SCRATCH_MEMORY_ALLOC, ///< Scratch memory allocation event
325 ROCPROFILER_SCRATCH_MEMORY_FREE, ///< Scratch memory free event
326 ROCPROFILER_SCRATCH_MEMORY_ASYNC_RECLAIM, ///< Scratch memory asynchronously reclaimed
rocprofiler_scratch_memory_operation_t
Scratch event kind.
Definition fwd.h:322
@ ROCPROFILER_SCRATCH_MEMORY_ALLOC
Scratch memory allocation event.
Definition fwd.h:324
@ ROCPROFILER_SCRATCH_MEMORY_FREE
Scratch memory free event.
Definition fwd.h:325
@ ROCPROFILER_SCRATCH_MEMORY_ASYNC_RECLAIM
Scratch memory asynchronously reclaimed.
Definition fwd.h:326
@ ROCPROFILER_SCRATCH_MEMORY_LAST
Definition fwd.h:327
@ ROCPROFILER_SCRATCH_MEMORY_NONE
Unknown scratch operation.
Definition fwd.h:323

◆ rocprofiler_status_t

Status codes.

Enumerator
ROCPROFILER_STATUS_SUCCESS 

No error occurred.

ROCPROFILER_STATUS_ERROR 

Generalized error.

ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND 

No valid context for given context id.

ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND 

No valid buffer for given buffer id.

ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND 

Kind identifier is invalid.

ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND 

Operation identifier is invalid for domain.

ROCPROFILER_STATUS_ERROR_THREAD_NOT_FOUND 

No valid thread for given thread id.

ROCPROFILER_STATUS_ERROR_AGENT_NOT_FOUND 

Agent identifier not found.

ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND 

Counter identifier does not exist.

ROCPROFILER_STATUS_ERROR_CONTEXT_ERROR 

Generalized context error.

ROCPROFILER_STATUS_ERROR_CONTEXT_INVALID 

Context configuration is not valid.

ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_STARTED 

Context was not started (e.g., atomic swap into active array failed)

ROCPROFILER_STATUS_ERROR_CONTEXT_CONFLICT 

Context operation failed due to a conflict with another context.

ROCPROFILER_STATUS_ERROR_BUFFER_BUSY 

buffer operation failed because it currently busy handling another request (e.g. flushing)

ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED 

service has already been configured in context

ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED 

Function call is not valid outside of rocprofiler configuration (i.e. function called post-initialization)

ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED 

Function is not implemented.

ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI 

Data structure provided by user is incompatible with current version of rocprofiler.

ROCPROFILER_STATUS_ERROR_INVALID_ARGUMENT 

Function invoked with one or more invalid arguments.

ROCPROFILER_STATUS_ERROR_METRIC_NOT_VALID_FOR_AGENT 

Invalid metric supplied to agent.

ROCPROFILER_STATUS_ERROR_FINALIZED 

invalid because rocprofiler has been finalized

ROCPROFILER_STATUS_ERROR_HSA_NOT_LOADED 

Call requires HSA to be loaded before performed.

ROCPROFILER_STATUS_ERROR_DIM_NOT_FOUND 

Dimension is not found for counter.

ROCPROFILER_STATUS_ERROR_PROFILE_COUNTER_NOT_FOUND 

Profile could not find counter for GPU agent.

ROCPROFILER_STATUS_ERROR_AST_GENERATION_FAILED 

AST could not be generated correctly.

ROCPROFILER_STATUS_ERROR_AST_NOT_FOUND 

AST was not found.

ROCPROFILER_STATUS_ERROR_AQL_NO_EVENT_COORD 

Event coordinate was not found by AQL profile.

ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_KERNEL 

A service depends on a newer version of KFD (amdgpu kernel driver). Check logs for service that report incompatibility.

ROCPROFILER_STATUS_ERROR_OUT_OF_RESOURCES 

The given resources are insufficient to complete operation.

ROCPROFILER_STATUS_ERROR_PROFILE_NOT_FOUND 

Could not find the counter profile.

ROCPROFILER_STATUS_ERROR_AGENT_DISPATCH_CONFLICT 

Cannot enable both agent and dispatch counting in the same context.

ROCPROFILER_STATUS_INTERNAL_NO_AGENT_CONTEXT 

No agent context found, may not be an error.

ROCPROFILER_STATUS_ERROR_SAMPLE_RATE_EXCEEDED 

Sample rate exceeded.

ROCPROFILER_STATUS_ERROR_NO_PROFILE_QUEUE 

Profile queue creation failed.

ROCPROFILER_STATUS_ERROR_NO_HARDWARE_COUNTERS 

No hardware counters were specified.

ROCPROFILER_STATUS_ERROR_AGENT_MISMATCH 

Agent mismatch between profile and context.

ROCPROFILER_STATUS_ERROR_NOT_AVAILABLE 

The service is not available. Please refer to API functions that return this status code for more information.

ROCPROFILER_STATUS_ERROR_EXCEEDS_HW_LIMIT 

Exceeds hardware limits for collection.

ROCPROFILER_STATUS_LAST 

Definition at line 54 of file fwd.h.

55{
56 ROCPROFILER_STATUS_SUCCESS = 0, ///< No error occurred
57 ROCPROFILER_STATUS_ERROR, ///< Generalized error
58 ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND, ///< No valid context for given context id
59 ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND, ///< No valid buffer for given buffer id
60 ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND, ///< Kind identifier is invalid
61 ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND, ///< Operation identifier is invalid for domain
62 ROCPROFILER_STATUS_ERROR_THREAD_NOT_FOUND, ///< No valid thread for given thread id
63 ROCPROFILER_STATUS_ERROR_AGENT_NOT_FOUND, ///< Agent identifier not found
64 ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND, ///< Counter identifier does not exist
65 ROCPROFILER_STATUS_ERROR_CONTEXT_ERROR, ///< Generalized context error
66 ROCPROFILER_STATUS_ERROR_CONTEXT_INVALID, ///< Context configuration is not valid
67 ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_STARTED, ///< Context was not started (e.g., atomic swap
68 ///< into active array failed)
69 ROCPROFILER_STATUS_ERROR_CONTEXT_CONFLICT, ///< Context operation failed due to a conflict with
70 ///< another context
71 ROCPROFILER_STATUS_ERROR_BUFFER_BUSY, ///< buffer operation failed because it currently busy
72 ///< handling another request (e.g. flushing)
73 ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED, ///< service has already been configured
74 ///< in context
75 ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED, ///< Function call is not valid outside of
76 ///< rocprofiler configuration (i.e.
77 ///< function called post-initialization)
78 ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED, ///< Function is not implemented
79 ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI, ///< Data structure provided by user is incompatible
80 ///< with current version of rocprofiler
81 ROCPROFILER_STATUS_ERROR_INVALID_ARGUMENT, ///< Function invoked with one or more invalid
82 ///< arguments
83 ROCPROFILER_STATUS_ERROR_METRIC_NOT_VALID_FOR_AGENT, ///< Invalid metric supplied to agent.
84 ROCPROFILER_STATUS_ERROR_FINALIZED, ///< invalid because rocprofiler has been finalized
85 ROCPROFILER_STATUS_ERROR_HSA_NOT_LOADED, ///< Call requires HSA to be loaded before performed
86 ROCPROFILER_STATUS_ERROR_DIM_NOT_FOUND, ///< Dimension is not found for counter
87 ROCPROFILER_STATUS_ERROR_PROFILE_COUNTER_NOT_FOUND, ///< Profile could not find counter for GPU
88 ///< agent
89 ROCPROFILER_STATUS_ERROR_AST_GENERATION_FAILED, ///< AST could not be generated correctly
90 ROCPROFILER_STATUS_ERROR_AST_NOT_FOUND, ///< AST was not found
91 ROCPROFILER_STATUS_ERROR_AQL_NO_EVENT_COORD, ///< Event coordinate was not found by AQL profile
92 ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_KERNEL, ///< A service depends on a newer version of KFD
93 ///< (amdgpu kernel driver). Check logs for
94 ///< service that report incompatibility
95 ROCPROFILER_STATUS_ERROR_OUT_OF_RESOURCES, ///< The given resources are
96 ///< insufficient to complete operation
97 ROCPROFILER_STATUS_ERROR_PROFILE_NOT_FOUND, ///< Could not find the counter profile
98 ROCPROFILER_STATUS_ERROR_AGENT_DISPATCH_CONFLICT, ///< Cannot enable both agent and dispatch
99 ///< counting in the same context.
100 ROCPROFILER_STATUS_INTERNAL_NO_AGENT_CONTEXT, ///< No agent context found, may not be an error
101 ROCPROFILER_STATUS_ERROR_SAMPLE_RATE_EXCEEDED, ///< Sample rate exceeded
102 ROCPROFILER_STATUS_ERROR_NO_PROFILE_QUEUE, ///< Profile queue creation failed
103 ROCPROFILER_STATUS_ERROR_NO_HARDWARE_COUNTERS, ///< No hardware counters were specified
104 ROCPROFILER_STATUS_ERROR_AGENT_MISMATCH, ///< Agent mismatch between profile and context.
105 ROCPROFILER_STATUS_ERROR_NOT_AVAILABLE, ///< The service is not available.
106 ///< Please refer to API functions that return this
107 ///< status code for more information.
108 ROCPROFILER_STATUS_ERROR_EXCEEDS_HW_LIMIT, ///< Exceeds hardware limits for collection
rocprofiler_status_t
Status codes.
Definition fwd.h:55
@ ROCPROFILER_STATUS_ERROR_FINALIZED
invalid because rocprofiler has been finalized
Definition fwd.h:84
@ ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_STARTED
Context was not started (e.g., atomic swap into active array failed)
Definition fwd.h:67
@ ROCPROFILER_STATUS_ERROR_INVALID_ARGUMENT
Function invoked with one or more invalid arguments.
Definition fwd.h:81
@ ROCPROFILER_STATUS_ERROR_NO_PROFILE_QUEUE
Profile queue creation failed.
Definition fwd.h:102
@ ROCPROFILER_STATUS_ERROR_CONTEXT_ERROR
Generalized context error.
Definition fwd.h:65
@ ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED
Function call is not valid outside of rocprofiler configuration (i.e. function called post-initializa...
Definition fwd.h:75
@ ROCPROFILER_STATUS_ERROR_BUFFER_NOT_FOUND
No valid buffer for given buffer id.
Definition fwd.h:59
@ ROCPROFILER_STATUS_ERROR_PROFILE_NOT_FOUND
Could not find the counter profile.
Definition fwd.h:97
@ ROCPROFILER_STATUS_ERROR_COUNTER_NOT_FOUND
Counter identifier does not exist.
Definition fwd.h:64
@ ROCPROFILER_STATUS_ERROR_THREAD_NOT_FOUND
No valid thread for given thread id.
Definition fwd.h:62
@ ROCPROFILER_STATUS_ERROR_CONTEXT_CONFLICT
Context operation failed due to a conflict with another context.
Definition fwd.h:69
@ ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED
service has already been configured in context
Definition fwd.h:73
@ ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED
Function is not implemented.
Definition fwd.h:78
@ ROCPROFILER_STATUS_ERROR_AGENT_MISMATCH
Agent mismatch between profile and context.
Definition fwd.h:104
@ ROCPROFILER_STATUS_ERROR_AGENT_DISPATCH_CONFLICT
Cannot enable both agent and dispatch counting in the same context.
Definition fwd.h:98
@ ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND
Operation identifier is invalid for domain.
Definition fwd.h:61
@ ROCPROFILER_STATUS_ERROR_AQL_NO_EVENT_COORD
Event coordinate was not found by AQL profile.
Definition fwd.h:91
@ ROCPROFILER_STATUS_ERROR_NOT_AVAILABLE
The service is not available. Please refer to API functions that return this status code for more inf...
Definition fwd.h:105
@ ROCPROFILER_STATUS_ERROR_SAMPLE_RATE_EXCEEDED
Sample rate exceeded.
Definition fwd.h:101
@ ROCPROFILER_STATUS_ERROR_CONTEXT_INVALID
Context configuration is not valid.
Definition fwd.h:66
@ ROCPROFILER_STATUS_ERROR_OUT_OF_RESOURCES
The given resources are insufficient to complete operation.
Definition fwd.h:95
@ ROCPROFILER_STATUS_LAST
Definition fwd.h:109
@ ROCPROFILER_STATUS_ERROR_AGENT_NOT_FOUND
Agent identifier not found.
Definition fwd.h:63
@ ROCPROFILER_STATUS_ERROR
Generalized error.
Definition fwd.h:57
@ ROCPROFILER_STATUS_ERROR_EXCEEDS_HW_LIMIT
Exceeds hardware limits for collection.
Definition fwd.h:108
@ ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND
No valid context for given context id.
Definition fwd.h:58
@ ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND
Kind identifier is invalid.
Definition fwd.h:60
@ ROCPROFILER_STATUS_INTERNAL_NO_AGENT_CONTEXT
No agent context found, may not be an error.
Definition fwd.h:100
@ ROCPROFILER_STATUS_ERROR_AST_GENERATION_FAILED
AST could not be generated correctly.
Definition fwd.h:89
@ ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_KERNEL
A service depends on a newer version of KFD (amdgpu kernel driver). Check logs for service that repor...
Definition fwd.h:92
@ ROCPROFILER_STATUS_ERROR_PROFILE_COUNTER_NOT_FOUND
Profile could not find counter for GPU agent.
Definition fwd.h:87
@ ROCPROFILER_STATUS_ERROR_DIM_NOT_FOUND
Dimension is not found for counter.
Definition fwd.h:86
@ ROCPROFILER_STATUS_ERROR_METRIC_NOT_VALID_FOR_AGENT
Invalid metric supplied to agent.
Definition fwd.h:83
@ ROCPROFILER_STATUS_ERROR_BUFFER_BUSY
buffer operation failed because it currently busy handling another request (e.g. flushing)
Definition fwd.h:71
@ ROCPROFILER_STATUS_SUCCESS
No error occurred.
Definition fwd.h:56
@ ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI
Data structure provided by user is incompatible with current version of rocprofiler.
Definition fwd.h:79
@ ROCPROFILER_STATUS_ERROR_NO_HARDWARE_COUNTERS
No hardware counters were specified.
Definition fwd.h:103
@ ROCPROFILER_STATUS_ERROR_AST_NOT_FOUND
AST was not found.
Definition fwd.h:90
@ ROCPROFILER_STATUS_ERROR_HSA_NOT_LOADED
Call requires HSA to be loaded before performed.
Definition fwd.h:85