rocprofiler-sdk/amd_detail/thread_trace_core.h Source File

rocprofiler-sdk/amd_detail/thread_trace_core.h Source File#

Rocprofiler SDK Developer API: rocprofiler-sdk/amd_detail/thread_trace_core.h Source File
Rocprofiler SDK Developer API 0.6.0
ROCm Profiling API and tools
thread_trace_core.h
Go to the documentation of this file.
1// MIT License
2//
3// Copyright (c) 2024-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
27#include <rocprofiler-sdk/fwd.h>
28#include <rocprofiler-sdk/hsa.h>
29
30ROCPROFILER_EXTERN_C_INIT
31
32/**
33 * @defgroup THREAD_TRACE Thread Trace Service
34 * @brief Provides API calls to enable and handle thread trace data
35 *
36 * @{
37 */
38
39typedef enum
40{
41 ROCPROFILER_ATT_PARAMETER_TARGET_CU = 0, ///< Select the Target CU or WGP
42 ROCPROFILER_ATT_PARAMETER_SHADER_ENGINE_MASK, ///< Bitmask of shader engines.
43 ROCPROFILER_ATT_PARAMETER_BUFFER_SIZE, ///< Size of combined GPU buffer for ATT
44 ROCPROFILER_ATT_PARAMETER_SIMD_SELECT, ///< Bitmask (GFX9) or ID (Navi) of SIMDs
45 ROCPROFILER_ATT_PARAMETER_PERFCOUNTERS_CTRL, ///< Period [1,32] or disable (0) perfmon
46 ROCPROFILER_ATT_PARAMETER_PERFCOUNTER, ///< Perfmon ID and SIMD mask
47 ROCPROFILER_ATT_PARAMETER_SERIALIZE_ALL, ///< Serializes kernels not under thread trace
50
51typedef struct
52{
54 union
55 {
56 uint64_t value;
57 struct
58 {
59 rocprofiler_counter_id_t counter_id;
60 uint64_t simd_mask : 4;
61 };
62 };
64
65/**
66 * @brief Callback to be triggered every time some ATT data is generated by the device
67 * @param [in] shader_engine_id ID of shader engine, as enabled by SE_MASK
68 * @param [in] data Pointer to the buffer containing the ATT data
69 * @param [in] data_size Number of bytes in "data"
70 * @param [in] userdata Passed back to user from rocprofiler_att_dispatch_callback_t()
71 */
73 int64_t shader_engine_id,
74 void* data,
75 size_t data_size,
77
78/** @} */
79
80ROCPROFILER_EXTERN_C_FINI
Agent Identifier.
Definition fwd.h:594
Counter ID.
Definition fwd.h:602
User-assignable data type.
Definition fwd.h:520
rocprofiler_att_parameter_type_t type
rocprofiler_att_parameter_type_t
void(* rocprofiler_att_shader_data_callback_t)(rocprofiler_agent_id_t agent, int64_t shader_engine_id, void *data, unsigned long data_size, rocprofiler_user_data_t userdata)
Callback to be triggered every time some ATT data is generated by the device.
@ ROCPROFILER_ATT_PARAMETER_SHADER_ENGINE_MASK
Bitmask of shader engines.
@ ROCPROFILER_ATT_PARAMETER_SIMD_SELECT
Bitmask (GFX9) or ID (Navi) of SIMDs.
@ ROCPROFILER_ATT_PARAMETER_TARGET_CU
Select the Target CU or WGP.
@ ROCPROFILER_ATT_PARAMETER_LAST
@ ROCPROFILER_ATT_PARAMETER_BUFFER_SIZE
Size of combined GPU buffer for ATT.
@ ROCPROFILER_ATT_PARAMETER_SERIALIZE_ALL
Serializes kernels not under thread trace.
@ ROCPROFILER_ATT_PARAMETER_PERFCOUNTERS_CTRL
Period [1,32] or disable (0) perfmon.
@ ROCPROFILER_ATT_PARAMETER_PERFCOUNTER
Perfmon ID and SIMD mask.