77from .. import envs
88from . import pyamdgpu , pyamdsmi , pyrocmsmi
99from .__types__ import Detector , Device , Devices , ManufacturerEnum
10- from .__utils__ import PCIDevice , get_device_files , get_pci_devices
10+ from .__utils__ import (
11+ PCIDevice ,
12+ get_brief_version ,
13+ get_device_files ,
14+ get_pci_devices ,
15+ get_utilization ,
16+ )
1117
1218logger = logging .getLogger (__name__ )
1319
@@ -79,12 +85,8 @@ def detect(self) -> Devices | None:
7985 try :
8086 pyamdsmi .amdsmi_init ()
8187
82- sys_runtime_ver = pyamdsmi .amdsmi_get_rocm_version_major_minor ()
83- sys_runtime_ver_t = (
84- [int (v ) if v .isdigit () else v for v in sys_runtime_ver .split ("." )]
85- if sys_runtime_ver
86- else None
87- )
88+ sys_runtime_ver_original = pyamdsmi .amdsmi_get_rocm_original_version ()
89+ sys_runtime_ver = get_brief_version (sys_runtime_ver_original )
8890
8991 devs = pyamdsmi .amdsmi_get_processor_handles ()
9092 dev_files = get_device_files (
@@ -108,17 +110,11 @@ def detect(self) -> Devices | None:
108110
109111 dev_gpu_driver_info = pyamdsmi .amdsmi_get_gpu_driver_info (dev )
110112 dev_driver_ver = dev_gpu_driver_info .get ("driver_version" )
111- dev_driver_ver_t = (
112- [int (v ) if v .isdigit () else v for v in dev_driver_ver .split ("." )]
113- if dev_driver_ver
114- else None
115- )
116113
117114 dev_gpu_asic_info = pyamdsmi .amdsmi_get_gpu_asic_info (dev )
118115 dev_uuid = dev_gpu_asic_info .get ("asic_serial" )
119116 dev_name = dev_gpu_asic_info .get ("market_name" )
120117 dev_cc = None
121- dev_cc_t = None
122118 if hasattr (dev_gpu_asic_info , "target_graphics_version" ):
123119 dev_cc = dev_gpu_asic_info .target_graphics_version
124120 else :
@@ -127,7 +123,6 @@ def detect(self) -> Devices | None:
127123 dev_cc = pyrocmsmi .rsmi_dev_target_graphics_version_get (dev_idx )
128124 if dev_cc :
129125 dev_cc = dev_cc [3 :] # Strip "gfx" prefix
130- dev_cc_t = [int (v ) if v .isdigit () else v for v in dev_cc .split ("." )]
131126
132127 dev_gpu_metrics_info = pyamdsmi .amdsmi_get_gpu_metrics_info (dev )
133128 dev_cores = (
@@ -165,18 +160,14 @@ def detect(self) -> Devices | None:
165160 name = dev_name ,
166161 uuid = dev_uuid ,
167162 driver_version = dev_driver_ver ,
168- driver_version_tuple = dev_driver_ver_t ,
169163 runtime_version = sys_runtime_ver ,
170- runtime_version_tuple = sys_runtime_ver_t ,
164+ runtime_version_original = sys_runtime_ver_original ,
171165 compute_capability = dev_cc ,
172- compute_capability_tuple = dev_cc_t ,
173166 cores = dev_cores ,
174167 cores_utilization = dev_cores_util ,
175168 memory = dev_mem ,
176169 memory_used = dev_mem_used ,
177- memory_utilization = (
178- (dev_mem_used * 100 // dev_mem ) if dev_mem > 0 else 0
179- ),
170+ memory_utilization = get_utilization (dev_mem_used , dev_mem ),
180171 temperature = dev_temp ,
181172 power = dev_power ,
182173 power_used = dev_power_used ,
0 commit comments