diff --git a/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h b/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h index 0cc7dfe399..a4a6e0ad53 100644 --- a/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h +++ b/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/amd_ext_api_id.h @@ -103,6 +103,9 @@ typedef enum // NOLINT(performance-enum-size) # if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x01 ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agent_set_async_scratch_limit, # endif +# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x02 + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_get_info, +# endif #endif ROCPROFILER_HSA_AMD_EXT_API_ID_LAST, diff --git a/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/api_args.h b/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/api_args.h index bda5410963..67a8c80e7a 100644 --- a/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/api_args.h +++ b/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hsa/api_args.h @@ -1389,6 +1389,14 @@ typedef union rocprofiler_hsa_api_args_t size_t threshold; } hsa_amd_agent_set_async_scratch_limit; # endif +# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x02 + struct + { + hsa_queue_t* queue; + hsa_queue_info_attribute_t attribute; + void* value; + } hsa_amd_queue_get_info; +# endif #endif } rocprofiler_hsa_api_args_t; diff --git a/projects/rocprofiler-sdk/source/lib/common/utility.hpp b/projects/rocprofiler-sdk/source/lib/common/utility.hpp index 29b90520b4..473a8e18ba 100644 --- a/projects/rocprofiler-sdk/source/lib/common/utility.hpp +++ b/projects/rocprofiler-sdk/source/lib/common/utility.hpp @@ -49,6 +49,11 @@ namespace rocprofiler { namespace common { +template +void +consume_args(Tp&&...) +{} + uint64_t get_clock_period_ns_impl(clockid_t _clk_id); diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.def.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.def.cpp index 0c3358bbca..c120b39500 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.def.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/hsa.def.cpp @@ -407,6 +407,15 @@ HSA_API_INFO_DEFINITION_V(ROCPROFILER_HSA_TABLE_ID_AmdExt, agent, threshold) # endif +# if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x02 +HSA_API_INFO_DEFINITION_V(ROCPROFILER_HSA_TABLE_ID_AmdExt, + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_get_info, + hsa_amd_queue_get_info, + hsa_amd_queue_get_info_fn, + queue, + attribute, + value) +# endif # endif #elif defined(ROCPROFILER_LIB_ROCPROFILER_HSA_ASYNC_COPY_CPP_IMPL) && \ diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/scratch_memory.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/scratch_memory.cpp index 026d282e19..867df07859 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/scratch_memory.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/scratch_memory.cpp @@ -484,7 +484,8 @@ impl(Args... args) const auto tid = common::get_tid(); - const auto get_agent_id = [](const hsa_queue_t* hsa_queue) -> rocprofiler_agent_id_t { + [[maybe_unused]] const auto get_agent_id = + [](const hsa_queue_t* hsa_queue) -> rocprofiler_agent_id_t { rocprofiler_agent_id_t _agent_id{static_cast(-1)}; bool found_agent{false}; @@ -635,6 +636,9 @@ update_table(const context_array_t& ctxs, hsa_amd_tool_table_t* _orig) _func = get_hsa_amd_tool_api_impl(_func); } + + // suppress unused paramter + common::consume_args(ctxs, _orig); } template diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/types.hpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/types.hpp index 433739f7e7..21c90552cd 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/types.hpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/types.hpp @@ -169,8 +169,10 @@ struct table_size // TODO(jomadsen): come up with a better way of handling this # if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x00 static constexpr size_t amd_ext = 552; -# else +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x1 static constexpr size_t amd_ext = 560; +# else + static constexpr size_t amd_ext = 568; # endif }; diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/pc_sampling.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/pc_sampling.cpp index 21a5088943..291dc8d0d1 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/pc_sampling.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/pc_sampling.cpp @@ -23,15 +23,10 @@ #include #include +#include "lib/common/utility.hpp" #include "lib/rocprofiler-sdk/registration.hpp" -namespace -{ -template -auto -consume_args(Tp&&...) -{} -} // namespace +using ::rocprofiler::common::consume_args; extern "C" { rocprofiler_status_t