SWDEV-384793 - Clean up API
Change-Id: I441b315d32df59a454e06d521e5ca8b2c229451a Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
Cette révision appartient à :
révisé par
Cedomir Dimic
Parent
ca7f965018
révision
1bc1d431d8
@@ -295,7 +295,6 @@ Output: Dictionary with fields
|
||||
Field | Content
|
||||
---|---
|
||||
`market_name` | market name
|
||||
`family` | family
|
||||
`vendor_id` | vendor id
|
||||
`device_id` | device id
|
||||
`rev_id` | revision id
|
||||
@@ -316,7 +315,6 @@ try:
|
||||
for device in devices:
|
||||
asic_info = amdsmi_get_gpu_asic_info(device)
|
||||
print(asic_info['market_name'])
|
||||
print(hex(asic_info['family']))
|
||||
print(hex(asic_info['vendor_id']))
|
||||
print(hex(asic_info['device_id']))
|
||||
print(hex(asic_info['rev_id']))
|
||||
@@ -364,46 +362,6 @@ except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
## amdsmi_get_caps_info
|
||||
Description: Returns capabilities as currently configured for the given GPU
|
||||
|
||||
Input parameters:
|
||||
* `processor_handle` device which to query
|
||||
|
||||
Output: Dictionary with fields
|
||||
|
||||
Field | Description
|
||||
---|---
|
||||
`gfx` | <table> <thead><tr><th> Subfield </th><th>Description</th></tr></thead><tbody><tr><td>`gfxip_major`</td><td> major revision of GFX IP</td></tr><tr><td>`gfxip_minor`</td><td>minor revision of GFX IP</td></tr><tr><td>`gfxip_cu_count`</td><td>number of GFX compute units</td></tr></tbody></table>
|
||||
`mm_ip_list` | List of MM engines on the device, of AmdSmiMmIp type
|
||||
`ras_supported` | `True` if ecc is supported, `False` if not
|
||||
`gfx_ip_count` | Number of GFX engines on the device
|
||||
`dma_ip_count` | Number of DMA engines on the device
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_caps_info` function:
|
||||
* `AmdSmiLibraryException`
|
||||
* `AmdSmiRetryException`
|
||||
* `AmdSmiParameterException`
|
||||
|
||||
Example:
|
||||
```python
|
||||
try:
|
||||
devices = amdsmi_get_processor_handles()
|
||||
if len(devices) == 0:
|
||||
print("No GPUs on machine")
|
||||
else:
|
||||
for device in devices:
|
||||
caps_info = amdsmi_get_caps_info(device)
|
||||
print(caps_info['ras_supported'])
|
||||
print(caps_info['gfx']['gfxip_major'])
|
||||
print(caps_info['gfx']['gfxip_minor'])
|
||||
print(caps_info['gfx']['gfxip_cu_count'])
|
||||
print(caps_info['mm_ip_list'])
|
||||
print(caps_info['gfx_ip_count'])
|
||||
print(caps_info['dma_ip_count'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
## amdsmi_get_gpu_vbios_info
|
||||
Description: Returns the static information for the VBIOS on the device.
|
||||
@@ -416,10 +374,9 @@ Output: Dictionary with fields
|
||||
Field | Description
|
||||
---|---
|
||||
`name` | vbios name
|
||||
`vbios_version` | vbios current version
|
||||
`build_date` | vbios build date
|
||||
`part_number` | vbios part number
|
||||
`vbios_version_string` | vbios version string
|
||||
`version` | vbios version string
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_gpu_vbios_info` function:
|
||||
* `AmdSmiLibraryException`
|
||||
@@ -436,10 +393,9 @@ try:
|
||||
for device in devices:
|
||||
vbios_info = amdsmi_get_gpu_vbios_info(device)
|
||||
print(vbios_info['name'])
|
||||
print(vbios_info['vbios_version'])
|
||||
print(vbios_info['build_date'])
|
||||
print(vbios_info['part_number'])
|
||||
print(vbios_info['vbios_version_string'])
|
||||
print(vbios_info['version'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
@@ -489,7 +445,7 @@ Field | Description
|
||||
---|---
|
||||
`gfx_activity`| graphics engine usage percentage (0 - 100)
|
||||
`umc_activity` | memory engine usage percentage (0 - 100)
|
||||
`mm_activity` | list of multimedia engine usages in percentage (0 - 100)
|
||||
`mm_activity` | average multimedia engine usages in percentage (0 - 100)
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_gpu_activity` function:
|
||||
* `AmdSmiLibraryException`
|
||||
@@ -523,7 +479,6 @@ Field | Description
|
||||
---|---
|
||||
`average_socket_power`| average socket power
|
||||
`gfx_voltage` | voltage gfx
|
||||
`energy_accumulator` | energy accumulator
|
||||
`power_limit` | power limit
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_power_info` function:
|
||||
@@ -542,7 +497,6 @@ try:
|
||||
power_measure = amdsmi_get_power_info(device)
|
||||
print(power_measure['average_socket_power'])
|
||||
print(power_measure['gfx_voltage'])
|
||||
print(power_measure['energy_accumulator'])
|
||||
print(power_measure['power_limit'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -605,7 +559,6 @@ Output: Dictionary with fields
|
||||
Field | Description
|
||||
---|---
|
||||
`cur_clk`| Current clock for given clock type
|
||||
`avg_clk` | Average clock for given clock type
|
||||
`min_clk` | Minimum clock for given clock type
|
||||
`max_clk` | Maximum clock for given clock type
|
||||
|
||||
@@ -624,7 +577,6 @@ try:
|
||||
for device in devices:
|
||||
clock_measure = amdsmi_get_clock_info(device, AmdSmiClkType.GFX)
|
||||
print(clock_measure['cur_clk'])
|
||||
print(clock_measure['avg_clk'])
|
||||
print(clock_measure['min_clk'])
|
||||
print(clock_measure['max_clk'])
|
||||
except AmdSmiException as e:
|
||||
@@ -852,7 +804,7 @@ Field | Description
|
||||
`name` | Name of process
|
||||
`pid` | Process ID
|
||||
`mem` | Process memory usage
|
||||
`engine_usage`| <table><thead><tr> <th> Subfield </th> <th> Description</th> </tr></thead><tbody><tr><td>`gfx`</td><td>GFX engine usage in ns</td></tr><tr><td>`compute`</td><td>Compute engine usage in ns</td></tr><tr><td>`dma`</td><td>DMA engine usage in ns </td></tr><tr><td>`enc`</td><td>Encode engine usage in ns</td></tr><tr><td>`dec`</td><td>Decode engine usage in ns</td></tr></tbody></table>
|
||||
`engine_usage`| <table><thead><tr> <th> Subfield </th> <th> Description</th> </tr></thead><tbody><tr><td>`gfx`</td><td>GFX engine usage in ns</td></tr><tr><td>`enc`</td><td>Encode engine usage in ns</td></tr></tbody></table>
|
||||
`memory_usage`| <table><thead><tr> <th> Subfield </th> <th> Description</th> </tr></thead><tbody><tr><td>`gtt_mem`</td><td>GTT memory usage</td></tr><tr><td>`cpu_mem`</td><td>CPU memory usage</td></tr><tr><td>`vram_mem`</td><td>VRAM memory usage</td></tr> </tbody></table>
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_gpu_process_info` function:
|
||||
@@ -1490,37 +1442,6 @@ except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
## amdsmi_get_power_ave
|
||||
|
||||
Description: Get the average power consumption of the device
|
||||
|
||||
Input parameters:
|
||||
|
||||
* `processor_handle` device which to query
|
||||
* `sensor_id` a 0-based sensor index. Normally, this will be 0.
|
||||
If a device has more than one sensor, it could be greater than 0.
|
||||
|
||||
Output: the average power consumption
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_power_ave` function:
|
||||
* `AmdSmiLibraryException`
|
||||
* `AmdSmiRetryException`
|
||||
* `AmdSmiParameterException`
|
||||
|
||||
Example:
|
||||
```python
|
||||
try:
|
||||
devices = gpuvsmi_get_devices()
|
||||
if len(devices) == 0:
|
||||
print("No GPUs on machine")
|
||||
else:
|
||||
for device in devices:
|
||||
power = amdsmi_get_power_ave(device)
|
||||
print(power)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
|
||||
## amdsmi_get_energy_count
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ from .amdsmi_interface import amdsmi_get_gpu_driver_version
|
||||
# # ASIC and Bus Static Information
|
||||
from .amdsmi_interface import amdsmi_get_gpu_asic_info
|
||||
from .amdsmi_interface import amdsmi_get_power_cap_info
|
||||
from .amdsmi_interface import amdsmi_get_caps_info
|
||||
|
||||
# # Microcode and VBIOS Information
|
||||
from .amdsmi_interface import amdsmi_get_gpu_vbios_info
|
||||
@@ -144,7 +143,6 @@ from .amdsmi_interface import amdsmi_get_gpu_pci_replay_counter
|
||||
from .amdsmi_interface import amdsmi_get_gpu_topo_numa_affinity
|
||||
|
||||
# # Power information
|
||||
from .amdsmi_interface import amdsmi_get_power_ave
|
||||
from .amdsmi_interface import amdsmi_get_energy_count
|
||||
|
||||
# # Memory information
|
||||
|
||||
@@ -597,7 +597,6 @@ def amdsmi_get_gpu_asic_info(
|
||||
|
||||
return {
|
||||
"market_name": asic_info.market_name.decode("utf-8"),
|
||||
"family": asic_info.family,
|
||||
"vendor_id": asic_info.vendor_id,
|
||||
"device_id": asic_info.device_id,
|
||||
"rev_id": asic_info.rev_id,
|
||||
@@ -626,32 +625,6 @@ def amdsmi_get_power_cap_info(
|
||||
"min_power_cap": power_info.min_power_cap,
|
||||
"max_power_cap": power_info.max_power_cap}
|
||||
|
||||
def amdsmi_get_caps_info(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
) -> Dict[str, Any]:
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
gpu_caps = amdsmi_wrapper.amdsmi_gpu_caps_t()
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_caps_info(
|
||||
processor_handle, ctypes.byref(gpu_caps))
|
||||
)
|
||||
|
||||
return {
|
||||
"gfx": {
|
||||
"gfxip_major": gpu_caps.gfx.gfxip_major,
|
||||
"gfxip_minor": gpu_caps.gfx.gfxip_minor,
|
||||
"gfxip_cu_count": gpu_caps.gfx.gfxip_cu_count,
|
||||
},
|
||||
"mm_ip_list": list(gpu_caps.mm.mm_ip_list),
|
||||
"ras_supported": gpu_caps.ras_supported,
|
||||
"gfx_ip_count": gpu_caps.gfx_ip_count,
|
||||
"dma_ip_count": gpu_caps.dma_ip_count,
|
||||
}
|
||||
|
||||
|
||||
def amdsmi_get_gpu_vbios_info(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
@@ -669,10 +642,9 @@ def amdsmi_get_gpu_vbios_info(
|
||||
|
||||
return {
|
||||
"name": vbios_info.name.decode("utf-8"),
|
||||
"vbios_version_string": vbios_info.vbios_version_string.decode("utf-8"),
|
||||
"version": vbios_info.version.decode("utf-8"),
|
||||
"build_date": vbios_info.build_date.decode("utf-8"),
|
||||
"part_number": vbios_info.part_number.decode("utf-8"),
|
||||
"vbios_version": vbios_info.vbios_version,
|
||||
}
|
||||
|
||||
|
||||
@@ -694,7 +666,7 @@ def amdsmi_get_gpu_activity(
|
||||
return {
|
||||
"gfx_activity": engine_usage.gfx_activity,
|
||||
"umc_activity": engine_usage.umc_activity,
|
||||
"mm_activity": list(engine_usage.mm_activity),
|
||||
"mm_activity": engine_usage.mm_activity,
|
||||
}
|
||||
|
||||
|
||||
@@ -720,7 +692,6 @@ def amdsmi_get_clock_info(
|
||||
|
||||
return {
|
||||
"cur_clk": clock_measure.cur_clk,
|
||||
"avg_clk": clock_measure.avg_clk,
|
||||
"min_clk": clock_measure.min_clk,
|
||||
"max_clk": clock_measure.max_clk,
|
||||
}
|
||||
@@ -907,10 +878,7 @@ def amdsmi_get_gpu_process_info(
|
||||
"mem": info.mem,
|
||||
"engine_usage": {
|
||||
"gfx": info.engine_usage.gfx,
|
||||
"compute": info.engine_usage.compute,
|
||||
"dma": info.engine_usage.dma,
|
||||
"enc": info.engine_usage.enc,
|
||||
"dec": info.engine_usage.dec,
|
||||
"enc": info.engine_usage.enc
|
||||
},
|
||||
"memory_usage": {
|
||||
"gtt_mem": info.memory_usage.gtt_mem,
|
||||
@@ -980,7 +948,6 @@ def amdsmi_get_power_info(
|
||||
return {
|
||||
"average_socket_power": power_measure.average_socket_power,
|
||||
"gfx_voltage": power_measure.gfx_voltage,
|
||||
"energy_accumulator": power_measure.energy_accumulator,
|
||||
"power_limit" : power_measure.power_limit,
|
||||
}
|
||||
|
||||
@@ -1838,22 +1805,6 @@ def amdsmi_set_power_cap(
|
||||
)
|
||||
|
||||
|
||||
def amdsmi_get_power_ave(processor_handle: amdsmi_wrapper.amdsmi_processor_handle, sensor_id: ctypes.c_uint32):
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
power = ctypes.c_uint64()
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_power_ave(
|
||||
processor_handle, sensor_id, ctypes.byref(power))
|
||||
)
|
||||
|
||||
return power.value
|
||||
|
||||
|
||||
def amdsmi_set_gpu_power_profile(
|
||||
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
|
||||
reserved: int,
|
||||
|
||||
@@ -498,49 +498,11 @@ struct_c__SA_amdsmi_xgmi_info_t._fields_ = [
|
||||
('xgmi_hive_id', ctypes.c_uint64),
|
||||
('xgmi_node_id', ctypes.c_uint64),
|
||||
('index', ctypes.c_uint32),
|
||||
('reserved', ctypes.c_uint32 * 9),
|
||||
('number_adapters', ctypes.c_uint32),
|
||||
('reserved', ctypes.c_uint32 * 8),
|
||||
]
|
||||
|
||||
amdsmi_xgmi_info_t = struct_c__SA_amdsmi_xgmi_info_t
|
||||
class struct_c__SA_amdsmi_gpu_caps_t(Structure):
|
||||
pass
|
||||
|
||||
class struct_c__SA_amdsmi_gpu_caps_t_0(Structure):
|
||||
pass
|
||||
|
||||
struct_c__SA_amdsmi_gpu_caps_t_0._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_gpu_caps_t_0._fields_ = [
|
||||
('gfxip_major', ctypes.c_uint32),
|
||||
('gfxip_minor', ctypes.c_uint32),
|
||||
('gfxip_cu_count', ctypes.c_uint16),
|
||||
('PADDING_0', ctypes.c_ubyte * 2),
|
||||
('reserved', ctypes.c_uint32 * 5),
|
||||
]
|
||||
|
||||
class struct_c__SA_amdsmi_gpu_caps_t_1(Structure):
|
||||
pass
|
||||
|
||||
struct_c__SA_amdsmi_gpu_caps_t_1._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_gpu_caps_t_1._fields_ = [
|
||||
('mm_ip_count', ctypes.c_ubyte),
|
||||
('mm_ip_list', ctypes.c_ubyte * 8),
|
||||
('PADDING_0', ctypes.c_ubyte * 3),
|
||||
('reserved', ctypes.c_uint32 * 5),
|
||||
]
|
||||
|
||||
struct_c__SA_amdsmi_gpu_caps_t._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_gpu_caps_t._fields_ = [
|
||||
('gfx', struct_c__SA_amdsmi_gpu_caps_t_0),
|
||||
('mm', struct_c__SA_amdsmi_gpu_caps_t_1),
|
||||
('ras_supported', ctypes.c_bool),
|
||||
('max_vf_num', ctypes.c_ubyte),
|
||||
('PADDING_0', ctypes.c_ubyte * 2),
|
||||
('gfx_ip_count', ctypes.c_uint32),
|
||||
('dma_ip_count', ctypes.c_uint32),
|
||||
('reserved', ctypes.c_uint32 * 5),
|
||||
]
|
||||
|
||||
amdsmi_gpu_caps_t = struct_c__SA_amdsmi_gpu_caps_t
|
||||
class struct_c__SA_amdsmi_vram_info_t(Structure):
|
||||
pass
|
||||
|
||||
@@ -603,10 +565,9 @@ class struct_c__SA_amdsmi_vbios_info_t(Structure):
|
||||
struct_c__SA_amdsmi_vbios_info_t._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_vbios_info_t._fields_ = [
|
||||
('name', ctypes.c_char * 64),
|
||||
('vbios_version', ctypes.c_uint32),
|
||||
('build_date', ctypes.c_char * 32),
|
||||
('part_number', ctypes.c_char * 64),
|
||||
('vbios_version_string', ctypes.c_char * 32),
|
||||
('version', ctypes.c_char * 32),
|
||||
('reserved', ctypes.c_uint32 * 15),
|
||||
]
|
||||
|
||||
@@ -641,14 +602,12 @@ class struct_c__SA_amdsmi_asic_info_t(Structure):
|
||||
struct_c__SA_amdsmi_asic_info_t._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_asic_info_t._fields_ = [
|
||||
('market_name', ctypes.c_char * 64),
|
||||
('family', ctypes.c_uint32),
|
||||
('vendor_id', ctypes.c_uint32),
|
||||
('subvendor_id', ctypes.c_uint32),
|
||||
('PADDING_0', ctypes.c_ubyte * 4),
|
||||
('device_id', ctypes.c_uint64),
|
||||
('rev_id', ctypes.c_uint32),
|
||||
('asic_serial', ctypes.c_char * 32),
|
||||
('PADDING_1', ctypes.c_ubyte * 4),
|
||||
('PADDING_0', ctypes.c_ubyte * 4),
|
||||
]
|
||||
|
||||
amdsmi_asic_info_t = struct_c__SA_amdsmi_asic_info_t
|
||||
@@ -674,14 +633,11 @@ class struct_c__SA_amdsmi_power_info_t(Structure):
|
||||
struct_c__SA_amdsmi_power_info_t._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_power_info_t._fields_ = [
|
||||
('average_socket_power', ctypes.c_uint32),
|
||||
('PADDING_0', ctypes.c_ubyte * 4),
|
||||
('energy_accumulator', ctypes.c_uint64),
|
||||
('gfx_voltage', ctypes.c_uint32),
|
||||
('soc_voltage', ctypes.c_uint32),
|
||||
('mem_voltage', ctypes.c_uint32),
|
||||
('power_limit', ctypes.c_uint32),
|
||||
('reserved', ctypes.c_uint32 * 9),
|
||||
('PADDING_1', ctypes.c_ubyte * 4),
|
||||
('reserved', ctypes.c_uint32 * 11),
|
||||
]
|
||||
|
||||
amdsmi_power_info_t = struct_c__SA_amdsmi_power_info_t
|
||||
@@ -691,7 +647,6 @@ class struct_c__SA_amdsmi_clk_info_t(Structure):
|
||||
struct_c__SA_amdsmi_clk_info_t._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_clk_info_t._fields_ = [
|
||||
('cur_clk', ctypes.c_uint32),
|
||||
('avg_clk', ctypes.c_uint32),
|
||||
('min_clk', ctypes.c_uint32),
|
||||
('max_clk', ctypes.c_uint32),
|
||||
('reserved', ctypes.c_uint32 * 4),
|
||||
@@ -705,8 +660,8 @@ struct_c__SA_amdsmi_engine_usage_t._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_engine_usage_t._fields_ = [
|
||||
('gfx_activity', ctypes.c_uint32),
|
||||
('umc_activity', ctypes.c_uint32),
|
||||
('mm_activity', ctypes.c_uint32 * 8),
|
||||
('reserved', ctypes.c_uint32 * 6),
|
||||
('mm_activity', ctypes.c_uint32),
|
||||
('reserved', ctypes.c_uint32 * 13),
|
||||
]
|
||||
|
||||
amdsmi_engine_usage_t = struct_c__SA_amdsmi_engine_usage_t
|
||||
@@ -730,10 +685,7 @@ class struct_c__SA_amdsmi_proc_info_t_0(Structure):
|
||||
struct_c__SA_amdsmi_proc_info_t_0._pack_ = 1 # source:False
|
||||
struct_c__SA_amdsmi_proc_info_t_0._fields_ = [
|
||||
('gfx', ctypes.c_uint64),
|
||||
('compute', ctypes.c_uint64),
|
||||
('dma', ctypes.c_uint64),
|
||||
('enc', ctypes.c_uint64),
|
||||
('dec', ctypes.c_uint64),
|
||||
]
|
||||
|
||||
struct_c__SA_amdsmi_proc_info_t._pack_ = 1 # source:False
|
||||
@@ -745,7 +697,7 @@ struct_c__SA_amdsmi_proc_info_t._fields_ = [
|
||||
('engine_usage', struct_c__SA_amdsmi_proc_info_t_0),
|
||||
('memory_usage', struct_c__SA_amdsmi_proc_info_t_1),
|
||||
('container_name', ctypes.c_char * 32),
|
||||
('reserved', ctypes.c_uint32 * 10),
|
||||
('reserved', ctypes.c_uint32 * 4),
|
||||
]
|
||||
|
||||
amdsmi_proc_info_t = struct_c__SA_amdsmi_proc_info_t
|
||||
@@ -1458,9 +1410,6 @@ amdsmi_get_gpu_pci_replay_counter.argtypes = [amdsmi_processor_handle, ctypes.PO
|
||||
amdsmi_set_gpu_pci_bandwidth = _libraries['libamd_smi.so'].amdsmi_set_gpu_pci_bandwidth
|
||||
amdsmi_set_gpu_pci_bandwidth.restype = amdsmi_status_t
|
||||
amdsmi_set_gpu_pci_bandwidth.argtypes = [amdsmi_processor_handle, uint64_t]
|
||||
amdsmi_get_power_ave = _libraries['libamd_smi.so'].amdsmi_get_power_ave
|
||||
amdsmi_get_power_ave.restype = amdsmi_status_t
|
||||
amdsmi_get_power_ave.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_energy_count = _libraries['libamd_smi.so'].amdsmi_get_energy_count
|
||||
amdsmi_get_energy_count.restype = amdsmi_status_t
|
||||
amdsmi_get_energy_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_float), ctypes.POINTER(ctypes.c_uint64)]
|
||||
@@ -1686,9 +1635,6 @@ amdsmi_get_power_cap_info.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.
|
||||
amdsmi_get_xgmi_info = _libraries['libamd_smi.so'].amdsmi_get_xgmi_info
|
||||
amdsmi_get_xgmi_info.restype = amdsmi_status_t
|
||||
amdsmi_get_xgmi_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_xgmi_info_t)]
|
||||
amdsmi_get_caps_info = _libraries['libamd_smi.so'].amdsmi_get_caps_info
|
||||
amdsmi_get_caps_info.restype = amdsmi_status_t
|
||||
amdsmi_get_caps_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_gpu_caps_t)]
|
||||
amdsmi_get_fw_info = _libraries['libamd_smi.so'].amdsmi_get_fw_info
|
||||
amdsmi_get_fw_info.restype = amdsmi_status_t
|
||||
amdsmi_get_fw_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_c__SA_amdsmi_fw_info_t)]
|
||||
@@ -1864,11 +1810,10 @@ __all__ = \
|
||||
'amdsmi_func_id_iter_handle_t', 'amdsmi_func_id_value_t',
|
||||
'amdsmi_fw_block_t', 'amdsmi_fw_block_t__enumvalues',
|
||||
'amdsmi_fw_info_t', 'amdsmi_get_busy_percent',
|
||||
'amdsmi_get_caps_info', 'amdsmi_get_clk_freq',
|
||||
'amdsmi_get_clock_info', 'amdsmi_get_energy_count',
|
||||
'amdsmi_get_func_iter_value', 'amdsmi_get_fw_info',
|
||||
'amdsmi_get_gpu_activity', 'amdsmi_get_gpu_asic_info',
|
||||
'amdsmi_get_gpu_available_counters',
|
||||
'amdsmi_get_clk_freq', 'amdsmi_get_clock_info',
|
||||
'amdsmi_get_energy_count', 'amdsmi_get_func_iter_value',
|
||||
'amdsmi_get_fw_info', 'amdsmi_get_gpu_activity',
|
||||
'amdsmi_get_gpu_asic_info', 'amdsmi_get_gpu_available_counters',
|
||||
'amdsmi_get_gpu_bad_page_info', 'amdsmi_get_gpu_board_info',
|
||||
'amdsmi_get_gpu_compute_process_gpus',
|
||||
'amdsmi_get_gpu_compute_process_info',
|
||||
@@ -1898,16 +1843,14 @@ __all__ = \
|
||||
'amdsmi_get_gpu_vendor_name', 'amdsmi_get_gpu_volt_metric',
|
||||
'amdsmi_get_gpu_vram_usage', 'amdsmi_get_gpu_vram_vendor',
|
||||
'amdsmi_get_minmax_bandwidth', 'amdsmi_get_pcie_link_caps',
|
||||
'amdsmi_get_pcie_link_status', 'amdsmi_get_power_ave',
|
||||
'amdsmi_get_power_cap_info', 'amdsmi_get_power_info',
|
||||
'amdsmi_get_processor_handle_from_bdf',
|
||||
'amdsmi_get_pcie_link_status', 'amdsmi_get_power_cap_info',
|
||||
'amdsmi_get_power_info', 'amdsmi_get_processor_handle_from_bdf',
|
||||
'amdsmi_get_processor_handles', 'amdsmi_get_processor_type',
|
||||
'amdsmi_get_socket_handles', 'amdsmi_get_socket_info',
|
||||
'amdsmi_get_temp_metric', 'amdsmi_get_utilization_count',
|
||||
'amdsmi_get_version', 'amdsmi_get_version_str',
|
||||
'amdsmi_get_xgmi_info', 'amdsmi_gpu_block_t',
|
||||
'amdsmi_gpu_block_t__enumvalues', 'amdsmi_gpu_caps_t',
|
||||
'amdsmi_gpu_control_counter',
|
||||
'amdsmi_gpu_block_t__enumvalues', 'amdsmi_gpu_control_counter',
|
||||
'amdsmi_gpu_counter_group_supported', 'amdsmi_gpu_create_counter',
|
||||
'amdsmi_gpu_destroy_counter', 'amdsmi_gpu_metrics_t',
|
||||
'amdsmi_gpu_read_counter', 'amdsmi_gpu_xgmi_error_status',
|
||||
@@ -1988,9 +1931,6 @@ __all__ = \
|
||||
'struct_c__SA_amdsmi_frequency_range_t',
|
||||
'struct_c__SA_amdsmi_fw_info_t',
|
||||
'struct_c__SA_amdsmi_fw_info_t_0',
|
||||
'struct_c__SA_amdsmi_gpu_caps_t',
|
||||
'struct_c__SA_amdsmi_gpu_caps_t_0',
|
||||
'struct_c__SA_amdsmi_gpu_caps_t_1',
|
||||
'struct_c__SA_amdsmi_gpu_metrics_t',
|
||||
'struct_c__SA_amdsmi_od_vddc_point_t',
|
||||
'struct_c__SA_amdsmi_od_volt_curve_t',
|
||||
|
||||
@@ -298,7 +298,6 @@ class Formatter:
|
||||
| """ + self.style.text(" 9 Get device pci throughput. Api: amdsmi_get_gpu_pci_throughput <bdf>") + """ |
|
||||
| """ + self.style.text("10 Get device pci replay counter. Api: amdsmi_get_gpu_pci_replay_counter <bdf>") + """ |
|
||||
| """ + self.style.text("11 Get topo numa affinity. Api: amdsmi_get_gpu_topo_numa_affinity <bdf>") + """ |
|
||||
| """ + self.style.text("12 Get device power ave. Api: amdsmi_get_power_ave <bdf><sensor_id>") + """ |
|
||||
| """ + self.style.text("13 Get device energy count. Api: amdsmi_get_energy_count <bdf>") + """ |
|
||||
| """ + self.style.text("14 Get device memory total. Api: amdsmi_get_gpu_memory_total <bdf>") + """ |
|
||||
| """ + self.style.text("15 Get device memory usage. Api: amdsmi_get_gpu_memory_usage <bdf>") + """ |
|
||||
@@ -375,10 +374,6 @@ class Formatter:
|
||||
##############################################
|
||||
# SMI tool wrapper
|
||||
##############################################
|
||||
def amdsmi_tool_dev_power_ave_get(dev, dic):
|
||||
sensor_id = dic["sensor_id"]
|
||||
return smi_api.amdsmi_get_power_ave(dev, ctypes.c_uint32(sensor_id))
|
||||
|
||||
def amdsmi_tool_dev_memory_total_get(dev):
|
||||
result = {}
|
||||
for memory_type in smi_api.AmdSmiMemoryType:
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur