python检查GPU
时间: 2025-02-17 11:57:39 浏览: 57
### 如何在Python中检查GPU是否可用
为了确认Python环境中GPU的可用性,可以根据不同的框架采用特定的方法来检测。以下是几种常见的方式。
#### 使用PyTorch检查GPU状态
通过导入`torch`模块并调用`.cuda.is_available()`方法能够快速判断当前环境是否有支持CUDA协议的显卡设备[^3]:
```python
import torch
if torch.cuda.is_available():
print("CUDA 可用:", True)
device_count = torch.cuda.device_count()
print("GPU 数量:", device_count)
for i in range(device_count):
print(f"GPU {i} 名称:", torch.cuda.get_device_name(i))
else:
print("CUDA 不可用")
```
这段脚本会打印出系统内所有兼容CUDA标准的图形处理单元详情以及它们的名字。
#### 借助NVIDIA SMI工具查询硬件信息
除了编程接口外,还可以利用操作系统层面提供的命令行工具——如NVIDIA System Management Interface (SMI),它能提供详细的GPU资源占用状况报告。下面是一段用于执行该指令并将结果解析成易于阅读形式的例子[^1]:
```python
import subprocess
try:
nvidia_smi_output = subprocess.check_output(["nvidia-smi"], stderr=subprocess.STDOUT).decode('utf-8')
except Exception as e:
print("无法访问 nvidia-smi 或者没有安装 NVIDIA 显卡驱动程序.")
else:
lines = nvidia_smi_output.splitlines()
relevant_lines = []
inside_table = False
for line in lines:
stripped_line = line.strip()
if "Processes:" in stripped_line or "+----+" in stripped_line:
break
elif "|=====" in stripped_line:
inside_table = True
if inside_table and not ("|==========" in stripped_line or stripped_line.startswith("+")):
relevant_lines.append(stripped_line.replace('|', '').strip())
formatted_output = "\n".join(relevant_lines)
print(formatted_output)
```
此代码片段尝试读取并通过过滤无关部分展示由`nvidia-smi`产生的表格化输出中的重要数据项。
对于其他机器学习库(例如TensorFlow),也有类似的API可用于探测和配置GPU设置;而对于像ONNX Runtime这样的推理引擎来说,在初始化时也会自动检测是否存在合适的GPU加速条件,并相应调整内部行为[^4]。
阅读全文
相关推荐




















