rocprofiler_kernel_dispatch_info_t + header record for buffered counter collection (#758)
* Update include/rocprofiler-sdk
- defines.h
- ROCPROFILER_VERSION_10_0 -> ROCPROFILER_SDK_VERSION_0_0
- fwd.h
- rocprofiler_counter_record_kind_t
- rocprofiler_kernel_dispatch_info_t
- rocprofiler_record_counter_t
- has dispatch id instead of correlation id
- rocprofiler_counter_info_v0_t
- added rocprofiler_counter_id_t field
- added is_constant field
- reordered better packing
- dispatch_profile.h
- added rocprofiler_profile_counting_dispatch_record_t for use as a header record for rocprofiler_profile_counting_dispatch_data_t
- callback_tracing.h
- rocprofiler_callback_tracing_kernel_dispatch_data_t uses rocprofiler_kernel_dispatch_info_t
- buffer_tracing.h
- rocprofiler_buffer_tracing_kernel_dispatch_record_t uses rocprofiler_kernel_dispatch_info_t
* Update lib/rocprofiler-sdk/*
- transition to rocprofiler_kernel_dispatch_info_t
- set id and is_constant values for rocprofiler_counter_info_v0_t in rocprofiler_query_counter_info
* Update lib/rocprofiler-sdk-tool
- transition to rocprofiler_kernel_dispatch_info_t
* Update lib/rocprofiler-sdk/counters/tests/core.cpp
- transition to rocprofiler_kernel_dispatch_info_t
* Update samples
- transition to rocprofiler_kernel_dispatch_info_t
- transition to rocprofiler_counter_record_kind_t
* Update tests
- transition to rocprofiler_kernel_dispatch_info_t
- transition to rocprofiler_counter_record_kind_t
- improve integration test validation for counter-collection
- update serialization for new/additional types
* Fix tests/counter-collection/validate.py
- loosen restrictions on the length of counter description
* Update include/rocprofiler-sdk/buffer_tracing.h
- remove accidental packed attribute
* Update lib/rocprofiler-sdk/counters/xml/derived_counters.xml
- Add description for TCC_TAG_STALL_sum (reference: https://rocm.docs.amd.com/en/develop/conceptual/gpu-arch/mi300-mi200-performance-counters.html)
* Update tests/page-migration/validate.py
This commit is contained in:
committato da
GitHub
parent
fd3d97287c
commit
07537b6231
@@ -275,23 +275,32 @@ WriteInterceptor(const void* packets,
|
||||
corr_id->add_kern_count();
|
||||
}
|
||||
|
||||
auto dispatch_id = ++sequence_counter;
|
||||
auto callback_record =
|
||||
callback_record_t{sizeof(callback_record_t),
|
||||
rocprofiler_timestamp_t{0},
|
||||
rocprofiler_timestamp_t{0},
|
||||
queue.get_agent().get_rocp_agent()->id,
|
||||
queue.get_id(),
|
||||
kernel_id,
|
||||
dispatch_id,
|
||||
kernel_pkt.kernel_dispatch.private_segment_size,
|
||||
kernel_pkt.kernel_dispatch.group_segment_size,
|
||||
rocprofiler_dim3_t{kernel_pkt.kernel_dispatch.workgroup_size_x,
|
||||
kernel_pkt.kernel_dispatch.workgroup_size_y,
|
||||
kernel_pkt.kernel_dispatch.workgroup_size_z},
|
||||
rocprofiler_dim3_t{kernel_pkt.kernel_dispatch.grid_size_x,
|
||||
kernel_pkt.kernel_dispatch.grid_size_y,
|
||||
kernel_pkt.kernel_dispatch.grid_size_z}};
|
||||
// computes the "size" based on the offset of reserved_padding field
|
||||
constexpr auto kernel_dispatch_info_rt_size =
|
||||
common::compute_runtime_sizeof<rocprofiler_kernel_dispatch_info_t>();
|
||||
|
||||
static_assert(kernel_dispatch_info_rt_size < sizeof(rocprofiler_kernel_dispatch_info_t),
|
||||
"failed to compute size field based on offset of reserved_padding field");
|
||||
|
||||
auto dispatch_id = ++sequence_counter;
|
||||
auto callback_record = callback_record_t{
|
||||
sizeof(callback_record_t),
|
||||
rocprofiler_timestamp_t{0},
|
||||
rocprofiler_timestamp_t{0},
|
||||
rocprofiler_kernel_dispatch_info_t{
|
||||
.size = kernel_dispatch_info_rt_size,
|
||||
.agent_id = queue.get_agent().get_rocp_agent()->id,
|
||||
.queue_id = queue.get_id(),
|
||||
.kernel_id = kernel_id,
|
||||
.dispatch_id = dispatch_id,
|
||||
.private_segment_size = kernel_pkt.kernel_dispatch.private_segment_size,
|
||||
.group_segment_size = kernel_pkt.kernel_dispatch.group_segment_size,
|
||||
.workgroup_size = rocprofiler_dim3_t{kernel_pkt.kernel_dispatch.workgroup_size_x,
|
||||
kernel_pkt.kernel_dispatch.workgroup_size_y,
|
||||
kernel_pkt.kernel_dispatch.workgroup_size_z},
|
||||
.grid_size = rocprofiler_dim3_t{kernel_pkt.kernel_dispatch.grid_size_x,
|
||||
kernel_pkt.kernel_dispatch.grid_size_y,
|
||||
kernel_pkt.kernel_dispatch.grid_size_z}}};
|
||||
|
||||
{
|
||||
auto tracer_data = callback_record;
|
||||
|
||||
Fai riferimento in un nuovo problema
Block a user