Retrieve gpu, cpu, and npu device info and properties from Linux/MacOS with zero package dependency.
Project description
Device-SMI
Self-contained Python lib with zero-dependencies that give you a unified device properties for gpu, cpu, and npu. No more calling separate tools such as nvidia-smi or /proc/cpuinfo and parsing it yourself.
News
- 12/02/2024 0.3.0 Added
OSDevice.[name,version,kernel,arch] for Linux/MacOS/Windows/FreeBSD/Solaris. Addedcpu.[count,cores,threads] properties. Bug fix for gpu device index. - 11/29/2024 0.2.1 Added
pcie.[gen,speed,id] + [firmware,driver] properties toGPUdevice.
Features
- Retrieve information for both CPU and GPU devices.
- Includes details about memory usage, utilization, driver, pcie info when applicable, and other device specifications.
- Zero pypi dependency.
- Linux/MacOS support
Supported Devices:
- OS: Linux, MacOS, Windows, FreeBSD, Solaris
- CPU: [Intel/AMD/Apple] Linux/MacOS system interface
- NVIDIA GPU: NVIDIA System Management Interface
nvidia-smi - Intel XPU: Intel/XPU System Management Interface
xpu-smi - Apple GPU: MacOS interfaces
Usage
For OS, use os to init a new Device object.
from device_smi import Device
dev = Device("os")
print(dev)
Output: (Ubuntu 22.04)
{'type': 'os', 'name': 'ubuntu', 'version': '22.04', 'kernel': '6.12.1-x64v3-xanmod2', 'arch': 'x86_64'}
For GPU/XPU, use [gpu, cuda] for Nvidia and xpu for Intel/XPU. Index usage for multiple GPUs: cuda:0
from device_smi import Device
dev = Device("cuda:0")
print(dev)
Output: (Nvidia 4090)
{'pcie': {'gen': 2, 'speed': 1, 'id': '00000000:16:00.0'}, 'gpu': {'driver': '565.57.01', 'firmware': '95.02.3C.40.E7'}, 'type': 'gpu', 'model': 'geforce rtx 4090', 'memory_total': 25757220864, 'vendor': 'nvidia', 'features': ['8.9']}
For CPU, use cpu to init a new Device object.
from device_smi import Device
dev = Device("cpu")
print(dev)
Output: (AMD EPYC 7443)
{'type': 'cpu', 'model': 'epyc 7443', 'vendor': 'amd', 'memory_total': 1000000000000, 'count': 2, 'cores': 48, 'threads': 96, 'features': ['3dnowprefetch', 'abm', 'adx', 'aes', 'amd_ppin', 'aperfmperf', 'apic', 'arat', 'avx', 'avx2', 'bmi1', 'bmi2', 'bpext', 'brs', 'cat_l3', 'cdp_l3', 'clflush', 'clflushopt', 'clwb', 'clzero', 'cmov', 'cmp_legacy', 'constant_tsc', 'cpb', 'cpuid', 'cqm', 'cqm_llc', 'cqm_mbm_local', 'cqm_mbm_total', 'cqm_occup_llc', 'cr8_legacy', 'cx16', 'cx8', 'de', 'debug_swap', 'decodeassists', 'erms', 'extapic', 'extd_apicid', 'f16c', 'flushbyasid', 'fma', 'fpu', 'fsgsbase', 'fsrm', 'fxsr', 'fxsr_opt', 'ht', 'hw_pstate', 'ibpb', 'ibrs', 'ibs', 'invpcid', 'irperf', 'lahf_lm', 'lbrv', 'lm', 'mba', 'mca', 'mce', 'misalignsse', 'mmx', 'mmxext', 'monitor', 'movbe', 'msr', 'mtrr', 'mwaitx', 'nonstop_tsc', 'nopl', 'npt', 'nrip_save', 'nx', 'ospke', 'osvw', 'overflow_recov', 'pae', 'pat', 'pausefilter', 'pcid', 'pclmulqdq', 'pdpe1gb', 'perfctr_core', 'perfctr_llc', 'perfctr_nb', 'pfthreshold', 'pge', 'pku', 'pni', 'popcnt', 'pse', 'pse36', 'rapl', 'rdpid', 'rdpru', 'rdrand', 'rdseed', 'rdt_a', 'rdtscp', 'rep_good', 'sep', 'sha_ni', 'skinit', 'smap', 'smca', 'smep', 'ssbd', 'sse', 'sse2', 'sse4_1', 'sse4_2', 'sse4a', 'ssse3', 'stibp', 'succor', 'svm', 'svm_lock', 'syscall', 'tce', 'topoext', 'tsc', 'tsc_scale', 'umip', 'user_shstk', 'v_spec_ctrl', 'v_vmsave_vmload', 'vaes', 'vgif', 'vmcb_clean', 'vme', 'vmmcall', 'vpclmulqdq', 'wbnoinvd', 'wdt', 'xgetbv1', 'xsave', 'xsavec', 'xsaveerptr', 'xsaveopt', 'xsaves', 'xtopology']}
Roadmap
- Support AMD GPU
- Support Intel/Gaudi
- Support Google/TPU
- Add NPU support (ARM/Intel/AMD)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file device_smi-0.3.1.tar.gz.
File metadata
- Download URL: device_smi-0.3.1.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faaf174f1dc5884e833a581c9f94d1db33d6c9a2d0df8f2195842dca1f0ed92d
|
|
| MD5 |
244192024d60d2af79f2a17273108dbf
|
|
| BLAKE2b-256 |
c37376470c88d924f49e972bd78abffdc835df4be05f4cda991df75e4bc05954
|