bugfix to make amd-smi usage backward compatible (#836)

* Update soc_base.py

Fixes https://github.com/ROCm/rocprofiler-compute/issues/835

Signed-off-by: fxmarty-amd <felmarty@amd.com>

* address comments

---------

Signed-off-by: fxmarty-amd <felmarty@amd.com>
Этот коммит содержится в:
fxmarty-amd
2025-07-30 15:40:04 +02:00
коммит произвёл GitHub
родитель 8ad2aa55f2
Коммит 56d040156e
+8 -1
Просмотреть файл
@@ -170,7 +170,14 @@ class OmniSoC_Base:
# Parse json from amd-smi static --clock
amd_smi_mclk = run(["amd-smi", "static", "--clock", "--json"], exit_on_error=True)
amd_smi_mclk = json.loads(amd_smi_mclk)
amd_smi_mclk = amd_smi_mclk["gpu_data"][0]["clock"]["mem"]["frequency_levels"]
if isinstance(amd_smi_mclk, dict):
# The output of `amd-smi static --clock --json` is a dict with amd-smi>=26.0.0.
amd_smi_mclk = amd_smi_mclk["gpu_data"][0]["clock"]["mem"]["frequency_levels"]
else:
# For backward compatibility: the output of `amd-smi static --clock --json` used to be a list for amd-smi<26.0.0.
amd_smi_mclk = amd_smi_mclk[0]["clock"]["mem"]["frequency_levels"]
# Choose the highest level of memory clock frequency
amd_smi_mclk = amd_smi_mclk[sorted(amd_smi_mclk.keys())[-1]]
# 100 Mhz -> 100