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 1.0.0
ROCm Profiling API and tools
buffer_tracing.h
1// MIT License
2//
3// Copyright (c) 2023-2025 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
25#include <rocprofiler-sdk/agent.h>
26#include <rocprofiler-sdk/defines.h>
27#include <rocprofiler-sdk/fwd.h>
28#include <rocprofiler-sdk/hip/api_args.h>
29#include <rocprofiler-sdk/kfd/kfd_id.h>
30#include <rocprofiler-sdk/rocdecode/api_args.h>
31#include <rocprofiler-sdk/rocdecode/api_id.h>
32
33#include <stdint.h>
34
35ROCPROFILER_EXTERN_C_INIT
36
37/**
38 * @defgroup BUFFER_TRACING_SERVICE Asynchronous Tracing Service
39 * @brief Receive callbacks for batches of records from an internal (background) thread
40 *
41 * @{
42 */
43
44/**
45 * @brief ROCProfiler Buffer HSA API Tracer Record.
46 */
48{
49 uint64_t size; ///< size of this struct
52 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
53 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
54 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
55 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
56
57 /// @var kind
58 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API,
59 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API,
60 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_IMAGE_EXT_API, or
61 /// ::ROCPROFILER_CALLBACK_TRACING_HSA_FINALIZE_EXT_API
62 /// @var operation
63 /// @brief Specification of the API function, e.g., ::rocprofiler_hsa_core_api_id_t,
64 /// ::rocprofiler_hsa_amd_ext_api_id_t, ::rocprofiler_hsa_image_ext_api_id_t, or
65 /// ::rocprofiler_hsa_finalize_ext_api_id_t
67
68/**
69 * @brief ROCProfiler Buffer HIP API Tracer Record.
70 */
72{
73 uint64_t size; ///< size of this struct
76 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
77 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
78 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
79 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
80
81 /// @var kind
82 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or
83 /// ::ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
84 /// @var operation
85 /// @brief Specification of the API function, e.g., ::rocprofiler_hip_runtime_api_id_t or
86 /// ::rocprofiler_hip_compiler_api_id_t
88
89/**
90 * @brief ROCProfiler Buffer HIP API Tracer Record.
91 */
93{
94 uint64_t size; ///< size of this struct
97 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
98 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
99 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
100 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
101 rocprofiler_hip_api_args_t args; ///< arguments of function call
102 rocprofiler_hip_api_retval_t retval; ///< return value of function call
103
104 /// @var kind
105 /// @brief ::ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or
106 /// ::ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
107 /// @var operation
108 /// @brief Specification of the API function, e.g., ::rocprofiler_hip_runtime_api_id_t or
109 /// ::rocprofiler_hip_compiler_api_id_t
111
112/**
113 * @brief Additional trace data for OpenMP target routines
114 */
115
117{
118 int32_t kind; // ompt_target_t target region kind
119 int32_t device_num; // ompt device number for the region
120 uint64_t task_id; // Task ID from the task_data argument to the OMPT callback
121 uint64_t target_id; // Target identifier from the target_data argument to the callback
122 const void* codeptr_ra; // pointer to the callsite of the target region
124
125typedef struct rocprofiler_buffer_tracing_ompt_target_data_op_t
126{
127 uint64_t host_op_id; // from the host_op_id argument to the OMPT callback
128 int32_t optype; // ompt_target_data_op_t kind of operation
129 int32_t src_device_num; // ompt device number for data source
130 int32_t dst_device_num; // ompt device number for data destination
131 int32_t reserved; // for padding
132 uint64_t bytes; // size in bytes of the operation
133 const void* codeptr_ra; // pointer to the callsite of the target_data_op
134} rocprofiler_buffer_tracing_ompt_target_data_op_t;
135
136typedef struct rocprofiler_buffer_tracing_ompt_target_kernel_t
137{
138 uint64_t host_op_id; // from the host_op_id argument to the OMPT callback
139 int32_t device_num; // strangely missing from the OpenMP spec,
140 uint32_t requested_num_teams; // from the compiler
141} rocprofiler_buffer_tracing_ompt_target_kernel_t;
142
143/**
144 * @brief ROCProfiler Buffer OMPT Tracer Record.
145 */
147{
148 uint64_t size; ///< size of this struct
151 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
152 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
153 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
154 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
155 union
156 {
158 rocprofiler_buffer_tracing_ompt_target_data_op_t target_data_op;
159 rocprofiler_buffer_tracing_ompt_target_kernel_t target_kernel;
160 uint64_t reserved[5];
161 };
162
163 /// @var kind
164 /// @brief ::ROCPROFILER_BUFFER_TRACING_OMPT
165 /// @var operation
166 /// @brief Specification of the ::rocprofiler_ompt_operation_t
168
169/**
170 * @brief ROCProfiler Buffer Marker Tracer Record.
171 */
173{
174 uint64_t size; ///< size of this struct
177 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
178 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
179 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
180 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
181
182 /// @var kind
183 /// @brief ::ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API,
184 /// ::ROCPROFILER_CALLBACK_TRACING_MARKER_CONTROL_API, or
185 /// ::ROCPROFILER_CALLBACK_TRACING_MARKER_NAME_API
186 /// @var operation
187 /// @brief Specification of the API function, e.g., ::rocprofiler_marker_core_api_id_t,
188 /// ::rocprofiler_marker_control_api_id_t, or
189 /// ::rocprofiler_marker_name_api_id_t
191
192/**
193 * @brief ROCProfiler Buffer RCCL API Record.
194 */
196{
197 uint64_t size; ///< size of this struct
200 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
201 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
202 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
203 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
204
205 /// @var kind
206 /// @brief ::ROCPROFILER_CALLBACK_TRACING_RCCL_API
207 /// @var operation
208 /// @brief Specification of the API function, e.g., ::rocprofiler_rccl_api_id_t
210
211/**
212 * @brief ROCProfiler Buffer rocDecode API Record.
213 */
215{
216 uint64_t size; ///< size of this struct
218 rocprofiler_rocdecode_api_id_t operation;
219 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
220 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
221 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
222 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
223
224 /// @var kind
225 /// @brief ::ROCPROFILER_CALLBACK_TRACING_ROCDECODE_API
226 /// @var operation
227 /// @brief Specification of the API function, e.g., ::rocprofiler_rocdecode_api_id_t
229
230/**
231 * @brief An extended ROCProfiler rocDecode API Tracer Record which includes function arguments.
232 * Pointers are not dereferenced.
233 */
235{
236 uint64_t size; ///< size of this struct
238 rocprofiler_rocdecode_api_id_t operation;
239 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
240 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
241 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
242 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
243 rocprofiler_rocdecode_api_args_t args; ///< arguments of function call
244 rocprofiler_rocdecode_api_retval_t retval; ///< return value of function call
245
246 /// @var kind
247 /// @brief ::ROCPROFILER_BUFFER_TRACING_ROCDECODE_API_EXT
248 /// @var operation
249 /// @brief Specification of the API function (@see
250 /// ::rocprofiler_rocdecode_api_id_t)
252
253/**
254 * @brief ROCProfiler Buffer rocJPEG API Record.
255 */
257{
258 uint64_t size; ///< size of this struct
261 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
262 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
263 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
264 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
265
266 /// @var kind
267 /// @brief ::ROCPROFILER_CALLBACK_TRACING_ROCJPEG_API
268 /// @var operation
269 /// @brief Specification of the API function (@see
270 /// ::rocprofiler_rocjpeg_api_id_t)
272
273/**
274 * @brief ROCProfiler Buffer Memory Copy Tracer Record.
275 */
277{
278 uint64_t size; ///< size of this struct
281 rocprofiler_async_correlation_id_t correlation_id; ///< correlation ids for record
282 rocprofiler_thread_id_t thread_id; ///< id for thread that triggered copy
283 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
284 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
285 rocprofiler_agent_id_t dst_agent_id; ///< destination agent of copy
286 rocprofiler_agent_id_t src_agent_id; ///< source agent of copy
287 uint64_t bytes; ///< bytes copied
288 rocprofiler_address_t dst_address; ///< destination address
290
291 /// @var kind
292 /// @brief ::ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
293 /// @var operation
294 /// @brief Specification of the memory copy direction (@see
295 /// ::rocprofiler_memory_copy_operation_t)
297
298/**
299 * @brief ROCProfiler Buffer Memory Allocation Tracer Record.
300 */
302{
303 uint64_t size; ///< size of this struct
306 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
307 rocprofiler_thread_id_t thread_id; ///< id for thread that triggered copy
308 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
309 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
310 rocprofiler_agent_id_t agent_id; ///< agent information for memory allocation
311 rocprofiler_address_t address; ///< starting address for memory allocation
312 uint64_t allocation_size; ///< size for memory allocation
313
314 /// @var kind
315 /// @brief ::ROCPROFILER_BUFFER_TRACING_MEMORY_ALLOCATION
316 /// @var operation
317 /// @brief Specification of the memory allocation function (@see
318 /// ::rocprofiler_memory_allocation_operation_t
320
321/**
322 * @brief ROCProfiler Buffer Kernel Dispatch Tracer Record.
323 */
325{
326 uint64_t size; ///< size of this struct
327 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
329 rocprofiler_async_correlation_id_t correlation_id; ///< correlation ids for record
330 rocprofiler_thread_id_t thread_id; ///< id for thread that launched kernel
331 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
332 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
334
335 /// @var operation
336 /// @brief Kernel dispatch buffer records only report the ::ROCPROFILER_KERNEL_DISPATCH_COMPLETE
337 /// operation because there are no "real" wrapper around the enqueuing of an individual kernel
338 /// dispatch
340
341/**
342 * @brief ROCProfiler Buffer Page Migration event record from KFD.
343 */
345{
346 uint64_t size; ///< Size of this struct
348 rocprofiler_kfd_event_page_migrate_operation_t operation;
349 rocprofiler_timestamp_t timestamp; ///< Timestamp of the event as reported by KFD
350 uint32_t pid; ///< PID of the process as reported by KFD
351 rocprofiler_address_t start_address; ///< Start address of the memory range being migrated
352 rocprofiler_address_t end_address; ///< End address of the memory range being migrated
353 rocprofiler_agent_id_t src_agent; ///< Source agent from which pages were migrated
354 rocprofiler_agent_id_t dst_agent; ///< Destination agent to which pages were migrated
357 int32_t error_code; ///< Non-zero if there was an error at migrate-end
358
359 ///< @var kind
360 ///< @brief ::ROCPROFILER_BUFFER_TRACING_KFD_EVENT_PAGE_MIGRATE
361 ///< @var operation
362 ///< @brief @see rocprofiler_kfd_page_migrate_operation_t
363 ///< @var prefetch_agent
364 ///< @brief Agent to which memory is to be prefetched.
365 /// This field should be ignored on a migrate-end event
366 ///< @var preferred_agent
367 ///< @brief Preferred location for this memory
368 /// This field should be ignored on a migrate-end event
370
371/**
372 * @brief ROCProfiler Buffer Page Fault event record from KFD.
373 */
375{
376 uint64_t size; ///< Size of this struct
377 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KFD_EVENT_PAGE_FAULT
378 rocprofiler_kfd_event_page_fault_operation_t operation;
379 rocprofiler_timestamp_t timestamp; ///< Timestamp of the event as reported by KFD
380 uint32_t pid; ///< PID of the process as reported by KFD
381 rocprofiler_agent_id_t agent_id; ///< Agent ID which generated the fault
382 rocprofiler_address_t address; ///< Memory access that generated the fault event
383
384 ///< @var operation
385 ///< @brief @see rocprofiler_kfd_page_fault_operation_t
387
388/**
389 * @brief ROCProfiler Buffer Queue event record from KFD.
390 */
392{
393 uint64_t size; ///< Size of this struct
394 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KFD_EVENT_QUEUE
395 rocprofiler_kfd_event_queue_operation_t operation; ///< @see rocprofiler_kfd_queue_operation_t
396 rocprofiler_timestamp_t timestamp; ///< Timestamp of the event as reported by KFD
397 uint32_t pid; ///< PID of the process as reported by KFD
398 rocprofiler_agent_id_t agent_id; ///< Agent ID on which this event occurred
400
401/**
402 * @brief ROCProfiler Buffer Unmap of memory from GPU event record from KFD.
403 */
405{
406 uint64_t size; ///< Size of this struct
408 rocprofiler_kfd_event_unmap_from_gpu_operation_t operation;
409 rocprofiler_timestamp_t timestamp; ///< Timestamp of the event as reported by KFD
410 uint32_t pid; ///< PID of the process as reported by KFD
411 rocprofiler_agent_id_t agent_id; ///< Agent ID on which memory ranges were unmapped
412 rocprofiler_address_t start_address; ///< Start address of the memory range being unmapped
413 rocprofiler_address_t end_address; ///< End address of the memory range being unmapped
414
415 ///< @var kind
416 ///< @brief ::ROCPROFILER_BUFFER_TRACING_KFD_EVENT_UNMAP_FROM_GPU
417 ///< @var operation
418 ///< @brief @see rocprofiler_kfd_unmap_from_gpu_operation_t
420
421/**
422 * @brief ROCProfiler Buffer Dropped events event record, for when KFD reports
423 * that it has dropped some events.
424 */
426{
427 uint64_t size; ///< Size of this struct
429 rocprofiler_kfd_event_dropped_events_operation_t operation;
430 rocprofiler_timestamp_t timestamp; ///< Timestamp of the event as reported by KFD
431 uint32_t pid; ///< PID of the process as reported by KFD
432 uint32_t count; ///< Number of records that KFD dropped
433
434 ///< @var kind
435 ///< @brief ::ROCPROFILER_BUFFER_TRACING_KFD_EVENT_DROPPED_EVENTS
436 ///< @var operation
437 ///< @brief @see rocprofiler_kfd_event_dropped_events_operation_t
439
440/**
441 * @brief ROCProfiler Buffer Page Migration (paired) record from KFD.
442 */
444{
445 uint64_t size; ///< Size of this struct
446 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KFD_PAGE_MIGRATE
447 rocprofiler_kfd_page_migrate_operation_t operation;
448 rocprofiler_timestamp_t start_timestamp; ///< Start timestamp as reported by KFD
449 rocprofiler_timestamp_t end_timestamp; ///< End timestamp as reported by KFD
450 uint32_t pid; ///< PID of the process as reported by KFD
451 rocprofiler_address_t start_address; ///< Start address of the memory range being migrated
452 rocprofiler_address_t end_address; ///< End address of the memory range being migrated
453 rocprofiler_agent_id_t src_agent; ///< Source agent from which pages were migrated
454 rocprofiler_agent_id_t dst_agent; ///< Destination agent to which pages were migrated
457 int32_t error_code; ///< Non-zero codes are errors, as reported by KFD
458 ///< @var operation
459 ///< @brief @see rocprofiler_kfd_page_migrate_operation_t
460 ///< @var prefetch_agent
461 ///< @brief Agent to which memory is to be prefetched.
462 ///< @var preferred_agent
463 ///< @brief Preferred location for this memory
465
466/**
467 * @brief ROCProfiler Buffer Page Fault (paired) record from KFD.
468 */
470{
471 uint64_t size; ///< Size of this struct
472 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KFD_PAGE_FAULT
473 rocprofiler_kfd_page_fault_operation_t operation;
474 rocprofiler_timestamp_t start_timestamp; ///< Start timestamp as reported by KFD
475 rocprofiler_timestamp_t end_timestamp; ///< End timestamp as reported by KFD
476 uint32_t pid; ///< PID of the process as reported by KFD
477 rocprofiler_agent_id_t agent_id; ///< Agent ID which generated the fault
478 rocprofiler_address_t address; ///< Memory access that generated the page fault
479 ///< @var operation
480 ///< @brief @see rocprofiler_kfd_page_fault_operation_t
482
483/**
484 * @brief ROCProfiler Buffer Queue suspend (paired) record from KFD.
485 */
487{
488 uint64_t size; ///< Size of this struct
489 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_KFD_QUEUE
490 rocprofiler_kfd_queue_operation_t operation; ///< @see rocprofiler_kfd_queue_operation_t
491 rocprofiler_timestamp_t start_timestamp; ///< Start timestamp as reported by KFD
492 rocprofiler_timestamp_t end_timestamp; ///< End timestamp as reported by KFD
493 uint32_t pid; ///< PID of the process as reported by KFD
494 rocprofiler_agent_id_t agent_id; ///< Agent ID on which this event occurred
496
497/**
498 * @brief ROCProfiler Buffer Scratch Memory Tracer Record
499 */
501{
502 uint64_t size; ///< size of this struct
503 rocprofiler_buffer_tracing_kind_t kind; ///< ::ROCPROFILER_BUFFER_TRACING_SCRATCH_MEMORY
504 rocprofiler_scratch_memory_operation_t operation; ///< specification of the kind
505 rocprofiler_correlation_id_t correlation_id; ///< correlation ids for record
506 rocprofiler_agent_id_t agent_id; ///< agent kernel was dispatched on
507 rocprofiler_queue_id_t queue_id; ///< queue kernel was dispatched on
508 rocprofiler_thread_id_t thread_id; ///< id for thread generating this record
509 rocprofiler_timestamp_t start_timestamp; ///< start time in nanoseconds
510 rocprofiler_timestamp_t end_timestamp; ///< end time in nanoseconds
511 rocprofiler_scratch_alloc_flag_t flags;
512 uint64_t allocation_size; ///< size of scratch memory allocation in bytes
514
515/**
516 * @brief ROCProfiler Buffer Correlation ID Retirement Tracer Record.
517 */
519{
520 uint64_t size; ///< size of this struct
524
525 /// @var kind
526 /// @brief ::ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
527 /// @var timestamp
528 /// @brief Timestamp (in nanosec) of when rocprofiler detected the correlation ID could be
529 /// retired. Due to clock skew between the CPU and GPU, this may at times, *appear* to be before
530 /// the kernel or memory copy completed but the reality is that if this ever occurred, the API
531 /// would report a FATAL error
532 /// @var internal_correlation_id
533 /// @brief Only internal correlation ID is provided
535
536/**
537 * @brief ROCProfiler Buffer Runtime Initialization Tracer Record.
538 */
540{
541 uint64_t size; ///< size of this struct
547 uint64_t version;
548 uint64_t instance;
549
550 /// @var kind
551 /// @brief ::ROCPROFILER_BUFFER_TRACING_RUNTIME_INITIALIZATION
552 /// @var operation
553 /// @brief Indicates which runtime was initialized/loaded
554 /// @var correlation_id
555 /// @brief Correlation ID for these records are always zero
556 /// @var thread_id
557 /// @brief ID for thread which loaded this runtime
558 /// @var timestamp
559 /// @brief Timestamp (in nanosec) of when runtime was initialized/loaded
560 /// @var version
561 /// @brief The version number of the runtime
562 ///
563 /// Version number is encoded as: (10000 * MAJOR) + (100 * MINOR) + PATCH
564 /// @var instance
565 /// @brief Number of times this runtime had been loaded previously
567
568/**
569 * @brief Callback function for mapping ::rocprofiler_buffer_tracing_kind_t ids to
570 * string names. @see rocprofiler_iterate_buffer_trace_kind_names.
571 */
573 void* data);
574
575/**
576 * @brief Callback function for mapping the operations of a given @ref
577 * rocprofiler_buffer_tracing_kind_t to string names. @see
578 * rocprofiler_iterate_buffer_trace_kind_operation_names.
579 */
583 void* data);
584
585/**
586 * @brief Configure Buffer Tracing Service.
587 *
588 * @param [in] context_id Associated context to control activation of service
589 * @param [in] kind Buffer tracing category
590 * @param [in] operations Array of specific operations (if desired)
591 * @param [in] operations_count Number of specific operations (if non-null set of operations)
592 * @param [in] buffer_id Buffer to store the records in
593 * @return ::rocprofiler_status_t
594 * @retval ::ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED ::rocprofiler_configure initialization
595 * phase has passed
596 * @retval ::ROCPROFILER_STATUS_ERROR_CONTEXT_NOT_FOUND context is not valid
597 * @retval ::ROCPROFILER_STATUS_ERROR_SERVICE_ALREADY_CONFIGURED Context has already been configured
598 * for the ::rocprofiler_buffer_tracing_kind_t kind
599 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Invalid ::rocprofiler_buffer_tracing_kind_t
600 * @retval ::ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND Invalid operation id for
601 * ::rocprofiler_buffer_tracing_kind_t kind was found
602 *
603 */
607 const rocprofiler_tracing_operation_t* operations,
608 size_t operations_count,
609 rocprofiler_buffer_id_t buffer_id) ROCPROFILER_API;
610
611/**
612 * @brief Query the name of the buffer tracing kind. The name retrieved from this function is a
613 * string literal that is encoded in the read-only section of the binary (i.e. it is always
614 * "allocated" and never "deallocated").
615 *
616 * @param [in] kind Buffer tracing domain
617 * @param [out] name If non-null and the name is a constant string that does not require dynamic
618 * allocation, this paramter will be set to the address of the string literal, otherwise it will
619 * be set to nullptr
620 * @param [out] name_len If non-null, this will be assigned the length of the name (regardless of
621 * the name is a constant string or requires dynamic allocation)
622 * @return ::rocprofiler_status_t
623 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND Returned if the domain id is not valid
624 * @retval ::ROCPROFILER_STATUS_SUCCESS Returned if a valid domain, regardless if there is a
625 * constant string or not.
626 */
629 const char** name,
630 uint64_t* name_len) ROCPROFILER_API;
631
632/**
633 * @brief Query the name of the buffer tracing kind. The name retrieved from this function is a
634 * string literal that is encoded in the read-only section of the binary (i.e. it is always
635 * "allocated" and never "deallocated").
636 *
637 * @param [in] kind Buffer tracing domain
638 * @param [in] operation Enumeration id value which maps to a specific API function or event type
639 * @param [out] name If non-null and the name is a constant string that does not require dynamic
640 * allocation, this paramter will be set to the address of the string literal, otherwise it will
641 * be set to nullptr
642 * @param [out] name_len If non-null, this will be assigned the length of the name (regardless of
643 * the name is a constant string or requires dynamic allocation)
644 * @return ::rocprofiler_status_t
645 * @retval ::ROCPROFILER_STATUS_ERROR_KIND_NOT_FOUND An invalid domain id
646 * @retval ::ROCPROFILER_STATUS_ERROR_OPERATION_NOT_FOUND The operation number is not recognized for
647 * the given domain
648 * @retval ::ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED Rocprofiler does not support providing the
649 * operation name within this domain
650 * @retval ::ROCPROFILER_STATUS_SUCCESS Valid domain and operation, regardless of whether there is a
651 * constant string or not.
652 */
656 const char** name,
657 uint64_t* name_len) ROCPROFILER_API;
658
659/**
660 * @brief Iterate over all the buffer tracing kinds and invokes the callback for each buffer tracing
661 * kind.
662 *
663 * This is typically used to invoke ::rocprofiler_iterate_buffer_tracing_kind_operations for each
664 * buffer tracing kind.
665 *
666 * @param [in] callback Callback function invoked for each enumeration value in @ref
667 * rocprofiler_buffer_tracing_kind_t with the exception of the `NONE` and `LAST` values.
668 * @param [in] data User data passed back into the callback
669 * @return ::rocprofiler_status_t
670 */
673 void* data) ROCPROFILER_API ROCPROFILER_NONNULL(1);
674
675/**
676 * @brief Iterates over all the operations for a given @ref
677 * rocprofiler_buffer_tracing_kind_t and invokes the callback with the kind and operation
678 * id. This is useful to build a map of the operation names during tool initialization instead of
679 * querying rocprofiler everytime in the callback hotpath.
680 *
681 * @param [in] kind which buffer tracing kind operations to iterate over
682 * @param [in] callback Callback function invoked for each operation associated with @ref
683 * rocprofiler_buffer_tracing_kind_t with the exception of the `NONE` and `LAST` values.
684 * @param [in] data User data passed back into the callback
685 * @return ::rocprofiler_status_t
686 */
691 void* data) ROCPROFILER_API ROCPROFILER_NONNULL(2);
692
693/**
694 * @brief Callback function for iterating over the function arguments to a traced function.
695 * This function will be invoked for each argument.
696 * @see rocprofiler_iterate_buffer_tracing_record_args
697 *
698 * @param [in] kind domain
699 * @param [in] operation associated domain operation
700 * @param [in] arg_number the argument number, starting at zero
701 * @param [in] arg_value_addr the address of the argument stored by rocprofiler.
702 * @param [in] arg_indirection_count the total number of indirection levels for the argument, e.g.
703 * int == 0, int* == 1, int** == 2
704 * @param [in] arg_type the typeid name of the argument (not demangled)
705 * @param [in] arg_name the name of the argument in the prototype (or rocprofiler union)
706 * @param [in] arg_value_str conversion of the argument to a string, e.g. operator<< overload
707 * @param [in] data user data
708 */
712 uint32_t arg_number,
713 const void* const arg_value_addr,
714 int32_t arg_indirection_count,
715 const char* arg_type,
716 const char* arg_name,
717 const char* arg_value_str,
718 void* data);
719
720/**
721 * @brief Iterates over all the arguments for the traced function (when available). This is
722 * particularly useful when tools want to annotate traces with the function arguments. See
723 * @example samples/api_buffered_tracing/client.cpp for a usage example.
724 *
725 * In contrast to ::rocprofiler_iterate_callback_tracing_kind_operation_args, this function
726 * cannot dereference pointer arguments since there is a high probability that the pointer
727 * address references the stack and the buffer tracing record is delivered after the
728 * stack variables of the corresponding function have been destroyed.
729 *
730 * @param [in] record Buffer record
731 * @param [in] callback The callback function which will be invoked for each argument
732 * @param [in] user_data Data to be passed to each invocation of the callback
733 * @return ::rocprofiler_status_t
734 */
736rocprofiler_iterate_buffer_tracing_record_args(
739 void* user_data) ROCPROFILER_API ROCPROFILER_NONNULL(2);
740
741/** @} */
742
743ROCPROFILER_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:516
rocprofiler_scratch_memory_operation_t
Scratch event kind.
Definition fwd.h:384
rocprofiler_memory_copy_operation_t
Memory Copy Operations.
Definition fwd.h:278
rocprofiler_runtime_initialization_operation_t
ROCProfiler Runtime Initialization Tracer Operations.
Definition fwd.h:430
rocprofiler_memory_allocation_operation_t
Memory Allocation Operation.
Definition fwd.h:291
rocprofiler_status_t
Status codes.
Definition fwd.h:49
uint64_t rocprofiler_thread_id_t
Thread ID. Value will be equivalent to syscall(__NR_gettid)
Definition fwd.h:507
rocprofiler_buffer_tracing_kind_t
Service Buffer Tracing Kind.
Definition fwd.h:187
rocprofiler_kernel_dispatch_operation_t
ROCProfiler Kernel Dispatch Tracing Operation Types.
Definition fwd.h:304
uint64_t rocprofiler_timestamp_t
ROCProfiler Timestamp.
Definition fwd.h:502
Agent Identifier.
Definition fwd.h:677
ROCProfiler Correlation ID record for async activity.
Definition fwd.h:643
Context ID.
Definition fwd.h:600
ROCProfiler Record Correlation ID.
Definition fwd.h:624
ROCProfiler kernel dispatch information.
Definition fwd.h:793
Generic record with type identifier(s) and a pointer to data. This data type is used with buffered da...
Definition fwd.h:753
Stores memory address for profiling.
Definition fwd.h:565
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_rccl_api_id_t.
rocprofiler_thread_id_t thread_id
id for thread that launched kernel
rocprofiler_correlation_id_t correlation_id
correlation ids for record
uint64_t allocation_size
size of scratch memory allocation in bytes
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_MEMORY_ALLOCATION
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_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KFD_PAGE_FAULT
rocprofiler_thread_id_t thread_id
ID for thread which loaded this runtime.
rocprofiler_timestamp_t start_timestamp
Start timestamp as reported by KFD.
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_ROCJPEG_API
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_hip_runtime_api_id_t or rocprofiler_hip_compiler...
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_agent_id_t agent_id
Agent ID on which memory ranges were unmapped.
rocprofiler_agent_id_t preferred_agent
Preferred location for this memory This field should be ignored on a migrate-end event.
rocprofiler_tracing_operation_t operation
Specification of the rocprofiler_ompt_operation_t.
rocprofiler_agent_id_t preferred_agent
Preferred location for this memory.
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_rocdecode_api_retval_t retval
return value of function call
rocprofiler_agent_id_t prefetch_agent
Agent to which memory is to be prefetched.
rocprofiler_agent_id_t agent_id
Agent ID which generated the fault.
rocprofiler_timestamp_t timestamp
Timestamp (in nanosec) of when rocprofiler detected the correlation ID could be retired....
uint64_t instance
Number of times this runtime had been loaded previously.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KFD_QUEUE
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_memory_allocation_operation_t operation
Specification of the memory allocation function (.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
Start timestamp as reported by KFD.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_rocdecode_api_args_t args
arguments of function call
rocprofiler_kfd_event_dropped_events_operation_t operation
rocprofiler_agent_id_t dst_agent_id
destination agent of copy
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
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_correlation_id_t correlation_id
correlation ids for record
rocprofiler_correlation_id_t correlation_id
correlation ids for record
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_thread_id_t thread_id
id for thread that triggered copy
rocprofiler_kfd_event_unmap_from_gpu_operation_t operation
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_address_t end_address
End address of the memory range being migrated.
rocprofiler_timestamp_t timestamp
Timestamp of the event as reported by KFD.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_thread_id_t thread_id
id for thread that triggered copy
rocprofiler_correlation_id_t correlation_id
correlation ids for record
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_agent_id_t agent_id
agent information for memory allocation
uint64_t allocation_size
size for memory allocation
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_rocdecode_api_id_t operation
Specification of the API function, e.g., rocprofiler_rocdecode_api_id_t.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KFD_EVENT_QUEUE
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_agent_id_t agent_id
agent kernel was dispatched on
rocprofiler_agent_id_t src_agent_id
source agent of copy
rocprofiler_timestamp_t timestamp
Timestamp of the event as reported by KFD.
rocprofiler_address_t dst_address
destination address
rocprofiler_hip_api_retval_t retval
return value of function call
uint64_t version
The version number of the runtime.
rocprofiler_address_t start_address
Start address of the memory range being migrated.
rocprofiler_agent_id_t src_agent
Source agent from which pages were migrated.
rocprofiler_address_t start_address
Start address of the memory range being unmapped.
rocprofiler_timestamp_t timestamp
Timestamp of the event as reported by KFD.
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_RUNTIME_INITIALIZATION
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_timestamp_t end_timestamp
End timestamp as reported by KFD.
rocprofiler_hip_api_args_t args
arguments of function call
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KFD_PAGE_MIGRATE
rocprofiler_agent_id_t prefetch_agent
Agent to which memory is to be prefetched. This field should be ignored on a migrate-end event.
rocprofiler_kfd_event_page_migrate_operation_t operation
rocprofiler_address_t address
starting address for memory allocation
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HSA_CORE_API, ROCPROFILER_CALLBACK_TRACING_HSA_AMD_EXT_API,...
rocprofiler_timestamp_t timestamp
Timestamp (in nanosec) of when runtime was initialized/loaded.
rocprofiler_thread_id_t thread_id
id for thread generating this record
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_CORRELATION_ID_RETIREMENT
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KFD_EVENT_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_timestamp_t end_timestamp
end time in nanoseconds
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_timestamp_t start_timestamp
Start timestamp as reported by KFD.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_KERNEL_DISPATCH
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_ROCDECODE_API
rocprofiler_address_t src_address
source address
rocprofiler_correlation_id_t correlation_id
Correlation ID for these records are always zero.
rocprofiler_timestamp_t end_timestamp
End timestamp as reported by KFD.
rocprofiler_runtime_initialization_operation_t operation
Indicates which runtime was initialized/loaded.
rocprofiler_agent_id_t agent_id
Agent ID which generated the fault.
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
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_memory_copy_operation_t operation
Specification of the memory copy direction (.
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_ROCDECODE_API_EXT
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
rocprofiler_timestamp_t timestamp
Timestamp of the event as reported by KFD.
rocprofiler_address_t start_address
Start address of the memory range being migrated.
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_rocdecode_api_id_t operation
Specification of the API function (.
rocprofiler_address_t end_address
End address of the memory range being migrated.
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_marker_core_api_id_t, rocprofiler_marker_control...
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_agent_id_t dst_agent
Destination agent to which pages were migrated.
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_timestamp_t end_timestamp
End timestamp as reported by KFD.
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_agent_id_t agent_id
Agent ID on which this event occurred.
rocprofiler_agent_id_t src_agent
Source agent from which pages were migrated.
rocprofiler_kernel_dispatch_info_t dispatch_info
Dispatch info.
rocprofiler_tracing_operation_t operation
Specification of the API function (.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_correlation_id_t correlation_id
correlation ids for record
rocprofiler_kfd_queue_operation_t operation
rocprofiler_timestamp_t start_timestamp
start time in nanoseconds
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_MEMORY_COPY
rocprofiler_async_correlation_id_t correlation_id
correlation ids for record
rocprofiler_queue_id_t queue_id
queue kernel was dispatched on
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_BUFFER_TRACING_OMPT
uint32_t pid
PID of the process as reported by KFD.
rocprofiler_timestamp_t timestamp
Timestamp of the event as reported by KFD.
rocprofiler_timestamp_t end_timestamp
end time in nanoseconds
rocprofiler_thread_id_t thread_id
id for thread generating this record
rocprofiler_tracing_operation_t operation
Specification of the API function, e.g., rocprofiler_hip_runtime_api_id_t or rocprofiler_hip_compiler...
rocprofiler_agent_id_t dst_agent
Destination agent to which pages were migrated.
rocprofiler_kfd_event_queue_operation_t operation
rocprofiler_agent_id_t agent_id
Agent ID on which this event occurred.
rocprofiler_buffer_tracing_kind_t kind
ROCPROFILER_CALLBACK_TRACING_HIP_RUNTIME_API or ROCPROFILER_CALLBACK_TRACING_HIP_COMPILER_API
uint64_t internal_correlation_id
Only internal correlation ID is provided.
rocprofiler_async_correlation_id_t correlation_id
correlation ids for record
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.
int(* rocprofiler_buffer_tracing_operation_args_cb_t)(rocprofiler_buffer_tracing_kind_t kind, rocprofiler_tracing_operation_t operation, uint32_t arg_number, const void *const arg_value_addr, int32_t arg_indirection_count, const char *arg_type, const char *arg_name, const char *arg_value_str, void *data)
Callback function for iterating over the function arguments to a traced function. This function will ...
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 Buffer Correlation ID Retirement Tracer Record.
ROCProfiler Buffer HIP API Tracer Record.
ROCProfiler Buffer HIP API Tracer Record.
ROCProfiler Buffer HSA API Tracer Record.
ROCProfiler Buffer Kernel Dispatch Tracer Record.
ROCProfiler Buffer Dropped events event record, for when KFD reports that it has dropped some events.
ROCProfiler Buffer Page Fault event record from KFD.
ROCProfiler Buffer Page Migration event record from KFD.
ROCProfiler Buffer Queue event record from KFD.
ROCProfiler Buffer Unmap of memory from GPU event record from KFD.
ROCProfiler Buffer Page Fault (paired) record from KFD.
ROCProfiler Buffer Page Migration (paired) record from KFD.
ROCProfiler Buffer Queue suspend (paired) record from KFD.
ROCProfiler Buffer Marker Tracer Record.
ROCProfiler Buffer Memory Allocation Tracer Record.
ROCProfiler Buffer Memory Copy Tracer Record.
ROCProfiler Buffer OMPT Tracer Record.
Additional trace data for OpenMP target routines.
ROCProfiler Buffer RCCL API Record.
An extended ROCProfiler rocDecode API Tracer Record which includes function arguments....
ROCProfiler Buffer rocDecode API Record.
ROCProfiler Buffer rocJPEG API Record.
ROCProfiler Buffer Runtime Initialization Tracer Record.
ROCProfiler Buffer Scratch Memory Tracer Record.