GPU 诊断工具:全面的 GPU 环境检测与分析
简介
本文介绍了一个强大的 GPU 诊断工具,它能够全面收集和分析系统中的 GPU 相关信息,包括硬件规格、驱动状态、显存使用情况以及 USB 控制器信息。这个工具特别适用于深度学习开发环境的配置检查和问题诊断。
功能特点
-
系统环境检测
- Python 运行环境版本
- PyTorch 版本信息
- CUDA 和 cuDNN 版本检查
-
CUDA 环境变量检查
- CUDA_HOME
- CUDA_PATH
- CUDA_VISIBLE_DEVICES
-
GPU 硬件信息
- 设备数量和型号
- 计算能力
- 显存容量
- 多处理器数量
- 最大线程数
-
显存使用状态
- 已分配显存
- 已预留显存
- 可用显存
-
USB 和雷电接口支持
- NVIDIA USB 控制器检测
- Type-C 接口支持检查
- 雷电接口支持检查
实现细节
1. 环境信息收集
工具使用 Python 的系统库和 PyTorch 库来收集基本的环境信息。通过访问系统环境变量和 PyTorch 的内置函数,可以获取 CUDA 相关的配置信息。
2. GPU 信息获取
使用 PyTorch 的 CUDA API 获取详细的 GPU 信息,包括:
torch.cuda.is_available()
检查 GPU 可用性torch.cuda.device_count()
获取 GPU 数量torch.cuda.get_device_properties()
获取 GPU 属性
3. 显存监控
通过 PyTorch 的内存管理 API 实时监控显存使用情况:
torch.cuda.memory_allocated()
torch.cuda.memory_reserved()
4. 硬件接口检测
使用 Windows Management Instrumentation Command-line (WMIC) 工具检测系统的 USB 控制器和雷电接口支持情况。
使用方法
- 确保系统已安装 Python 和 PyTorch
- 运行脚本即可获取完整的诊断报告:
python gpu_info.py
完整代码
import sys
import os
import subprocess
import torch
from datetime import datetime
def get_gpu_info():
print("=" * 50)
print("GPU 诊断报告")
print("=" * 50)
print(f"诊断时间: {
datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
# 系统信息
print("系统信息:")
print(f"Python 版本: {
sys.version}")
print(f"PyTorch 版本: {
torch.__version__}")
print(f"CUDA 版本 (PyTorch): {
torch.version.cuda}")
print(f"cuDNN 版本: {
torch.backends.cudnn