From 720103d67ccf28cdf308c654dec674bdfae8de87 Mon Sep 17 00:00:00 2001 From: Tal Ben-Nun Date: Thu, 14 Dec 2023 13:56:28 -0800 Subject: [PATCH 1/5] Add option to skip barrier marker events in traces --- source/lib/core/config.cpp | 4 ++++ source/lib/omnitrace/library/roctracer.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/source/lib/core/config.cpp b/source/lib/core/config.cpp index 1e4ff5b6..0a5dbe7d 100644 --- a/source/lib/core/config.cpp +++ b/source/lib/core/config.cpp @@ -624,6 +624,10 @@ configure_settings(bool _init) "HSA API type to collect", "", "roctracer", "rocm", "advanced"); + OMNITRACE_CONFIG_SETTING(bool, "OMNITRACE_ROCTRACER_DISCARD_BARRIERS", + "Skip barrier marker events in traces", false, + "roctracer", "rocm", "perfetto", "advanced"); + OMNITRACE_CONFIG_SETTING( std::string, "OMNITRACE_ROCM_EVENTS", "ROCm hardware counters. Use ':device=N' syntax to specify collection on device " diff --git a/source/lib/omnitrace/library/roctracer.cpp b/source/lib/omnitrace/library/roctracer.cpp index 7ce7bf14..ea8cb465 100644 --- a/source/lib/omnitrace/library/roctracer.cpp +++ b/source/lib/omnitrace/library/roctracer.cpp @@ -870,6 +870,10 @@ hip_activity_callback(const char* begin, const char* end, void* arg) if(!trait::runtime_enabled::get()) return; static auto _kernel_names = std::unordered_map{}; static auto _indexes = std::unordered_map{}; + static auto _skip_barrier_packets = + config::get_setting_value( + "OMNITRACE_ROCTRACER_DISCARD_BARRIERS") + .value_or(false); const roctracer_record_t* record = reinterpret_cast(begin); const roctracer_record_t* end_record = reinterpret_cast(end); @@ -896,6 +900,7 @@ hip_activity_callback(const char* begin, const char* end, void* arg) } if(record->domain != ACTIVITY_DOMAIN_HIP_OPS) continue; if(record->op > HIP_OP_ID_BARRIER) continue; + if (_skip_barrier_packets && record->op == HIP_OP_ID_BARRIER) continue; const char* op_name = roctracer_op_string(record->domain, record->op, record->kind); From ccb94861daf215f000378e123feefe333c885d6c Mon Sep 17 00:00:00 2001 From: Tal Ben-Nun Date: Thu, 14 Dec 2023 14:00:00 -0800 Subject: [PATCH 2/5] Formatting --- source/lib/omnitrace/library/roctracer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lib/omnitrace/library/roctracer.cpp b/source/lib/omnitrace/library/roctracer.cpp index ea8cb465..ea35c234 100644 --- a/source/lib/omnitrace/library/roctracer.cpp +++ b/source/lib/omnitrace/library/roctracer.cpp @@ -900,7 +900,7 @@ hip_activity_callback(const char* begin, const char* end, void* arg) } if(record->domain != ACTIVITY_DOMAIN_HIP_OPS) continue; if(record->op > HIP_OP_ID_BARRIER) continue; - if (_skip_barrier_packets && record->op == HIP_OP_ID_BARRIER) continue; + if(_skip_barrier_packets && record->op == HIP_OP_ID_BARRIER) continue; const char* op_name = roctracer_op_string(record->domain, record->op, record->kind); From 9f951e6162c660cc1733947a688cdaa1cf4cb943 Mon Sep 17 00:00:00 2001 From: Tal Ben-Nun Date: Thu, 14 Dec 2023 15:57:11 -0800 Subject: [PATCH 3/5] Apply review suggestions Co-authored-by: Jonathan R. Madsen --- source/lib/core/config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lib/core/config.cpp b/source/lib/core/config.cpp index 0a5dbe7d..2b71cc8c 100644 --- a/source/lib/core/config.cpp +++ b/source/lib/core/config.cpp @@ -626,7 +626,7 @@ configure_settings(bool _init) OMNITRACE_CONFIG_SETTING(bool, "OMNITRACE_ROCTRACER_DISCARD_BARRIERS", "Skip barrier marker events in traces", false, - "roctracer", "rocm", "perfetto", "advanced"); + "roctracer", "rocm", "advanced"); OMNITRACE_CONFIG_SETTING( std::string, "OMNITRACE_ROCM_EVENTS", From 668bc0b8de4dbc228f3d84085362263825398908 Mon Sep 17 00:00:00 2001 From: Tal Ben-Nun Date: Mon, 18 Dec 2023 12:43:32 -0800 Subject: [PATCH 4/5] clang-format --- source/lib/core/config.cpp | 7 ++++--- source/lib/omnitrace/library/roctracer.cpp | 7 +++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/lib/core/config.cpp b/source/lib/core/config.cpp index 2b71cc8c..bc3a41b8 100644 --- a/source/lib/core/config.cpp +++ b/source/lib/core/config.cpp @@ -625,8 +625,8 @@ configure_settings(bool _init) "advanced"); OMNITRACE_CONFIG_SETTING(bool, "OMNITRACE_ROCTRACER_DISCARD_BARRIERS", - "Skip barrier marker events in traces", false, - "roctracer", "rocm", "advanced"); + "Skip barrier marker events in traces", false, "roctracer", + "rocm", "advanced"); OMNITRACE_CONFIG_SETTING( std::string, "OMNITRACE_ROCM_EVENTS", @@ -1332,7 +1332,8 @@ get_use_sampling_cputime() return static_cast&>(*_v->second).get(); } -std::set get_sampling_signals(int64_t) +std::set +get_sampling_signals(int64_t) { auto _v = std::set{}; if(get_use_causal()) diff --git a/source/lib/omnitrace/library/roctracer.cpp b/source/lib/omnitrace/library/roctracer.cpp index ea35c234..bfa133b5 100644 --- a/source/lib/omnitrace/library/roctracer.cpp +++ b/source/lib/omnitrace/library/roctracer.cpp @@ -868,11 +868,10 @@ hip_activity_callback(const char* begin, const char* end, void* arg) using Phase = critical_trace::Phase; if(!trait::runtime_enabled::get()) return; - static auto _kernel_names = std::unordered_map{}; - static auto _indexes = std::unordered_map{}; + static auto _kernel_names = std::unordered_map{}; + static auto _indexes = std::unordered_map{}; static auto _skip_barrier_packets = - config::get_setting_value( - "OMNITRACE_ROCTRACER_DISCARD_BARRIERS") + config::get_setting_value("OMNITRACE_ROCTRACER_DISCARD_BARRIERS") .value_or(false); const roctracer_record_t* record = reinterpret_cast(begin); const roctracer_record_t* end_record = From e163821231011eadac219ee59e03b83d5ae15a38 Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Wed, 10 Jan 2024 05:25:56 -0600 Subject: [PATCH 5/5] Formatting --- source/lib/core/config.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/lib/core/config.cpp b/source/lib/core/config.cpp index bc3a41b8..d3d13822 100644 --- a/source/lib/core/config.cpp +++ b/source/lib/core/config.cpp @@ -1332,8 +1332,7 @@ get_use_sampling_cputime() return static_cast&>(*_v->second).get(); } -std::set -get_sampling_signals(int64_t) +std::set get_sampling_signals(int64_t) { auto _v = std::set{}; if(get_use_causal())