rocprofiler-sdk/buffer_tracing.h Source File

rocprofiler-sdk/buffer_tracing.h Source File#

Rocprofiler SDK Developer API: rocprofiler-sdk/buffer_tracing.h Source File
Rocprofiler SDK Developer API 0.5.0
ROCm Profiling API and tools
buffer_tracing.h
Go to the documentation of this file.
1// MIT License
2//
3// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
4//
5// Permission is hereby granted, free of charge, to any person obtaining a copy
6// of this software and associated documentation files (the "Software"), to deal
7// in the Software without restriction, including without limitation the rights
8// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9// copies of the Software, and to permit persons to whom the Software is
10// furnished to do so, subject to the following conditions:
11//
12// The above copyright notice and this permission notice shall be included in all
13// copies or substantial portions of the Software.
14//
15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21// SOFTWARE.
22
23#pragma once
24
27#include <rocprofiler-sdk/fwd.h>
28
29#include <stdint.h>
30
31ROCPROFILER_EXTERN_C_INIT
32
33/**
34 * @defgroup BUFFER_TRACING_SERVICE Asynchronous Tracing Service
35 * @brief Receive callbacks for batches of records from an internal (background) thread
36 *
37 * @{
38 */
39
40/**
41 * @brief Page migration triggers
42 *
43 */
53
54/**
55 * @brief Page migration triggers causing the queue to suspend
56 *
57 */
69
70/**
71 * @brief Page migration triggers causing an unmap from the GPU
72 *
73 */
82
83/**
84 * @brief ROCProfiler Buffer HSA API Tracer Record.
85 */
86typedef struct
87{
88 uint64_t size; ///< size of this struct
91 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
92 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
93 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
94 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
95
96 /// @var kind
97 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API,
98 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API,
99 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API, or
100 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API
101 /// @var operation
102 /// @brief Specification of the API function, e.g., ::rocprofiler_hsa_core_api_id_t,
103 /// ::rocprofiler_hsa_amd_ext_api_id_t, ::rocprofiler_hsa_image_ext_api_id_t, or
104 /// ::rocprofiler_hsa_finalize_ext_api_id_t
106
107/**
108 * @brief ROCProfiler Buffer HIP API Tracer Record.
109 */
110typedef struct
111{
112 uint64_t size; ///< size of this struct
115 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
116 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
117 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
118 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
119
120 /// @var kind
121 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or
122 /// ::ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
123 /// @var operation
124 /// @brief Specification of the API function, e.g., ::rocprofiler_hip_runtime_api_id_t or
125 /// ::rocprofiler_hip_compiler_api_id_t
127
128/**
129 * @brief ROCProfiler Buffer Marker Tracer Record.
130 */
131typedef struct
132{
133 uint64_t size; ///< size of this struct
136 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
137 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
138 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
139 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
140
141 /// @var kind
142 /// @brief ::ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API,
143 /// ::ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API, or
144 /// ::ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API
145 /// @brief Specification of the API function, e.g., ::rocprofiler_marker_core_api_id_t,
146 /// ::rocprofiler_marker_control_api_id_t, or
147 /// ::rocprofiler_marker_name_api_id_t
149
150/**
151 * @brief ROCProfiler Buffer RCCL API Record.
152 */
153typedef struct
154{
155 uint64_t size; ///< size of this struct
158 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
159 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
160 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
161 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
162
163 /// @var kind
164 /// @brief ::ROCPROFILER_CALLBACK_TRACING_RCCL_API,
165 /// @brief Specification of the API function, e.g., ::rocprofiler_rccl_api_id_t,
167
168/**
169 * @brief ROCProfiler Buffer Memory Copy Tracer Record.
170 */
171typedef struct
172{
173 uint64_t size; ///< size of this struct
176 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
177 rocprofiler_thread_id_t thread_id; ///< id for thread that triggered copy
178 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
179 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
180 rocprofiler_agent_id_t dst_agent_id; ///< destination agent of copy
181 rocprofiler_agent_id_t src_agent_id; ///< source agent of copy
182 uint64_t bytes; ///< bytes copied
183
184 /// @var kind
185 /// @brief ::ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
186 /// @var operation
187 /// @brief Specification of the memory copy direction (@see
188 /// ::rocprofiler_memory_copy_operation_t)
190
191/**
192 * @brief ROCProfiler Buffer Kernel Dispatch Tracer Record.
193 */
195{
196 uint64_t size; ///< size of this struct
197 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
199 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
200 rocprofiler_thread_id_t thread_id; ///< id for thread that launched kernel
201 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
202 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
204
205 /// @var operation
206 /// @brief Kernel dispatch buffer records only report the ::ROCPROFILER_KERNEL_DISPATCH_COMPLETE
207 /// operation because there are no "real" wrapper around the enqueuing of an individual kernel
208 /// dispatch
210
211typedef struct
212{
213 uint8_t read_fault : 1; ///< Is the fault due to a read or a write
214 uint8_t migrated : 1;
215 uint32_t node_id; ///< GPU or CPU node ID which reports a page fault
216 uint64_t address; ///< Address access that caused the page fault
218
219typedef struct
220{
221 uint64_t start_addr; ///< Start address of the page being migrated
222 uint64_t end_addr; ///< End address of the page being migrated
223 uint32_t from_node; ///< Source node
224 uint32_t to_node; ///< Destination node
225 uint32_t prefetch_node; ///< Node from which page was prefetched
226 uint32_t preferred_node; ///< Preferred destinaion node
229
230typedef struct
231{
232 uint8_t rescheduled : 1;
233 uint32_t node_id; ///< GPU node from which the queue was suspended
236
237typedef struct
238{
239 uint32_t node_id; ///< Node ID from which page was unmapped
240 uint64_t start_addr; ///< Start address of unmapped page
241 uint64_t end_addr; ///< End address of unmapped page
244
245/**
246 * @brief ROCProfiler Buffer Page Migration Tracer Record
247 */
269
270/**
271 * @brief ROCProfiler Buffer Scratch Memory Tracer Record
272 */
273typedef struct
274{
275 uint64_t size; ///< size of this struct
276 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY
277 rocprofiler_scratch_memory_operation_t operation; ///< specification of the kind
278 rocprofiler_agent_id_t agent_id; ///< agent kernel was dispatched on
279 rocprofiler_queue_id_t queue_id; ///< queue kernel was dispatched on
280 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
281 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
282 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
283 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
286
287/**
288 * @brief ROCProfiler Buffer Correlation ID Retirement Tracer Record.
289 */
290typedef struct
291{
292 uint64_t size; ///< size of this struct
296
297 /// @var kind
298 /// @brief ::ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
299 /// @var timestamp
300 /// @brief Timestamp (in nanosec) of when rocprofiler detected the correlation ID could be
301 /// retired. Due to clock skew between the CPU and GPU, this may at times, *appear* to be before
302 /// the kernel or memory copy completed but the reality is that if this ever occurred, the API
303 /// would report a FATAL error
304 /// @var internal_correlation_id
305 /// @brief Only internal correlation ID is provided
307
308/**
309 * @brief Callback function for mapping @ref rocprofiler_buffer_tracing_kind_t ids to
310 * string names. @see rocprofiler_iterate_buffer_trace_kind_names.
311 */
313 void* data);
314
315/**
316 * @brief Callback function for mapping the operations of a given @ref
317 * rocprofiler_buffer_tracing_kind_t to string names. @see
318 * rocprofiler_iterate_buffer_trace_kind_operation_names.
319 */
323 void* data);
324
325/**
326 * @brief Configure Buffer Tracing Service.
327 *
328 * @param [in] context_id Associated context to control activation of service
329 * @param [in] kind Buffer tracing category
330 * @param [in] operations Array of specific operations (if desired)
331 * @param [in] operations_count Number of specific operations (if non-null set of operations)
332 * @param [in] buffer_id Buffer to store the records in
333 * @return ::rocprofiler_status_t
334 * @retval ::ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED ::rocprofiler_configure initialization
335 * phase has passed
336 * @retval ::ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND context is not valid
337 * @retval ::ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED Context has already been configured
338 * for the ::rocprofiler_buffer_tracing_kind_t kind
339 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Invalid ::rocprofiler_buffer_tracing_kind_t
340 * @retval ::ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND Invalid operation id for
341 * ::rocprofiler_buffer_tracing_kind_t kind was found
342 *
343 */
347 const rocprofiler_tracing_operation_t* operations,
348 size_t operations_count,
349 rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
350
351/**
352 * @brief Query the name of the buffer tracing kind. The name retrieved from this function is a
353 * string literal that is encoded in the read-only section of the binary (i.e. it is always
354 * "allocated" and never "deallocated").
355 *
356 * @param [in] kind Buffer tracing domain
357 * @param [out] name If non-null and the name is a constant string that does not require dynamic
358 * allocation, this paramter will be set to the address of the string literal, otherwise it will
359 * be set to nullptr
360 * @param [out] name_len If non-null, this will be assigned the length of the name (regardless of
361 * the name is a constant string or requires dynamic allocation)
362 * @return ::rocprofiler_status_t
363 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Returned if the domain id is not valid
364 * @retval ::ROCPROFILER_STATUS_SUCCESS Returned if a valid domain, regardless if there is a
365 * constant string or not.
366 */
369 const char** name,
370 uint64_t* name_len) ROCPROFILER_API;
371
372/**
373 * @brief Query the name of the buffer tracing kind. The name retrieved from this function is a
374 * string literal that is encoded in the read-only section of the binary (i.e. it is always
375 * "allocated" and never "deallocated").
376 *
377 * @param [in] kind Buffer tracing domain
378 * @param [in] operation Enumeration id value which maps to a specific API function or event type
379 * @param [out] name If non-null and the name is a constant string that does not require dynamic
380 * allocation, this paramter will be set to the address of the string literal, otherwise it will
381 * be set to nullptr
382 * @param [out] name_len If non-null, this will be assigned the length of the name (regardless of
383 * the name is a constant string or requires dynamic allocation)
384 * @return ::rocprofiler_status_t
385 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND An invalid domain id
386 * @retval ::ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND The operation number is not recognized for
387 * the given domain
388 * @retval ::ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED Rocprofiler does not support providing the
389 * operation name within this domain
390 * @retval ::ROCPROFILER_STATUS_SUCCESS Valid domain and operation, regardless of whether there is a
391 * constant string or not.
392 */
396 const char** name,
397 uint64_t* name_len) ROCPROFILER_API;
398
399/**
400 * @brief Iterate over all the buffer tracing kinds and invokes the callback for each buffer tracing
401 * kind.
402 *
403 * This is typically used to invoke ::rocprofiler_iterate_buffer_tracing_kind_operations for each
404 * buffer tracing kind.
405 *
406 * @param [in] callback Callback function invoked for each enumeration value in @ref
407 * rocprofiler_buffer_tracing_kind_t with the exception of the `NONE` and `LAST` values.
408 * @param [in] data User data passed back into the callback
409 */
412 void* data) ROCPROFILER_API ROCPROFILER_NONNULL(1);
413
414/**
415 * @brief Iterates over all the operations for a given @ref
416 * rocprofiler_buffer_tracing_kind_t and invokes the callback with the kind and operation
417 * id. This is useful to build a map of the operation names during tool initialization instead of
418 * querying rocprofiler everytime in the callback hotpath.
419 *
420 * @param [in] kind which buffer tracing kind operations to iterate over
421 * @param [in] callback Callback function invoked for each operation associated with @ref
422 * rocprofiler_buffer_tracing_kind_t with the exception of the `NONE` and `LAST` values.
423 * @param [in] data User data passed back into the callback
424 */
429 void* data) ROCPROFILER_API ROCPROFILER_NONNULL(2);
430
431/** @} */
432
433ROCPROFILER_EXTERN_C_FINI
int32_t rocprofiler_tracing_operation_t
Tracing Operation ID. Depending on the kind, operations can be determined. If the value is equal to z...
Definition fwd.h:452
rocprofiler_scratch_memory_operation_t
Scratch event kind.
Definition fwd.h:326
rocprofiler_memory_copy_operation_t
Memory Copy Operation.
Definition fwd.h:218
rocprofiler_scratch_alloc_flag_t
Allocation flags for.
Definition fwd.h:338
rocprofiler_status_t
Status codes.
Definition fwd.h:55
uint64_t rocprofiler_thread_id_t
Thread ID. Value will be equivalent to syscall(__NR_gettid)
Definition fwd.h:443
rocprofiler_buffer_tracing_kind_t
Service Buffer Tracing Kind.
Definition fwd.h:182
rocprofiler_kernel_dispatch_operation_t
ROCProfiler Kernel Dispatch Tracing Operation Types.
Definition fwd.h:246
uint64_t rocprofiler_timestamp_t
ROCProfiler Timestamp.
Definition fwd.h:433
Agent Identifier.
Definition fwd.h:545
Context ID.
Definition fwd.h:506
ROCProfiler Record Correlation ID.
Definition fwd.h:522
ROCProfiler kernel dispatch information.
Definition fwd.h:657
rocprofiler_thread_id_t thread_id
id for thread that launched kernel
rocprofiler_tracing_operation_t operation
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API, ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API,...
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_page_migration_queue_suspend_trigger_t trigger
Cause of queue suspension.
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t timestamp
Timestamp (in nanosec) of when rocprofiler detected the correlation ID could be retired....
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_agent_id_t dst_agent_id
destination agent of copy
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_thread_id_t thread_id
id for thread that triggered copy
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
uint64_t end_addr
End address of the page being migrated.
uint32_t prefetch_node
Node from which page was prefetched.
rocprofiler_agent_id_t agent_id
agent kernel was dispatched on
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_agent_id_t src_agent_id
source agent of copy
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
uint32_t node_id
GPU node from which the queue was suspended.
rocprofiler_page_migration_unmap_from_gpu_trigger_t trigger
Cause of unmap.
rocprofiler_page_migration_trigger_t trigger
Cause of migration.
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API, ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API,...
uint32_t node_id
GPU or CPU node ID which reports a page fault.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
uint64_t address
Address access that caused the page fault.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_RCCL_API,
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_hsa_core_api_id_t, rocprofiler_hsa_amd_ext_api_i...
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
uint8_t read_fault
Is the fault due to a read or a write.
rocprofiler_kernel_dispatch_operation_t operation
Kernel dispatch buffer records only report the ROCPROFILER_KERNEL_DISPATCH_COMPLETE operation because...
rocprofiler_scratch_memory_operation_t operation
specification of the kind
uint64_t start_addr
Start address of the page being migrated.
rocprofiler_memory_copy_operation_t operation
Specification of the memory copy direction (.
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_PAGE_MIGRATION.
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_kernel_dispatch_info_t dispatch_info
Dispatch info.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
rocprofiler_queue_id_t queue_id
queue kernel was dispatched on
uint32_t node_id
Node ID from which page was unmapped.
rocprofiler_tracing_operation_t operation
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_hip_runtime_api_id_t or rocprofiler_hip_compiler...
uint64_t internal_correlation_id
Only internal correlation ID is provided.
int(* rocprofiler_buffer_tracing_kind_operation_cb_t)(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_tracing_operation_t operation, void *data)
Callback function for mapping the operations of a given rocprofiler_buffer_tracing_kind_t to string n...
rocprofiler_status_t rocprofiler_iterate_buffer_tracing_kinds(rocprofiler_buffer_tracing_kind_cb_t callback, void *data)
Iterate over all the buffer tracing kinds and invokes the callback for each buffer tracing kind.
rocprofiler_page_migration_queue_suspend_trigger_t
Page migration triggers causing the queue to suspend.
rocprofiler_page_migration_trigger_t
Page migration triggers.
int(* rocprofiler_buffer_tracing_kind_cb_t)(rocprofiler_buffer_tracing_kind_t kind, void *data)
Callback function for mapping rocprofiler_buffer_tracing_kind_t ids to string names.
rocprofiler_status_t rocprofiler_configure_buffer_tracing_service(rocprofiler_context_id_t context_id, rocprofiler_buffer_tracing_kind_t kind, const rocprofiler_tracing_operation_t *operations, unsigned long operations_count, rocprofiler_buffer_id_t buffer_id)
Configure Buffer Tracing Service.
rocprofiler_status_t rocprofiler_query_buffer_tracing_kind_name(rocprofiler_buffer_tracing_kind_t kind, const char **name, uint64_t *name_len)
Query the name of the buffer tracing kind. The name retrieved from this function is a string literal ...
rocprofiler_status_t rocprofiler_query_buffer_tracing_kind_operation_name(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_tracing_operation_t operation, const char **name, uint64_t *name_len)
Query the name of the buffer tracing kind. The name retrieved from this function is a string literal ...
rocprofiler_status_t rocprofiler_iterate_buffer_tracing_kind_operations(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_buffer_tracing_kind_operation_cb_t callback, void *data)
Iterates over all the operations for a given rocprofiler_buffer_tracing_kind_t and invokes the callba...
rocprofiler_page_migration_unmap_from_gpu_trigger_t
Page migration triggers causing an unmap from the GPU.
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_USERPTR
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_RESTORE
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_TTM
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SUSPEND
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_LAST
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SVM
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_NONE
@ ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_CHECKPOINT
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_TTM_EVICTION
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_PREFETCH
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_CPU
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_NONE
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_LAST
@ ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_GPU
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_UNMAP_FROM_CPU
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_LAST
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_NONE
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY
@ ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY_MIGRATE
ROCProfiler Buffer Correlation ID Retirement Tracer Record.
ROCProfiler Buffer HIP API Tracer Record.
ROCProfiler Buffer HSA API Tracer Record.
ROCProfiler Buffer Kernel Dispatch Tracer Record.
ROCProfiler Buffer Marker Tracer Record.
ROCProfiler Buffer Memory Copy Tracer Record.
ROCProfiler Buffer Page Migration Tracer Record.
ROCProfiler Buffer RCCL API Record.
ROCProfiler Buffer Scratch Memory Tracer Record.