Updated esmi python wrappers to amdsmi python library

Change-Id: Icf2576926d3649929d2aa580b476a013204daf95
Šī revīzija ir iekļauta:
Deepak Mewar
2023-11-02 07:23:31 -04:00
revīziju iesūtīja Maisam Arif
vecāks 9bfebc6f1c
revīzija 6d46e20598
2 mainīti faili ar 218 papildinājumiem un 0 dzēšanām
+123
Parādīt failu
@@ -3821,3 +3821,126 @@ try:
except AmdSmiException as e:
print(e)
```
### amdsmi_get_cpu_socket_power_cap
Description: Get the socket power cap.
Output: amdsmi socket power cap
Exceptions that can be thrown by `amdsmi_get_cpu_socket_power_cap` function:
* `AmdSmiLibraryException`
Example:
```python
try:
socket_handles = amdsmi_get_cpusocket_handles()
if len(socket_handles) == 0:
print("No CPU sockets on machine")
else:
for socket in socket_handles:
sock_power = amdsmi_get_cpu_socket_power_cap(socket)
print(sock_power)
except AmdSmiException as e:
print(e)
```
### amdsmi_get_cpu_socket_power_cap_max
Description: Get the socket power cap max.
Output: amdsmi socket power cap max
Exceptions that can be thrown by `amdsmi_get_cpu_socket_power_cap_max` function:
* `AmdSmiLibraryException`
Example:
```python
try:
socket_handles = amdsmi_get_cpusocket_handles()
if len(socket_handles) == 0:
print("No CPU sockets on machine")
else:
for socket in socket_handles:
sock_power = amdsmi_get_cpu_socket_power_cap_max(socket)
print(sock_power)
except AmdSmiException as e:
print(e)
```
### amdsmi_get_cpu_pwr_svi_telemetry_all_rails
Description: Get the SVI based power telemetry for all rails.
Output: amdsmi svi based power value
Exceptions that can be thrown by `amdsmi_get_cpu_pwr_svi_telemetry_all_rails` function:
* `AmdSmiLibraryException`
Example:
```python
try:
socket_handles = amdsmi_get_cpusocket_handles()
if len(socket_handles) == 0:
print("No CPU sockets on machine")
else:
for socket in socket_handles:
power = amdsmi_get_cpu_pwr_svi_telemetry_all_rails(socket)
print(power)
except AmdSmiException as e:
print(e)
```
### amdsmi_set_cpu_socket_power_cap
Description: Set the power cap value for a given socket.
Input: socket index, amdsmi socket power cap value
Exceptions that can be thrown by `amdsmi_set_cpu_socket_power_cap` function:
* `AmdSmiLibraryException`
Example:
```python
try:
socket_handles = amdsmi_get_cpusocket_handles()
if len(socket_handles) == 0:
print("No CPU sockets on machine")
else:
for socket in socket_handles:
power = amdsmi_set_cpu_socket_power_cap(socket, 0, 1000)
except AmdSmiException as e:
print(e)
```
### amdsmi_set_cpu_pwr_efficiency_mode
Description: Set the power efficiency profile policy.
Input: socket index, mode(0, 1, or 2)
Exceptions that can be thrown by `amdsmi_set_cpu_pwr_efficiency_mode` function:
* `AmdSmiLibraryException`
Example:
```python
try:
socket_handles = amdsmi_get_cpusocket_handles()
if len(socket_handles) == 0:
print("No CPU sockets on machine")
else:
for socket in socket_handles:
policy = amdsmi_set_cpu_pwr_efficiency_mode(socket, 0, 0)
except AmdSmiException as e:
print(e)
```
+95
Parādīt failu
@@ -876,6 +876,101 @@ def amdsmi_get_cpu_socket_power(
return ppower.value
def amdsmi_get_cpu_socket_power_cap(
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, sock_idx: int
) -> int:
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
raise AmdSmiParameterException(
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
)
if not isinstance(sock_idx, int):
raise AmdSmiParameterException(sock_idx, int)
pcap = ctypes.c_uint32()
_check_res(
amdsmi_wrapper.amdsmi_get_cpu_socket_power_cap(
socket_handle, sock_idx, ctypes.byref(pcap)
)
)
return pcap.value
def amdsmi_get_cpu_socket_power_cap_max(
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, sock_idx: int
) -> int:
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
raise AmdSmiParameterException(
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
)
if not isinstance(sock_idx, int):
raise AmdSmiParameterException(sock_idx, int)
pmax = ctypes.c_uint32()
_check_res(
amdsmi_wrapper.amdsmi_get_cpu_socket_power_cap_max(
socket_handle, sock_idx, ctypes.byref(pmax)
)
)
return pmax.value
def amdsmi_get_cpu_pwr_svi_telemetry_all_rails(
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, sock_idx: int
) -> int:
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
raise AmdSmiParameterException(
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
)
if not isinstance(sock_idx, int):
raise AmdSmiParameterException(sock_idx, int)
power = ctypes.c_uint32()
_check_res(
amdsmi_wrapper.amdsmi_get_cpu_pwr_svi_telemetry_all_rails(
socket_handle, sock_idx, ctypes.byref(power)
)
)
return power.value
def amdsmi_set_cpu_socket_power_cap(
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, sock_idx: int, power_cap: int
):
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
raise AmdSmiParameterException(
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
)
if not isinstance(sock_idx, int):
raise AmdSmiParameterException(sock_idx, int)
if not isinstance(power_cap, int):
raise AmdSmiParameterException(power_cap, int)
sock_idx = ctypes.c_uint32(sock_idx)
power_cap = ctypes.c_uint32(power_cap)
_check_res(
amdsmi_wrapper.amdsmi_set_cpu_socket_power_cap(
processor_handle, sock_idx, power_cap)
)
def amdsmi_set_cpu_pwr_efficiency_mode(
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, sock_idx: int, mode: int
):
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
raise AmdSmiParameterException(
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
)
if not isinstance(sock_idx, int):
raise AmdSmiParameterException(sock_idx, int)
if not isinstance(mode, int):
raise AmdSmiParameterException(mode, int)
sock_idx = ctypes.c_uint8(sock_idx)
mode = ctypes.c_uint8(mode)
_check_res(
amdsmi_wrapper.amdsmi_set_cpu_pwr_efficiency_mode(
socket_handle, sock_idx, mode)
)
def amdsmi_init(flag=AmdSmiInitFlags.INIT_AMD_GPUS):
if not isinstance(flag, AmdSmiInitFlags):
raise AmdSmiParameterException(flag, AmdSmiInitFlags)