Fix code_object_operation_t and memory_copy_operation_t enums (#751)
- enums for operations should not contain callback/buffer tracing categorization - e.g. ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LOAD should be ROCPROIFLER_CODE_OBJECT_LOAD
This commit is contained in:
کامیت شده توسط
GitHub
والد
3c005b81b1
کامیت
0f5c575435
@@ -957,7 +957,7 @@ code_object_tracing_callback(rocprofiler_callback_tracing_record_t record,
|
||||
void* data)
|
||||
{
|
||||
if(record.kind == ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT &&
|
||||
record.operation == ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LOAD)
|
||||
record.operation == ROCPROFILER_CODE_OBJECT_LOAD)
|
||||
{
|
||||
if(record.phase == ROCPROFILER_CALLBACK_PHASE_LOAD)
|
||||
{
|
||||
@@ -978,7 +978,7 @@ code_object_tracing_callback(rocprofiler_callback_tracing_record_t record,
|
||||
}
|
||||
|
||||
if(record.kind == ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT &&
|
||||
record.operation == ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER)
|
||||
record.operation == ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER)
|
||||
{
|
||||
auto* sym_data = static_cast<rocprofiler_kernel_symbol_data_t*>(record.payload);
|
||||
if(record.phase == ROCPROFILER_CALLBACK_PHASE_LOAD)
|
||||
|
||||
@@ -98,9 +98,9 @@ struct async_copy_info;
|
||||
|
||||
#define SPECIALIZE_ASYNC_COPY_INFO(DIRECTION) \
|
||||
template <> \
|
||||
struct async_copy_info<ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_##DIRECTION> \
|
||||
struct async_copy_info<ROCPROFILER_MEMORY_COPY_##DIRECTION> \
|
||||
{ \
|
||||
static constexpr auto operation_idx = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_##DIRECTION; \
|
||||
static constexpr auto operation_idx = ROCPROFILER_MEMORY_COPY_##DIRECTION; \
|
||||
static constexpr auto name = #DIRECTION; \
|
||||
};
|
||||
|
||||
@@ -169,12 +169,12 @@ constexpr auto null_rocp_agent_id =
|
||||
|
||||
struct async_copy_data
|
||||
{
|
||||
hsa_signal_t orig_signal = {};
|
||||
hsa_signal_t rocp_signal = {};
|
||||
rocprofiler_thread_id_t tid = common::get_tid();
|
||||
rocprofiler_agent_id_t dst_agent = null_rocp_agent_id;
|
||||
rocprofiler_agent_id_t src_agent = null_rocp_agent_id;
|
||||
rocprofiler_memory_copy_operation_t direction = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_NONE;
|
||||
hsa_signal_t orig_signal = {};
|
||||
hsa_signal_t rocp_signal = {};
|
||||
rocprofiler_thread_id_t tid = common::get_tid();
|
||||
rocprofiler_agent_id_t dst_agent = null_rocp_agent_id;
|
||||
rocprofiler_agent_id_t src_agent = null_rocp_agent_id;
|
||||
rocprofiler_memory_copy_operation_t direction = ROCPROFILER_MEMORY_COPY_NONE;
|
||||
context::correlation_id* correlation_id = nullptr;
|
||||
context::context_array_t contexts = {};
|
||||
external_corr_id_map_t extern_corr_ids = {};
|
||||
@@ -466,7 +466,7 @@ async_copy_impl(Args... args)
|
||||
}
|
||||
|
||||
// determine the direction of the memory copy
|
||||
auto _direction = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_NONE;
|
||||
auto _direction = ROCPROFILER_MEMORY_COPY_NONE;
|
||||
auto _src_agent_id = rocprofiler_agent_id_t{};
|
||||
auto _dst_agent_id = rocprofiler_agent_id_t{};
|
||||
{
|
||||
@@ -489,9 +489,9 @@ async_copy_impl(Args... args)
|
||||
if(_rocp_src_agent->type == ROCPROFILER_AGENT_TYPE_CPU)
|
||||
{
|
||||
if(_rocp_dst_agent->type == ROCPROFILER_AGENT_TYPE_CPU)
|
||||
_direction = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_HOST_TO_HOST;
|
||||
_direction = ROCPROFILER_MEMORY_COPY_HOST_TO_HOST;
|
||||
else if(_rocp_dst_agent->type == ROCPROFILER_AGENT_TYPE_GPU)
|
||||
_direction = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_HOST_TO_DEVICE;
|
||||
_direction = ROCPROFILER_MEMORY_COPY_HOST_TO_DEVICE;
|
||||
else
|
||||
{
|
||||
ROCP_CI_LOG(WARNING)
|
||||
@@ -502,9 +502,9 @@ async_copy_impl(Args... args)
|
||||
else if(_rocp_src_agent->type == ROCPROFILER_AGENT_TYPE_GPU)
|
||||
{
|
||||
if(_rocp_dst_agent->type == ROCPROFILER_AGENT_TYPE_CPU)
|
||||
_direction = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_DEVICE_TO_HOST;
|
||||
_direction = ROCPROFILER_MEMORY_COPY_DEVICE_TO_HOST;
|
||||
else if(_rocp_dst_agent->type == ROCPROFILER_AGENT_TYPE_GPU)
|
||||
_direction = ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_DEVICE_TO_DEVICE;
|
||||
_direction = ROCPROFILER_MEMORY_COPY_DEVICE_TO_DEVICE;
|
||||
else
|
||||
{
|
||||
ROCP_CI_LOG(WARNING)
|
||||
@@ -708,22 +708,21 @@ using async_copy_index_seq_t =
|
||||
const char*
|
||||
name_by_id(uint32_t id)
|
||||
{
|
||||
return name_by_id(id, std::make_index_sequence<ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_LAST>{});
|
||||
return name_by_id(id, std::make_index_sequence<ROCPROFILER_MEMORY_COPY_LAST>{});
|
||||
}
|
||||
|
||||
uint32_t
|
||||
id_by_name(const char* name)
|
||||
{
|
||||
return id_by_name(name,
|
||||
std::make_index_sequence<ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_LAST>{});
|
||||
return id_by_name(name, std::make_index_sequence<ROCPROFILER_MEMORY_COPY_LAST>{});
|
||||
}
|
||||
|
||||
std::vector<uint32_t>
|
||||
get_ids()
|
||||
{
|
||||
auto _data = std::vector<uint32_t>{};
|
||||
_data.reserve(ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_LAST);
|
||||
get_ids(_data, std::make_index_sequence<ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_LAST>{});
|
||||
_data.reserve(ROCPROFILER_MEMORY_COPY_LAST);
|
||||
get_ids(_data, std::make_index_sequence<ROCPROFILER_MEMORY_COPY_LAST>{});
|
||||
return _data;
|
||||
}
|
||||
|
||||
@@ -731,8 +730,8 @@ std::vector<const char*>
|
||||
get_names()
|
||||
{
|
||||
auto _data = std::vector<const char*>{};
|
||||
_data.reserve(ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_LAST);
|
||||
get_names(_data, std::make_index_sequence<ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_LAST>{});
|
||||
_data.reserve(ROCPROFILER_MEMORY_COPY_LAST);
|
||||
get_names(_data, std::make_index_sequence<ROCPROFILER_MEMORY_COPY_LAST>{});
|
||||
return _data;
|
||||
}
|
||||
} // namespace async_copy
|
||||
|
||||
@@ -70,11 +70,10 @@ struct code_object_info;
|
||||
|
||||
#define SPECIALIZE_CODE_OBJECT_INFO(OPERATION) \
|
||||
template <> \
|
||||
struct code_object_info<ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_##OPERATION> \
|
||||
struct code_object_info<ROCPROFILER_CODE_OBJECT_##OPERATION> \
|
||||
{ \
|
||||
static constexpr auto operation_idx = \
|
||||
ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_##OPERATION; \
|
||||
static constexpr auto name = #OPERATION; \
|
||||
static constexpr auto operation_idx = ROCPROFILER_CODE_OBJECT_##OPERATION; \
|
||||
static constexpr auto name = #OPERATION; \
|
||||
};
|
||||
|
||||
SPECIALIZE_CODE_OBJECT_INFO(NONE)
|
||||
@@ -103,7 +102,7 @@ id_by_name(const char* name, std::index_sequence<Idx, IdxTail...>)
|
||||
if constexpr(sizeof...(IdxTail) > 0)
|
||||
return id_by_name(name, std::index_sequence<IdxTail...>{});
|
||||
else
|
||||
return ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_NONE;
|
||||
return ROCPROFILER_CODE_OBJECT_NONE;
|
||||
}
|
||||
|
||||
template <size_t... Idx>
|
||||
@@ -111,8 +110,7 @@ void
|
||||
get_ids(std::vector<uint32_t>& _id_list, std::index_sequence<Idx...>)
|
||||
{
|
||||
auto _emplace = [](auto& _vec, uint32_t _v) {
|
||||
if(_v < static_cast<uint32_t>(ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST))
|
||||
_vec.emplace_back(_v);
|
||||
if(_v < static_cast<uint32_t>(ROCPROFILER_CODE_OBJECT_LAST)) _vec.emplace_back(_v);
|
||||
};
|
||||
|
||||
(_emplace(_id_list, code_object_info<Idx>::operation_idx), ...);
|
||||
@@ -134,23 +132,21 @@ get_names(std::vector<const char*>& _name_list, std::index_sequence<Idx...>)
|
||||
const char*
|
||||
name_by_id(uint32_t id)
|
||||
{
|
||||
return name_by_id(id,
|
||||
std::make_index_sequence<ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST>{});
|
||||
return name_by_id(id, std::make_index_sequence<ROCPROFILER_CODE_OBJECT_LAST>{});
|
||||
}
|
||||
|
||||
uint32_t
|
||||
id_by_name(const char* name)
|
||||
{
|
||||
return id_by_name(name,
|
||||
std::make_index_sequence<ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST>{});
|
||||
return id_by_name(name, std::make_index_sequence<ROCPROFILER_CODE_OBJECT_LAST>{});
|
||||
}
|
||||
|
||||
std::vector<uint32_t>
|
||||
get_ids()
|
||||
{
|
||||
auto _data = std::vector<uint32_t>{};
|
||||
_data.reserve(ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST);
|
||||
get_ids(_data, std::make_index_sequence<ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST>{});
|
||||
_data.reserve(ROCPROFILER_CODE_OBJECT_LAST);
|
||||
get_ids(_data, std::make_index_sequence<ROCPROFILER_CODE_OBJECT_LAST>{});
|
||||
return _data;
|
||||
}
|
||||
|
||||
@@ -158,8 +154,8 @@ std::vector<const char*>
|
||||
get_names()
|
||||
{
|
||||
auto _data = std::vector<const char*>{};
|
||||
_data.reserve(ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST);
|
||||
get_names(_data, std::make_index_sequence<ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST>{});
|
||||
_data.reserve(ROCPROFILER_CODE_OBJECT_LAST);
|
||||
get_names(_data, std::make_index_sequence<ROCPROFILER_CODE_OBJECT_LAST>{});
|
||||
return _data;
|
||||
}
|
||||
} // namespace code_object
|
||||
@@ -870,9 +866,9 @@ executable_freeze(hsa_executable_t executable, const char* options)
|
||||
});
|
||||
|
||||
constexpr auto CODE_OBJECT_KIND = ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT;
|
||||
constexpr auto CODE_OBJECT_LOAD = ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LOAD;
|
||||
constexpr auto CODE_OBJECT_LOAD = ROCPROFILER_CODE_OBJECT_LOAD;
|
||||
constexpr auto CODE_OBJECT_KERNEL_SYMBOL =
|
||||
ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER;
|
||||
ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER;
|
||||
|
||||
auto&& context_filter = [](const context_t* ctx) {
|
||||
return (ctx->callback_tracer && ctx->callback_tracer->domains(CODE_OBJECT_KIND) &&
|
||||
@@ -1006,9 +1002,9 @@ shutdown(hsa_executable_t executable)
|
||||
executable, code_object_unload_callback, &_unloaded);
|
||||
|
||||
constexpr auto CODE_OBJECT_KIND = ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT;
|
||||
constexpr auto CODE_OBJECT_LOAD = ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LOAD;
|
||||
constexpr auto CODE_OBJECT_LOAD = ROCPROFILER_CODE_OBJECT_LOAD;
|
||||
constexpr auto CODE_OBJECT_KERNEL_SYMBOL =
|
||||
ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER;
|
||||
ROCPROFILER_CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER;
|
||||
|
||||
auto tidx = common::get_tid();
|
||||
for(auto& itr : _unloaded)
|
||||
|
||||
@@ -103,7 +103,7 @@ TEST(rocprofiler_lib, api_id_names)
|
||||
|
||||
// Code object callback
|
||||
EXPECT_EQ(callback_names.operation_names.at(ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT).size(),
|
||||
ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LAST);
|
||||
ROCPROFILER_CODE_OBJECT_LAST);
|
||||
|
||||
{
|
||||
auto hsa_core_ids = ::rocprofiler::hsa::get_ids<ROCPROFILER_HSA_TABLE_ID_Core>();
|
||||
|
||||
مرجع در شماره جدید
Block a user