amdsmi: py-interface: Add python interface for esmi api
Change-Id: I4a3ab1168a7d1bf011ecc9c508e111c281503520
[ROCm/amdsmi commit: 94d3c563a3]
This commit is contained in:
کامیت شده توسط
khashaik
والد
4bd015f945
کامیت
37f1d47b0e
@@ -5124,40 +5124,17 @@ except AmdSmiException as e:
|
||||
|
||||
## CPU APIs
|
||||
|
||||
### amdsmi_get_cpusocket_handles
|
||||
|
||||
**Note: CURRENTLY HARDCODED TO RETURN DUMMY DATA**
|
||||
Description: Returns list of cpusocket handle objects on current machine
|
||||
|
||||
Input parameters: `None`
|
||||
|
||||
Output: List of cpusocket handle objects
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpusocket_handles` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
sockets = amdsmi_get_cpusocket_handles()
|
||||
print('Socket numbers: {}'.format(len(sockets)))
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpusocket_info
|
||||
### amdsmi_get_processor_info
|
||||
|
||||
**Note: CURRENTLY HARDCODED TO RETURN EMPTY VALUES**
|
||||
Description: Return cpu socket index
|
||||
Description: Return processor name
|
||||
|
||||
Input parameters:
|
||||
`socket_handle` cpu socket handle
|
||||
`processor_handle` processor handle
|
||||
|
||||
Output: Socket index
|
||||
Output: Processor name
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpusocket_info` function:
|
||||
Exceptions that can be thrown by `amdsmi_get_processor_info` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
@@ -5165,38 +5142,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No processors on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
print(amdsmi_get_cpusocket_info(socket))
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpucore_handles
|
||||
|
||||
Description: Returns list of CPU core handle objects on current machine
|
||||
|
||||
Input parameters: `None`
|
||||
|
||||
Output: List of CPU core handle objects
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpucore_handles` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
core_handles = amdsmi_get_cpucore_handles()
|
||||
if len(core_handles) == 0:
|
||||
print("No CPU cores on machine")
|
||||
else:
|
||||
for core in core_handles:
|
||||
print(amdsmi_get_cpucore_info(core))
|
||||
for processor in processor_handles:
|
||||
print(amdsmi_get_processor_info(processor))
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
@@ -5215,12 +5166,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
version = amdsmi_get_cpu_hsmp_proto_ver(socket)
|
||||
for processor in processor_handles:
|
||||
version = amdsmi_get_cpu_hsmp_proto_ver(processor)
|
||||
print(version)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5240,12 +5191,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
version = amdsmi_get_cpu_smu_fw_version(socket)
|
||||
for processor in processor_handles:
|
||||
version = amdsmi_get_cpu_smu_fw_version(processor)
|
||||
print(version['debug'])
|
||||
print(version['minor'])
|
||||
print(version['major'])
|
||||
@@ -5267,12 +5218,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
prochot = amdsmi_get_cpu_prochot_status(socket)
|
||||
for processor in processor_handles:
|
||||
prochot = amdsmi_get_cpu_prochot_status(processor)
|
||||
print(prochot)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5292,12 +5243,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
clk = amdsmi_get_cpu_fclk_mclk(socket)
|
||||
for processor in processor_handles:
|
||||
clk = amdsmi_get_cpu_fclk_mclk(processor)
|
||||
for fclk, mclk in clk.items():
|
||||
print(fclk)
|
||||
print(mclk)
|
||||
@@ -5319,12 +5270,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
cclk_limit = amdsmi_get_cpu_cclk_limit(socket)
|
||||
for processor in processor_handles:
|
||||
cclk_limit = amdsmi_get_cpu_cclk_limit(processor)
|
||||
print(cclk_limit)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5344,12 +5295,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
freq_limit = amdsmi_get_cpu_socket_current_active_freq_limit(socket)
|
||||
for processor in processor_handles:
|
||||
freq_limit = amdsmi_get_cpu_socket_current_active_freq_limit(processor)
|
||||
for freq, src in freq_limit.items():
|
||||
print(freq)
|
||||
print(src)
|
||||
@@ -5371,12 +5322,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
freq_range = amdsmi_get_cpu_socket_freq_range(socket)
|
||||
for processor in processor_handles:
|
||||
freq_range = amdsmi_get_cpu_socket_freq_range(processor)
|
||||
for fmax, fmin in freq_range.items():
|
||||
print(fmax)
|
||||
print(fmin)
|
||||
@@ -5398,12 +5349,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
core_handles = amdsmi_get_cpucore_handles()
|
||||
if len(core_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU cores on machine")
|
||||
else:
|
||||
for core in core_handles:
|
||||
freq_limit = amdsmi_get_cpu_core_current_freq_limit(core)
|
||||
for processor in processor_handles:
|
||||
freq_limit = amdsmi_get_cpu_core_current_freq_limit(processor)
|
||||
print(freq_limit)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5423,12 +5374,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
sock_power = amdsmi_get_cpu_socket_power(socket)
|
||||
for processor in processor_handles:
|
||||
sock_power = amdsmi_get_cpu_socket_power(processor)
|
||||
print(sock_power)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5448,12 +5399,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
sock_power = amdsmi_get_cpu_socket_power_cap(socket)
|
||||
for processor in processor_handles:
|
||||
sock_power = amdsmi_get_cpu_socket_power_cap(processor)
|
||||
print(sock_power)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5473,12 +5424,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
sock_power = amdsmi_get_cpu_socket_power_cap_max(socket)
|
||||
for processor in processor_handles:
|
||||
sock_power = amdsmi_get_cpu_socket_power_cap_max(processor)
|
||||
print(sock_power)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5498,12 +5449,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
power = amdsmi_get_cpu_pwr_svi_telemetry_all_rails(socket)
|
||||
for processor in processor_handles:
|
||||
power = amdsmi_get_cpu_pwr_svi_telemetry_all_rails(processor)
|
||||
print(power)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5513,7 +5464,7 @@ except AmdSmiException as e:
|
||||
|
||||
Description: Set the power cap value for a given socket.
|
||||
|
||||
Input: socket index, amdsmi socket power cap value
|
||||
Input: amdsmi socket power cap value
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_socket_power_cap` function:
|
||||
|
||||
@@ -5523,12 +5474,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
power = amdsmi_set_cpu_socket_power_cap(socket, 0, 1000)
|
||||
for processor in processor_handles:
|
||||
power = amdsmi_set_cpu_socket_power_cap(processor, 1000)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
@@ -5537,7 +5488,7 @@ except AmdSmiException as e:
|
||||
|
||||
Description: Set the power efficiency profile policy.
|
||||
|
||||
Input: socket index, mode(0, 1, or 2)
|
||||
Input: mode(0, 1, or 2)
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_pwr_efficiency_mode` function:
|
||||
|
||||
@@ -5547,12 +5498,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
policy = amdsmi_set_cpu_pwr_efficiency_mode(socket, 0, 0)
|
||||
for processor in processor_handles:
|
||||
policy = amdsmi_set_cpu_pwr_efficiency_mode(processor, 0)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
@@ -5571,12 +5522,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
core_handles = amdsmi_get_cpucore_handles()
|
||||
if len(core_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU cores on machine")
|
||||
else:
|
||||
for core in core_handles:
|
||||
boost_limit = amdsmi_get_cpu_core_boostlimit(core)
|
||||
for processor in processor_handles:
|
||||
boost_limit = amdsmi_get_cpu_core_boostlimit(processor)
|
||||
print(boost_limit)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5596,12 +5547,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
c0_residency = amdsmi_get_cpu_socket_c0_residency(socket)
|
||||
for processor in processor_handles:
|
||||
c0_residency = amdsmi_get_cpu_socket_c0_residency(processor)
|
||||
print(c0_residency)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5621,12 +5572,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
core_handles = amdsmi_get_cpucore_handles()
|
||||
if len(core_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU cores on machine")
|
||||
else:
|
||||
for core in core_handles:
|
||||
boost_limit = amdsmi_set_cpu_core_boostlimit(core, 1000)
|
||||
for processor in processor_handles:
|
||||
boost_limit = amdsmi_set_cpu_core_boostlimit(processor, 1000)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
@@ -5645,12 +5596,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
boost_limit = amdsmi_set_cpu_socket_boostlimit(socket, 1000)
|
||||
for processor in processor_handles:
|
||||
boost_limit = amdsmi_set_cpu_socket_boostlimit(processor, 1000)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
@@ -5669,12 +5620,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
ddr_bw = amdsmi_get_cpu_ddr_bw(socket)
|
||||
for processor in processor_handles:
|
||||
ddr_bw = amdsmi_get_cpu_ddr_bw(processor)
|
||||
print(ddr_bw['max_bw'])
|
||||
print(ddr_bw['utilized_bw'])
|
||||
print(ddr_bw['utilized_pct'])
|
||||
@@ -5696,12 +5647,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
ptmon = amdsmi_get_cpu_socket_temperature(socket)
|
||||
for processor in processor_handles:
|
||||
ptmon = amdsmi_get_cpu_socket_temperature(processor)
|
||||
print(ptmon)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
@@ -5721,12 +5672,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_temp_range_and_refresh_rate(socket)
|
||||
for processor in processor_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_temp_range_and_refresh_rate(processor)
|
||||
print(dimm['range'])
|
||||
print(dimm['ref_rate'])
|
||||
except AmdSmiException as e:
|
||||
@@ -5747,12 +5698,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_power_consumption(socket)
|
||||
for processor in processor_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_power_consumption(processor)
|
||||
print(dimm['power'])
|
||||
print(dimm['update_rate'])
|
||||
print(dimm['dimm_addr'])
|
||||
@@ -5774,12 +5725,12 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_thermal_sensor(socket)
|
||||
for processor in processor_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_thermal_sensor(processor)
|
||||
print(dimm['sensor'])
|
||||
print(dimm['update_rate'])
|
||||
print(dimm['dimm_addr'])
|
||||
@@ -5802,12 +5753,313 @@ Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
xgmi_width = amdsmi_set_cpu_xgmi_width(socket, 0, 100)
|
||||
for processor in processor_handles:
|
||||
xgmi_width = amdsmi_set_cpu_xgmi_width(processor, 0, 100)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_set_cpu_gmi3_link_width_range
|
||||
|
||||
Description: Set gmi3 link width range.
|
||||
|
||||
Input: minimum & maximum link width to be set.
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_gmi3_link_width_range` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
gmi_link_width = amdsmi_set_cpu_gmi3_link_width_range(processor, 0, 100)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_cpu_apb_enable
|
||||
|
||||
Description: Enable APB.
|
||||
|
||||
Input: amdsmi processor handle
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_cpu_apb_enable` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
apb_enable = amdsmi_cpu_apb_enable(processor)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_cpu_apb_disable
|
||||
|
||||
Description: Disable APB.
|
||||
|
||||
Input: pstate value
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_cpu_apb_disable` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
apb_disable = amdsmi_cpu_apb_disable(processor, 0)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_set_cpu_socket_lclk_dpm_level
|
||||
|
||||
Description: Set NBIO lclk dpm level value.
|
||||
|
||||
Input: nbio id, min value, max value
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_socket_lclk_dpm_level` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
nbio = amdsmi_set_cpu_socket_lclk_dpm_level(socket, 0, 0, 2)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_socket_lclk_dpm_level
|
||||
|
||||
Description: Get NBIO LCLK dpm level.
|
||||
|
||||
Output: nbio id
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_socket_lclk_dpm_level` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
nbio = amdsmi_get_cpu_socket_lclk_dpm_level(processor)
|
||||
print(nbio['max_dpm_level'])
|
||||
print(nbio['max_dpm_level'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_set_cpu_pcie_link_rate
|
||||
|
||||
Description: Set pcie link rate.
|
||||
|
||||
Input: rate control value
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_pcie_link_rate` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
link_rate = amdsmi_set_cpu_pcie_link_rate(processor, 0, 0)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_set_cpu_df_pstate_range
|
||||
|
||||
Description: Set df pstate range.
|
||||
|
||||
Input: max pstate, min pstate
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_df_pstate_range` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
pstate_range = amdsmi_set_cpu_df_pstate_range(processor, 0, 2)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_current_io_bandwidth
|
||||
|
||||
Description: Get current input output bandwidth.
|
||||
|
||||
Output: link id and bw type to which io bandwidth to be obtained
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_current_io_bandwidth` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
io_bw = amdsmi_get_cpu_current_io_bandwidth(processor)
|
||||
print(io_bw)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_current_xgmi_bw
|
||||
|
||||
Description: Get current xgmi bandwidth.
|
||||
|
||||
Output: amdsmi link id and bw type to which xgmi bandwidth to be obtained
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_current_xgmi_bw` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
xgmi_bw = amdsmi_get_cpu_current_xgmi_bw(processor)
|
||||
print(xgmi_bw)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_metrics_table_version
|
||||
|
||||
Description: Get metrics table version.
|
||||
|
||||
Output: amdsmi metrics table version
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_metrics_table_version` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
met_ver = amdsmi_get_metrics_table_version(processor)
|
||||
print(met_ver)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_metrics_table
|
||||
|
||||
Description: Get metrics table
|
||||
|
||||
Output: metric table data
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_metrics_table` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
mtbl = amdsmi_get_metrics_table(processor)
|
||||
print(mtbl['accumulation_counter'])
|
||||
print(mtbl['max_socket_temperature'])
|
||||
print(mtbl['max_vr_temperature'])
|
||||
print(mtbl['max_hbm_temperature'])
|
||||
print(mtbl['socket_power_limit'])
|
||||
print(mtbl['max_socket_power_limit'])
|
||||
print(mtbl['socket_power'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_first_online_core_on_cpu_socket
|
||||
|
||||
Description: Get first online core on cpu socket.
|
||||
|
||||
Output: first online core on cpu socket
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_first_online_core_on_cpu_socket` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
processor_handles = amdsmi_get_processor_handles()
|
||||
if len(processor_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for processor in processor_handles:
|
||||
pcore_ind = amdsmi_first_online_core_on_cpu_socket(processor)
|
||||
print(pcore_ind)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
@@ -32,8 +32,8 @@ from .amdsmi_interface import amdsmi_get_socket_info
|
||||
# ESMI Dependent Functions
|
||||
try:
|
||||
from .amdsmi_interface import amdsmi_get_cpusocket_handles
|
||||
from .amdsmi_interface import amdsmi_get_cpusocket_info
|
||||
from .amdsmi_interface import amdsmi_get_cpucore_handles
|
||||
from .amdsmi_interface import amdsmi_get_processor_info
|
||||
from .amdsmi_interface import amdsmi_get_cpu_hsmp_proto_ver
|
||||
from .amdsmi_interface import amdsmi_get_cpu_smu_fw_version
|
||||
from .amdsmi_interface import amdsmi_get_cpu_core_energy
|
||||
@@ -60,6 +60,18 @@ try:
|
||||
from .amdsmi_interface import amdsmi_get_cpu_dimm_power_consumption
|
||||
from .amdsmi_interface import amdsmi_get_cpu_dimm_thermal_sensor
|
||||
from .amdsmi_interface import amdsmi_set_cpu_xgmi_width
|
||||
from .amdsmi_interface import amdsmi_set_cpu_gmi3_link_width_range
|
||||
from .amdsmi_interface import amdsmi_cpu_apb_enable
|
||||
from .amdsmi_interface import amdsmi_cpu_apb_disable
|
||||
from .amdsmi_interface import amdsmi_set_cpu_socket_lclk_dpm_level
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_lclk_dpm_level
|
||||
from .amdsmi_interface import amdsmi_set_cpu_pcie_link_rate
|
||||
from .amdsmi_interface import amdsmi_set_cpu_df_pstate_range
|
||||
from .amdsmi_interface import amdsmi_get_cpu_current_io_bandwidth
|
||||
from .amdsmi_interface import amdsmi_get_cpu_current_xgmi_bw
|
||||
from .amdsmi_interface import amdsmi_get_metrics_table_version
|
||||
from .amdsmi_interface import amdsmi_get_metrics_table
|
||||
from .amdsmi_interface import amdsmi_first_online_core_on_cpu_socket
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
||||
تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
Diff را بارگزاری کن
@@ -181,6 +181,16 @@ try:
|
||||
except OSError as error:
|
||||
print(error)
|
||||
print("Unable to find amdsmi library try installing amd-smi-lib from your package manager")
|
||||
class FunctionFactoryStub:
|
||||
def __getattr__(self, _):
|
||||
return ctypes.CFUNCTYPE(lambda y:y)
|
||||
|
||||
# libraries['FIXME_STUB'] explanation
|
||||
# As you did not list (-l libraryname.so) a library that exports this function
|
||||
# This is a non-working stub instead.
|
||||
# You can either re-run clan2py with -l /path/to/library.so
|
||||
# Or manually fix this by comment the ctypes.CDLL loading
|
||||
_libraries['FIXME_STUB'] = FunctionFactoryStub() # ctypes.CDLL('FIXME_STUB')
|
||||
|
||||
|
||||
|
||||
@@ -191,12 +201,14 @@ amdsmi_init_flags_t__enumvalues = {
|
||||
2: 'AMDSMI_INIT_AMD_GPUS',
|
||||
4: 'AMDSMI_INIT_NON_AMD_CPUS',
|
||||
8: 'AMDSMI_INIT_NON_AMD_GPUS',
|
||||
3: 'AMDSMI_INIT_AMD_APUS',
|
||||
}
|
||||
AMDSMI_INIT_ALL_PROCESSORS = 0
|
||||
AMDSMI_INIT_AMD_CPUS = 1
|
||||
AMDSMI_INIT_AMD_GPUS = 2
|
||||
AMDSMI_INIT_NON_AMD_CPUS = 4
|
||||
AMDSMI_INIT_NON_AMD_GPUS = 8
|
||||
AMDSMI_INIT_AMD_APUS = 3
|
||||
amdsmi_init_flags_t = ctypes.c_uint32 # enum
|
||||
|
||||
# values for enumeration 'amdsmi_mm_ip_t'
|
||||
@@ -1715,24 +1727,26 @@ amdsmi_shut_down.argtypes = []
|
||||
amdsmi_get_socket_handles = _libraries['libamd_smi.so'].amdsmi_get_socket_handles
|
||||
amdsmi_get_socket_handles.restype = amdsmi_status_t
|
||||
amdsmi_get_socket_handles.argtypes = [ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
|
||||
amdsmi_get_cpusocket_handles = _libraries['libamd_smi.so'].amdsmi_get_cpusocket_handles
|
||||
amdsmi_get_cpusocket_handles = _libraries['FIXME_STUB'].amdsmi_get_cpusocket_handles
|
||||
amdsmi_get_cpusocket_handles.restype = amdsmi_status_t
|
||||
amdsmi_get_cpusocket_handles.argtypes = [ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
|
||||
size_t = ctypes.c_uint64
|
||||
amdsmi_get_socket_info = _libraries['libamd_smi.so'].amdsmi_get_socket_info
|
||||
amdsmi_get_socket_info.restype = amdsmi_status_t
|
||||
amdsmi_get_socket_info.argtypes = [amdsmi_socket_handle, size_t, ctypes.POINTER(ctypes.c_char)]
|
||||
uint32_t = ctypes.c_uint32
|
||||
amdsmi_get_cpusocket_info = _libraries['libamd_smi.so'].amdsmi_get_cpusocket_info
|
||||
amdsmi_get_cpusocket_info.restype = amdsmi_status_t
|
||||
amdsmi_get_cpusocket_info.argtypes = [amdsmi_cpusocket_handle, uint32_t]
|
||||
amdsmi_get_cpucore_info = _libraries['libamd_smi.so'].amdsmi_get_cpucore_info
|
||||
amdsmi_get_cpucore_info.restype = amdsmi_status_t
|
||||
amdsmi_get_cpucore_info.argtypes = [amdsmi_processor_handle, uint32_t]
|
||||
amdsmi_get_processor_info = _libraries['libamd_smi.so'].amdsmi_get_processor_info
|
||||
amdsmi_get_processor_info.restype = amdsmi_status_t
|
||||
amdsmi_get_processor_info.argtypes = [amdsmi_processor_handle, size_t, ctypes.POINTER(ctypes.c_char)]
|
||||
amdsmi_get_processor_count_from_handles = _libraries['libamd_smi.so'].amdsmi_get_processor_count_from_handles
|
||||
amdsmi_get_processor_count_from_handles.restype = amdsmi_status_t
|
||||
amdsmi_get_processor_count_from_handles.argtypes = [ctypes.POINTER(ctypes.POINTER(None)), ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_processor_handles_by_type = _libraries['libamd_smi.so'].amdsmi_get_processor_handles_by_type
|
||||
amdsmi_get_processor_handles_by_type.restype = amdsmi_status_t
|
||||
amdsmi_get_processor_handles_by_type.argtypes = [amdsmi_socket_handle, processor_type_t, ctypes.POINTER(ctypes.POINTER(None)), ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_processor_handles = _libraries['libamd_smi.so'].amdsmi_get_processor_handles
|
||||
amdsmi_get_processor_handles.restype = amdsmi_status_t
|
||||
amdsmi_get_processor_handles.argtypes = [amdsmi_socket_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
|
||||
amdsmi_get_cpucore_handles = _libraries['libamd_smi.so'].amdsmi_get_cpucore_handles
|
||||
amdsmi_get_cpucore_handles = _libraries['FIXME_STUB'].amdsmi_get_cpucore_handles
|
||||
amdsmi_get_cpucore_handles.restype = amdsmi_status_t
|
||||
amdsmi_get_cpucore_handles.argtypes = [amdsmi_cpusocket_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.POINTER(None))]
|
||||
amdsmi_get_processor_type = _libraries['libamd_smi.so'].amdsmi_get_processor_type
|
||||
@@ -1750,6 +1764,7 @@ amdsmi_get_gpu_revision.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctyp
|
||||
amdsmi_get_gpu_vendor_name = _libraries['libamd_smi.so'].amdsmi_get_gpu_vendor_name
|
||||
amdsmi_get_gpu_vendor_name.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_vendor_name.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), size_t]
|
||||
uint32_t = ctypes.c_uint32
|
||||
amdsmi_get_gpu_vram_vendor = _libraries['libamd_smi.so'].amdsmi_get_gpu_vram_vendor
|
||||
amdsmi_get_gpu_vram_vendor.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_vram_vendor.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), uint32_t]
|
||||
@@ -2204,122 +2219,122 @@ amdsmi_get_gpu_metrics_log.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_metrics_log.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_get_cpu_core_energy = _libraries['libamd_smi.so'].amdsmi_get_cpu_core_energy
|
||||
amdsmi_get_cpu_core_energy.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_core_energy.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_cpu_core_energy.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_cpu_socket_energy = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_energy
|
||||
amdsmi_get_cpu_socket_energy.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_energy.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_cpu_socket_energy.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
amdsmi_get_cpu_smu_fw_version = _libraries['libamd_smi.so'].amdsmi_get_cpu_smu_fw_version
|
||||
amdsmi_get_cpu_smu_fw_version.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_smu_fw_version.argtypes = [amdsmi_cpusocket_handle, ctypes.POINTER(struct_amdsmi_smu_fw_version_t)]
|
||||
amdsmi_get_cpu_smu_fw_version.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_smu_fw_version_t)]
|
||||
amdsmi_get_cpu_hsmp_proto_ver = _libraries['libamd_smi.so'].amdsmi_get_cpu_hsmp_proto_ver
|
||||
amdsmi_get_cpu_hsmp_proto_ver.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_hsmp_proto_ver.argtypes = [amdsmi_cpusocket_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_hsmp_proto_ver.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_prochot_status = _libraries['libamd_smi.so'].amdsmi_get_cpu_prochot_status
|
||||
amdsmi_get_cpu_prochot_status.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_prochot_status.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_prochot_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_fclk_mclk = _libraries['libamd_smi.so'].amdsmi_get_cpu_fclk_mclk
|
||||
amdsmi_get_cpu_fclk_mclk.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_fclk_mclk.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_fclk_mclk.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_cclk_limit = _libraries['libamd_smi.so'].amdsmi_get_cpu_cclk_limit
|
||||
amdsmi_get_cpu_cclk_limit.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_cclk_limit.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_cclk_limit.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_current_active_freq_limit = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_current_active_freq_limit
|
||||
amdsmi_get_cpu_socket_current_active_freq_limit.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_current_active_freq_limit.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint16), ctypes.POINTER(ctypes.POINTER(ctypes.c_char))]
|
||||
amdsmi_get_cpu_socket_current_active_freq_limit.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16), ctypes.POINTER(ctypes.POINTER(ctypes.c_char))]
|
||||
amdsmi_get_cpu_socket_freq_range = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_freq_range
|
||||
amdsmi_get_cpu_socket_freq_range.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_freq_range.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint16), ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_cpu_socket_freq_range.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint16), ctypes.POINTER(ctypes.c_uint16)]
|
||||
amdsmi_get_cpu_core_current_freq_limit = _libraries['libamd_smi.so'].amdsmi_get_cpu_core_current_freq_limit
|
||||
amdsmi_get_cpu_core_current_freq_limit.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_core_current_freq_limit.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_core_current_freq_limit.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_power = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_power
|
||||
amdsmi_get_cpu_socket_power.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_power.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_power.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_power_cap = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_power_cap
|
||||
amdsmi_get_cpu_socket_power_cap.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_power_cap.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_power_cap.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_power_cap_max = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_power_cap_max
|
||||
amdsmi_get_cpu_socket_power_cap_max.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_power_cap_max.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_power_cap_max.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_pwr_svi_telemetry_all_rails = _libraries['libamd_smi.so'].amdsmi_get_cpu_pwr_svi_telemetry_all_rails
|
||||
amdsmi_get_cpu_pwr_svi_telemetry_all_rails.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_pwr_svi_telemetry_all_rails.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_pwr_svi_telemetry_all_rails.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_set_cpu_socket_power_cap = _libraries['libamd_smi.so'].amdsmi_set_cpu_socket_power_cap
|
||||
amdsmi_set_cpu_socket_power_cap.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_socket_power_cap.argtypes = [amdsmi_cpusocket_handle, uint32_t, uint32_t]
|
||||
amdsmi_set_cpu_socket_power_cap.argtypes = [amdsmi_processor_handle, uint32_t]
|
||||
uint8_t = ctypes.c_uint8
|
||||
amdsmi_set_cpu_pwr_efficiency_mode = _libraries['libamd_smi.so'].amdsmi_set_cpu_pwr_efficiency_mode
|
||||
amdsmi_set_cpu_pwr_efficiency_mode.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_pwr_efficiency_mode.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t]
|
||||
amdsmi_set_cpu_pwr_efficiency_mode.argtypes = [amdsmi_processor_handle, uint8_t]
|
||||
amdsmi_get_cpu_core_boostlimit = _libraries['libamd_smi.so'].amdsmi_get_cpu_core_boostlimit
|
||||
amdsmi_get_cpu_core_boostlimit.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_core_boostlimit.argtypes = [amdsmi_processor_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_core_boostlimit.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_c0_residency = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_c0_residency
|
||||
amdsmi_get_cpu_socket_c0_residency.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_c0_residency.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_c0_residency.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_set_cpu_core_boostlimit = _libraries['libamd_smi.so'].amdsmi_set_cpu_core_boostlimit
|
||||
amdsmi_set_cpu_core_boostlimit.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_core_boostlimit.argtypes = [amdsmi_processor_handle, uint32_t, uint32_t]
|
||||
amdsmi_set_cpu_core_boostlimit.argtypes = [amdsmi_processor_handle, uint32_t]
|
||||
amdsmi_set_cpu_socket_boostlimit = _libraries['libamd_smi.so'].amdsmi_set_cpu_socket_boostlimit
|
||||
amdsmi_set_cpu_socket_boostlimit.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_socket_boostlimit.argtypes = [amdsmi_cpusocket_handle, uint32_t, uint32_t]
|
||||
amdsmi_set_cpu_socket_boostlimit.argtypes = [amdsmi_processor_handle, uint32_t]
|
||||
amdsmi_get_cpu_ddr_bw = _libraries['libamd_smi.so'].amdsmi_get_cpu_ddr_bw
|
||||
amdsmi_get_cpu_ddr_bw.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_ddr_bw.argtypes = [amdsmi_cpusocket_handle, ctypes.POINTER(struct_amdsmi_ddr_bw_metrics_t)]
|
||||
amdsmi_get_cpu_ddr_bw.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_ddr_bw_metrics_t)]
|
||||
amdsmi_get_cpu_socket_temperature = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_temperature
|
||||
amdsmi_get_cpu_socket_temperature.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_temperature.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_socket_temperature.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_dimm_temp_range_and_refresh_rate = _libraries['libamd_smi.so'].amdsmi_get_cpu_dimm_temp_range_and_refresh_rate
|
||||
amdsmi_get_cpu_dimm_temp_range_and_refresh_rate.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_dimm_temp_range_and_refresh_rate.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, ctypes.POINTER(struct_amdsmi_temp_range_refresh_rate_t)]
|
||||
amdsmi_get_cpu_dimm_temp_range_and_refresh_rate.argtypes = [amdsmi_processor_handle, uint8_t, ctypes.POINTER(struct_amdsmi_temp_range_refresh_rate_t)]
|
||||
amdsmi_get_cpu_dimm_power_consumption = _libraries['libamd_smi.so'].amdsmi_get_cpu_dimm_power_consumption
|
||||
amdsmi_get_cpu_dimm_power_consumption.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_dimm_power_consumption.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, ctypes.POINTER(struct_amdsmi_dimm_power_t)]
|
||||
amdsmi_get_cpu_dimm_power_consumption.argtypes = [amdsmi_processor_handle, uint8_t, ctypes.POINTER(struct_amdsmi_dimm_power_t)]
|
||||
amdsmi_get_cpu_dimm_thermal_sensor = _libraries['libamd_smi.so'].amdsmi_get_cpu_dimm_thermal_sensor
|
||||
amdsmi_get_cpu_dimm_thermal_sensor.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_dimm_thermal_sensor.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, ctypes.POINTER(struct_amdsmi_dimm_thermal_t)]
|
||||
amdsmi_get_cpu_dimm_thermal_sensor.argtypes = [amdsmi_processor_handle, uint8_t, ctypes.POINTER(struct_amdsmi_dimm_thermal_t)]
|
||||
amdsmi_set_cpu_xgmi_width = _libraries['libamd_smi.so'].amdsmi_set_cpu_xgmi_width
|
||||
amdsmi_set_cpu_xgmi_width.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_xgmi_width.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t]
|
||||
amdsmi_set_cpu_xgmi_width.argtypes = [amdsmi_processor_handle, uint8_t, uint8_t]
|
||||
amdsmi_set_cpu_gmi3_link_width_range = _libraries['libamd_smi.so'].amdsmi_set_cpu_gmi3_link_width_range
|
||||
amdsmi_set_cpu_gmi3_link_width_range.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_gmi3_link_width_range.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, uint8_t]
|
||||
amdsmi_set_cpu_gmi3_link_width_range.argtypes = [amdsmi_processor_handle, uint8_t, uint8_t]
|
||||
amdsmi_cpu_apb_enable = _libraries['libamd_smi.so'].amdsmi_cpu_apb_enable
|
||||
amdsmi_cpu_apb_enable.restype = amdsmi_status_t
|
||||
amdsmi_cpu_apb_enable.argtypes = [amdsmi_cpusocket_handle, uint32_t]
|
||||
amdsmi_cpu_apb_enable.argtypes = [amdsmi_processor_handle]
|
||||
amdsmi_cpu_apb_disable = _libraries['libamd_smi.so'].amdsmi_cpu_apb_disable
|
||||
amdsmi_cpu_apb_disable.restype = amdsmi_status_t
|
||||
amdsmi_cpu_apb_disable.argtypes = [amdsmi_cpusocket_handle, uint32_t, uint8_t]
|
||||
amdsmi_cpu_apb_disable.argtypes = [amdsmi_processor_handle, uint8_t]
|
||||
amdsmi_set_cpu_socket_lclk_dpm_level = _libraries['libamd_smi.so'].amdsmi_set_cpu_socket_lclk_dpm_level
|
||||
amdsmi_set_cpu_socket_lclk_dpm_level.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_socket_lclk_dpm_level.argtypes = [amdsmi_cpusocket_handle, uint32_t, uint8_t, uint8_t, uint8_t]
|
||||
amdsmi_set_cpu_socket_lclk_dpm_level.argtypes = [amdsmi_processor_handle, uint8_t, uint8_t, uint8_t]
|
||||
amdsmi_get_cpu_socket_lclk_dpm_level = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_lclk_dpm_level
|
||||
amdsmi_get_cpu_socket_lclk_dpm_level.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_lclk_dpm_level.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, ctypes.POINTER(struct_amdsmi_dpm_level_t)]
|
||||
amdsmi_get_cpu_socket_lclk_dpm_level.argtypes = [amdsmi_processor_handle, uint8_t, ctypes.POINTER(struct_amdsmi_dpm_level_t)]
|
||||
amdsmi_set_cpu_pcie_link_rate = _libraries['libamd_smi.so'].amdsmi_set_cpu_pcie_link_rate
|
||||
amdsmi_set_cpu_pcie_link_rate.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_pcie_link_rate.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, ctypes.POINTER(ctypes.c_ubyte)]
|
||||
amdsmi_set_cpu_pcie_link_rate.argtypes = [amdsmi_processor_handle, uint8_t, ctypes.POINTER(ctypes.c_ubyte)]
|
||||
amdsmi_set_cpu_df_pstate_range = _libraries['libamd_smi.so'].amdsmi_set_cpu_df_pstate_range
|
||||
amdsmi_set_cpu_df_pstate_range.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_df_pstate_range.argtypes = [amdsmi_cpusocket_handle, uint8_t, uint8_t, uint8_t]
|
||||
amdsmi_set_cpu_df_pstate_range.argtypes = [amdsmi_processor_handle, uint8_t, uint8_t]
|
||||
amdsmi_get_cpu_current_io_bandwidth = _libraries['libamd_smi.so'].amdsmi_get_cpu_current_io_bandwidth
|
||||
amdsmi_get_cpu_current_io_bandwidth.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_current_io_bandwidth.argtypes = [amdsmi_cpusocket_handle, uint8_t, amdsmi_link_id_bw_type_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_current_io_bandwidth.argtypes = [amdsmi_processor_handle, amdsmi_link_id_bw_type_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_current_xgmi_bw = _libraries['libamd_smi.so'].amdsmi_get_cpu_current_xgmi_bw
|
||||
amdsmi_get_cpu_current_xgmi_bw.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_current_xgmi_bw.argtypes = [amdsmi_cpusocket_handle, amdsmi_link_id_bw_type_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_cpu_current_xgmi_bw.argtypes = [amdsmi_processor_handle, amdsmi_link_id_bw_type_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_metrics_table_version = _libraries['libamd_smi.so'].amdsmi_get_metrics_table_version
|
||||
amdsmi_get_metrics_table_version.restype = amdsmi_status_t
|
||||
amdsmi_get_metrics_table_version.argtypes = [amdsmi_cpusocket_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_metrics_table_version.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
class struct_hsmp_metric_table(Structure):
|
||||
pass
|
||||
|
||||
amdsmi_get_metrics_table = _libraries['libamd_smi.so'].amdsmi_get_metrics_table
|
||||
amdsmi_get_metrics_table.restype = amdsmi_status_t
|
||||
amdsmi_get_metrics_table.argtypes = [amdsmi_cpusocket_handle, uint8_t, ctypes.POINTER(struct_hsmp_metric_table)]
|
||||
amdsmi_get_metrics_table.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_hsmp_metric_table)]
|
||||
amdsmi_first_online_core_on_cpu_socket = _libraries['libamd_smi.so'].amdsmi_first_online_core_on_cpu_socket
|
||||
amdsmi_first_online_core_on_cpu_socket.restype = amdsmi_status_t
|
||||
amdsmi_first_online_core_on_cpu_socket.argtypes = [amdsmi_cpusocket_handle, uint32_t, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_first_online_core_on_cpu_socket.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_get_esmi_err_msg = _libraries['libamd_smi.so'].amdsmi_get_esmi_err_msg
|
||||
amdsmi_get_esmi_err_msg.restype = ctypes.POINTER(ctypes.POINTER(ctypes.c_char))
|
||||
amdsmi_get_esmi_err_msg.argtypes = [amdsmi_status_t, ctypes.POINTER(ctypes.POINTER(ctypes.c_char))]
|
||||
@@ -2364,9 +2379,10 @@ __all__ = \
|
||||
'AMDSMI_GPU_BLOCK_SEM', 'AMDSMI_GPU_BLOCK_SMN',
|
||||
'AMDSMI_GPU_BLOCK_UMC', 'AMDSMI_GPU_BLOCK_XGMI_WAFL',
|
||||
'AMDSMI_HSMP_TIMEOUT', 'AMDSMI_INIT_ALL_PROCESSORS',
|
||||
'AMDSMI_INIT_AMD_CPUS', 'AMDSMI_INIT_AMD_GPUS',
|
||||
'AMDSMI_INIT_NON_AMD_CPUS', 'AMDSMI_INIT_NON_AMD_GPUS',
|
||||
'AMDSMI_INVALID_POWER', 'AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES',
|
||||
'AMDSMI_INIT_AMD_APUS', 'AMDSMI_INIT_AMD_CPUS',
|
||||
'AMDSMI_INIT_AMD_GPUS', 'AMDSMI_INIT_NON_AMD_CPUS',
|
||||
'AMDSMI_INIT_NON_AMD_GPUS', 'AMDSMI_INVALID_POWER',
|
||||
'AMDSMI_IOLINK_TYPE_NUMIOLINKTYPES',
|
||||
'AMDSMI_IOLINK_TYPE_PCIEXPRESS', 'AMDSMI_IOLINK_TYPE_SIZE',
|
||||
'AMDSMI_IOLINK_TYPE_UNDEFINED', 'AMDSMI_IOLINK_TYPE_XGMI',
|
||||
'AMDSMI_MEM_PAGE_STATUS_PENDING',
|
||||
@@ -2526,8 +2542,7 @@ __all__ = \
|
||||
'amdsmi_get_cpu_socket_power', 'amdsmi_get_cpu_socket_power_cap',
|
||||
'amdsmi_get_cpu_socket_power_cap_max',
|
||||
'amdsmi_get_cpu_socket_temperature', 'amdsmi_get_cpucore_handles',
|
||||
'amdsmi_get_cpucore_info', 'amdsmi_get_cpusocket_handles',
|
||||
'amdsmi_get_cpusocket_info', 'amdsmi_get_energy_count',
|
||||
'amdsmi_get_cpusocket_handles', 'amdsmi_get_energy_count',
|
||||
'amdsmi_get_esmi_err_msg', 'amdsmi_get_fw_info',
|
||||
'amdsmi_get_gpu_activity', 'amdsmi_get_gpu_asic_info',
|
||||
'amdsmi_get_gpu_available_counters',
|
||||
@@ -2619,8 +2634,11 @@ __all__ = \
|
||||
'amdsmi_get_minmax_bandwidth_between_processors',
|
||||
'amdsmi_get_pcie_link_caps', 'amdsmi_get_pcie_link_status',
|
||||
'amdsmi_get_power_cap_info', 'amdsmi_get_power_info',
|
||||
'amdsmi_get_processor_count_from_handles',
|
||||
'amdsmi_get_processor_handle_from_bdf',
|
||||
'amdsmi_get_processor_handles', 'amdsmi_get_processor_type',
|
||||
'amdsmi_get_processor_handles',
|
||||
'amdsmi_get_processor_handles_by_type',
|
||||
'amdsmi_get_processor_info', 'amdsmi_get_processor_type',
|
||||
'amdsmi_get_socket_handles', 'amdsmi_get_socket_info',
|
||||
'amdsmi_get_temp_metric', 'amdsmi_get_utilization_count',
|
||||
'amdsmi_get_xgmi_info', 'amdsmi_gpu_block_t',
|
||||
|
||||
مرجع در شماره جدید
Block a user