Python环境检查cuda可用性

在 Python 环境中检查 CUDA 的可用性,最核心和通用的方法是使用 PyTorch 库。这里为你提供了从基础到全面的验证步骤和代码。

🔍 基础核心检查

运行以下代码是最直接的验证方式:

python 复制代码
import torch
# 1. 检查CUDA是否可用(返回True/False)
print('CUDA available:', torch.cuda.is_available())
# 2. 获取当前CUDA版本(PyTorch编译时所基于的版本)
print('CUDA version:', torch.version.cuda)
# 3. 获取GPU设备数量
print('GPU count:', torch.cuda.device_count())
# 4. 获取当前GPU设备名称
if torch.cuda.is_available():
    print('Current device:', torch.cuda.current_device())
    print('Device name:', torch.cuda.get_device_name(0))

📊 检查结果解读与常见状态

根据你的检查结果,可以参考下表快速定位问题:

检查结果 含义 可能的原因与下一步
torch.cuda.is_available() == True ✅ 环境正常。PyTorch已安装支持CUDA的版本,且系统驱动正常。 无需操作,可进行后续开发。
torch.cuda.is_available() == False ❌ CUDA不可用。 情况A :安装的是CPU版本 PyTorch。 情况B :系统NVIDIA驱动未安装 或版本不匹配。 情况C:PyTorch CUDA版本与系统CUDA运行时版本不匹配。
torch.version.cuda 显示版本号 PyTorch是GPU版本。 需与系统CUDA版本(见下文"系统检查")大致兼容。
torch.version.cuda 显示 None PyTorch是CPU版本。 需要重新安装支持CUDA的PyTorch。

🛠️ 深入与系统信息检查

如果CUDA不可用,可以从系统层面检查以定位问题。

1. 在Python中获取更多CUDA信息

python 复制代码
import torch
print('PyTorch版本:', torch.__version__)
print('cuDNN版本:', torch.backends.cudnn.version())
# 检查计算能力(显卡兼容性)
if torch.cuda.is_available():
    for i in range(torch.cuda.device_count()):
        print(f'GPU {i} 计算能力:', torch.cuda.get_device_capability(i))

2. 在系统命令行中检查(更底层)

打开终端(CMD/PowerShell/Terminal)执行:

bash 复制代码
# 检查NVIDIA驱动和系统CUDA运行时版本
nvidia-smi

这个命令会显示系统安装的CUDA最高支持版本 (右上角 CUDA Version 字样处),请确保 PyTorch 的 torch.version.cuda 版本号 ≤ 这里显示的系统CUDA版本。

如果 nvidia-smi 命令无效,说明NVIDIA显卡驱动可能没有正确安装,这是导致CUDA不可用的最常见原因。

💡 一个完整的验证脚本

你可以将以下代码保存为 check_cuda.py 并运行,它会输出一份完整的报告:

python 复制代码
import torch
import sys

print('=' * 40)
print('PyTorch CUDA 可用性综合检测')
print('=' * 40)

print(f'Python 版本: {sys.version}')
print(f'PyTorch 版本: {torch.__version__}')
print(f'CUDA 编译版本: {torch.version.cuda}')

cuda_available = torch.cuda.is_available()
print(f'CUDA 是否可用: {cuda_available}')

if cuda_available:
    gpu_count = torch.cuda.device_count()
    print(f'可用GPU数量: {gpu_count}')
    for i in range(gpu_count):
        print(f'  GPU {i}: {torch.cuda.get_device_name(i)}')
        print(f'    内存总量: {torch.cuda.get_device_properties(i).total_memory / 1e9:.2f} GB')
        print(f'    计算能力: {torch.cuda.get_device_properties(i).major}.{torch.cuda.get_device_properties(i).minor}')
    current_device = torch.cuda.current_device()
    print(f'当前使用设备: GPU {current_device}')
else:
    print('-' * 40)
    print('CUDA不可用,可能的原因:')
    print('1. 安装的是PyTorch CPU版本。')
    print('2. NVIDIA显卡驱动未安装或版本太旧。')
    print('3. PyTorch CUDA版本与系统CUDA运行时版本不匹配。')

print('=' * 40)

📝 关键要点总结

  1. 核心检查 :始终以 torch.cuda.is_available() 返回 True 为最终目标。
  2. 版本匹配 :PyTorch的CUDA版本(torch.version.cuda)不应高于 系统 nvidia-smi 显示的CUDA驱动版本。
  3. 问题排查流程 :
    • is_available() 为 False → 检查PyTorch是否为CPU版本(torch.version.cuda 为 None)。
    • 如果是CPU版本 → 使用正确的命令(如 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121)重新安装GPU版本。
    • 如果是GPU版本但仍不可用 → 检查NVIDIA驱动(nvidia-smi 是否有效),并确保驱动版本支持PyTorch所需的CUDA版本。

你运行检查后结果如何?如果遇到问题,可以把 check_cuda.py 脚本的输出结果贴出来,我可以帮你具体分析。

相关推荐
默_笙6 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!6 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003966 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫6 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技6 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读6 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时6 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车6 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊6 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1236 天前
2026年第38周GitHub趋势周报
python·科技·github