Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
pyrsmi
is a python package of rocm-smi-lib, for providing a limited features of ROCm System Management Library for assisting Python development involving AMD GPUs.rocm-smi-lib
)[https://github.com/RadeonOpenCompute/rocm_smi_lib], so its scope of support should be similar to that of the latter.pyrsmi
runs on latest ROCm-supported Instinct MI-series GPU systems. Scope of tested systems is limited; please create tickets for any issues encountered.git clone https://github.com/ROCm/pyrsmi
python -m pip install -e .
pyrsmi
can be installed as PyPA-compatible Python package.build
package:
pip install build
python -m build
dist
directory.pip install
, or be uploaded to PyPI (release or test) repo, or an artifactory of your choice. The latter can be installed liked beflow.python -m pip install pyrsmi
pyrsmi
pyrsmi
searches for rocm-smi
library from default ROCm environment variable ROCM_PATH
. So, for standard ROCm installation, the library will be automatically detected. In some unusual case where the ROCm installation is moved, make sure to set the environment variable as so :
$ mv /opt/rocm/ /usr/local/xyz/
$ export ROCM_PATH=/usr/local/xyz/
from pyrsmi import rocml
rocml.smi_initialize()
print(rocml.smi_get_device_count())
rocml.smi_shutdown()
Function | Description | Argument | Return Type | Note |
---|---|---|---|---|
smi_initialize | initialize rsmi | None | None | |
smi_shutdown | shut down rsmi | None | None | |
smi_get_version | get version of rsmi | None | str | 'major.minor.patch' |
smi_get_kernel_version | get version of ROCm kernel driver | None | str | |
smi_get_device_id | get device id of GPU devices | None | uint64 | id of devices |
smi_get_device_count | get number of GPU devices | None | int | num of devices |
smi_get_device_name | get name of GPU devices | None | str | |
smi_get_device_unique_id | get unique id of GPU devices | None | int | 64bit integer |
smi_get_device_utilization | get device utilization in % busy | device_id | int | |
smi_get_device_memory_used | get device memory usage | device_id | int | in Bytes, type 'VRAM' |
smi_get_device_memory_total | get device's total memory | device_id | int | in Bytes, type 'VRAM' |
smi_get_device_memory_busy | get percentage of time busy accessing memory | device_id | int | in percent time |
smi_get_device_memory_reserved_pages | get info of reserved device memory | device_id | (# pages, ptr to block) | |
smi_get_device_pcie_bandwidth | get device's estimated PCIe bandwidth | device_id | float | in Bytes/sec |
smi_get_device_compute_process | get list of pid of processes running on the system | None | List[int] | |
smi_get_device_average_power | get device's average power | device_id | float | power in Watt |
smi_get_device_xgmi_error_status | get XGMI error status for the device | device_id | int | |
smi_reset_device_xgmi_error | get device's average power | device_id | float | power in Watt |
smi_get_device_compute_partition | get device's compute partition | device_id | str | e.g. 'SPX', 'CPX' |
smi_get_device_memory_partition | get device's memory partition | device_id | str | e.g. 'NPS1' |
smi_get_device_link_type | gets hops and types of link between two devices | (device_id, device_id) | (int, int) | (n_hops, type) |
smi_get_device_uuid | gets UUID of the device | (device_id, format) | str | default with 'GPU-' prefix |
FAQs
Python System Management Library for AMD GPUs
We found that pyrsmi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.