如何通过编程获取GPU使用率?
时间: 2024-10-27 17:04:57 浏览: 49
在Linux系统中,可以通过编程语言直接读取`nvidia-smi`命令行工具提供的API来获取GPU的使用率。以下是一个Python示例,利用`subprocess`模块运行`nvidia-smi`命令并解析结果:
```python
import subprocess
def get_gpu_usage():
# 使用Popen执行nvidia-smi命令,然后从stdout获取输出
output = subprocess.check_output(["nvidia-smi", "-L"])
# 解析输出,找到GPU ID及其负载率(utilization percentage)
lines = output.decode("utf-8").split("\n")
for line in lines:
if "GPU" in line: # 找到包含GPU信息的行
parts = line.split()
gpu_id = parts[1] # 第二个元素通常是GPU ID
utilization = float(parts[7]) / 100.0 # 负载率(百分比转浮点数)
yield {"GPU_ID": gpu_id, "Usage": utilization}
# 示例用法
for gpu_info in get_gpu_usage():
print(f"GPU {gpu_info['GPU_ID']} usage: {gpu_info['Usage']}")
```
对于Windows系统,虽然也可以使用类似的方法,但可能需要安装额外的驱动或库来模拟`nvidia-smi`的行为。例如,可以考虑使用PyNvSmi库,但它不是标准库的一部分,需要单独安装。
阅读全文