Allow events to be grouped by HIP stream ID (#274)

- Corelate memory_copy and kernel_dispatch events with their HIP stream_id and add stream_id as an annotation in Perfetto.
- By default, group memory_copy and kernel_dispatch events in Perfetto output by their stream_id.
- Add option, with the configuration setting ROCPROFSYS_ROCM_GROUP_BY_QUEUE, to group by HSA queue instead.

---------

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
Co-authored-by: David Galiffi <David.Galiffi@amd.com>

[ROCm/rocprofiler-systems commit: 4b4a846b58]
Αυτή η υποβολή περιλαμβάνεται σε:
ajanicijamdκαιDavid Galiffi authored and GitHub committed 2025-07-23 21:28:26 -04:00
1 γονέας 0b57805e20
υποβολή e2fc692ee0
11 files changed
+416 -120

No files matched your search

@@ -372,6 +372,22 @@ config_settings(const std::shared_ptr<settings>& _config)
for(const auto& itr : buffered_tracing_info)
_add_operation_settings(itr.name, itr, buffered_operation_option_names);
// Add the ROCPROFSYS_ROCM_GROUP_BY_QUEUE setting if the hip_stream domain is present
// in supported ROCProfiler-SDK domains.
auto _has_hip_stream = std::find(_domain_choices.begin(), _domain_choices.end(),
"hip_stream") != _domain_choices.end();
if(_has_hip_stream)
{
ROCPROFSYS_CONFIG_SETTING(
bool, "ROCPROFSYS_ROCM_GROUP_BY_QUEUE",
"By default, Perfetto trace will show the HIP streams to which kernel "
"and memory copy operations submitted. With the "
"`ROCPROFSYS_ROCM_GROUP_BY_QUEUE` option, the trace will display HSA queues "
"to which these kernel and memory operations were submitted.",
false, "rocm", "perfetto");
}
}
std::unordered_set<rocprofiler_callback_tracing_kind_t>
@@ -550,6 +566,16 @@ get_rocm_events()
" ,;\t\n");
}
bool
get_group_by_queue(void)
{
std::optional<bool> _group_by_queue =
config::get_setting_value<bool>("ROCPROFSYS_ROCM_GROUP_BY_QUEUE");
bool _ret = _group_by_queue.value_or(true);
return _ret;
}
std::vector<int32_t>
get_operations(rocprofiler_callback_tracing_kind_t kindv)
{