From 70b456f2a3c85d9f03040e2b968a8940dcc065ed Mon Sep 17 00:00:00 2001 From: David Galiffi Date: Thu, 27 Mar 2025 16:03:46 -0400 Subject: [PATCH] Fix "ROCPROFSYS_USE_ROCM" runtime config setting. (#144) [ROCm/rocprofiler-systems commit: b6b39af011c1d6eecd22f30ab21ba63e811b7a0d] --- .../rocprofiler-systems/source/lib/core/config.cpp | 11 +++++++++++ .../rocprofiler-systems/source/lib/core/config.hpp | 3 +++ .../source/lib/rocprof-sys/library.cpp | 2 +- .../lib/rocprof-sys/library/rocprofiler-sdk.cpp | 5 +++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/projects/rocprofiler-systems/source/lib/core/config.cpp b/projects/rocprofiler-systems/source/lib/core/config.cpp index 8fa015d72a..154be9e6a3 100644 --- a/projects/rocprofiler-systems/source/lib/core/config.cpp +++ b/projects/rocprofiler-systems/source/lib/core/config.cpp @@ -1818,6 +1818,17 @@ get_use_amd_smi() #endif } +bool +get_use_rocm() +{ +#if defined(ROCPROFSYS_USE_ROCM) && ROCPROFSYS_USE_ROCM > 0 + static auto _v = get_config()->find("ROCPROFSYS_USE_ROCM"); + return static_cast&>(*_v->second).get(); +#else + return false; +#endif +} + bool& get_use_sampling() { diff --git a/projects/rocprofiler-systems/source/lib/core/config.hpp b/projects/rocprofiler-systems/source/lib/core/config.hpp index 37936e3d79..5dc28a7a25 100644 --- a/projects/rocprofiler-systems/source/lib/core/config.hpp +++ b/projects/rocprofiler-systems/source/lib/core/config.hpp @@ -204,6 +204,9 @@ get_use_timemory() ROCPROFSYS_HOT; bool& get_use_causal() ROCPROFSYS_HOT; +bool +get_use_rocm() ROCPROFSYS_HOT; + bool get_use_amd_smi() ROCPROFSYS_HOT; diff --git a/projects/rocprofiler-systems/source/lib/rocprof-sys/library.cpp b/projects/rocprofiler-systems/source/lib/rocprof-sys/library.cpp index 2328a5f46c..e90594264c 100644 --- a/projects/rocprofiler-systems/source/lib/rocprof-sys/library.cpp +++ b/projects/rocprofiler-systems/source/lib/rocprof-sys/library.cpp @@ -820,7 +820,7 @@ rocprofsys_finalize_hidden(void) } #if defined(ROCPROFSYS_USE_ROCM) && ROCPROFSYS_USE_ROCM > 0 - // TODO: option for rocm + if(get_use_rocm()) { ROCPROFSYS_VERBOSE_F(1, "Shutting down ROCm...\n"); rocprofiler_sdk::shutdown(); diff --git a/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp b/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp index 9136b762e5..1c2d96b3d0 100644 --- a/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp +++ b/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp @@ -1297,6 +1297,11 @@ rocprofiler_configure(uint32_t version, const char* runtime_version, uint32_t pr rocprofsys::get_state() < rocprofsys::State::Active) rocprofsys_init_tooling_hidden(); + if(!rocprofsys::config::get_use_rocm()) + { + return nullptr; + } + // set the client name id->name = "rocprofsys";