Ubuntu下解决5060显卡与PyTorch GPU版的CUDA兼容性问题:从驱动安装到环境配置

1次阅读
没有评论

共计 3176 个字符,预计需要花费 8 分钟才能阅读完成。

image.webp

Ubuntu 下解决 5060 显卡与 PyTorch GPU 版的 CUDA 兼容性问题:从驱动安装到环境配置

问题背景

CUDA(Compute Unified Device Architecture)是 NVIDIA 推出的并行计算平台和编程模型,它允许开发者使用 GPU 进行高性能计算。PyTorch 是一个广泛使用的深度学习框架,支持 GPU 加速。然而,不同版本的 PyTorch 对 CUDA 版本有特定的要求,如果 PyTorch 的 CUDA 版本与显卡驱动不兼容,就会导致无法使用 GPU 加速,甚至无法运行 PyTorch。

Ubuntu 下解决 5060 显卡与 PyTorch GPU 版的 CUDA 兼容性问题:从驱动安装到环境配置

对于 NVIDIA 5060 显卡,常见的 CUDA 版本不兼容表现包括:

  • PyTorch 安装后无法检测到 GPU
  • 运行时出现 CUDA error: no kernel image is available for execution 等错误
  • 程序运行速度极慢,明显没有使用 GPU 加速

环境检查

在开始配置之前,我们需要先检查当前的显卡驱动和 CUDA 版本。

  1. 查看显卡型号和驱动版本:
nvidia-smi

输出示例:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.60.13    Driver Version: 525.60.13    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
|  0%   50C    P8    10W / 200W |      0MiB /  8192MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

这里可以看到驱动版本是 525.60.13,CUDA Version 是 12.0。

  1. 查看系统安装的 CUDA Toolkit 版本:
nvcc --version

如果命令不存在,说明没有安装 CUDA Toolkit。

驱动安装

如果驱动版本不兼容,我们需要先安装正确的驱动。5060 显卡建议使用 525 或更高版本的驱动。

  1. 添加 NVIDIA 官方 PPA:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
  1. 查看可用的驱动版本:
ubuntu-drivers devices
  1. 安装推荐的驱动(通常是版本号最高的):
sudo apt install nvidia-driver-525
  1. 重启系统:
sudo reboot
  1. 验证驱动是否安装成功:
nvidia-smi

CUDA Toolkit 选择

PyTorch 官方支持的 CUDA 版本可以在 PyTorch 官网 查看。目前(2023 年)PyTorch 2.0 支持 CUDA 11.7 和 11.8。虽然 5060 显卡支持 CUDA 12.0,但为了兼容性,我们选择 CUDA 11.8。

  1. 下载 CUDA Toolkit 11.8:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
  1. 安装 CUDA Toolkit:
sudo sh cuda_11.8.0_520.61.05_linux.run

安装时取消勾选驱动安装(因为我们已经安装了更新的驱动)。

  1. 添加环境变量:

编辑 ~/.bashrc 文件,添加:

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

然后执行:

source ~/.bashrc
  1. 验证 CUDA 安装:
nvcc --version

应该显示 CUDA 11.8。

PyTorch 安装

现在我们可以安装与 CUDA 11.8 兼容的 PyTorch 版本。

  1. 创建 conda 环境(可选但推荐):
conda create -n pytorch python=3.9
conda activate pytorch
  1. 安装 PyTorch:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  1. 验证 PyTorch 是否能识别 GPU:
import torch
print(torch.cuda.is_available())  # 应该返回 True
print(torch.cuda.get_device_name(0))  # 应该显示 5060 显卡

常见问题排查

1. PyTorch 无法识别 GPU

  • 检查驱动是否正确安装:nvidia-smi应该有输出
  • 检查 CUDA 版本是否匹配:PyTorch 的 CUDA 版本应与系统安装的 CUDA Toolkit 版本一致
  • 检查 conda 环境是否正确激活

2. 运行时出现 CUDA 错误

  • 确保 PyTorch 版本与 CUDA 版本兼容
  • 尝试重新安装 PyTorch:pip install --upgrade --force-reinstall torch torchvision torchaudio

3. 性能不如预期

  • 检查是否真的使用了 GPU:nvidia-smi应显示 PyTorch 进程
  • 确保数据已经转移到 GPU:tensor.cuda()tensor.to('cuda')

性能测试

运行一个简单的矩阵乘法测试 GPU 加速效果:

import torch
import time

# 创建两个大型随机矩阵
x = torch.randn(10000, 10000)
y = torch.randn(10000, 10000)

# CPU 计算
start = time.time()
z = x @ y
print(f"CPU time: {time.time() - start:.2f}s")

# GPU 计算
x = x.cuda()
y = y.cuda()
start = time.time()
z = x @ y
torch.cuda.synchronize()  # 等待 GPU 完成
print(f"GPU time: {time.time() - start:.2f}s")

正常情况下,GPU 计算应该比 CPU 快很多倍。

避坑指南

  1. 驱动版本与 CUDA Toolkit 版本不匹配:确保驱动版本足够新以支持所需的 CUDA Toolkit 版本。

  2. 多个 CUDA 版本冲突:如果系统安装了多个 CUDA 版本,确保环境变量指向正确的版本。

  3. conda 环境混乱:为每个项目创建单独的 conda 环境,避免包冲突。

  4. PyTorch 版本选择错误:一定要从 PyTorch 官网获取正确的安装命令,不要随意使用pip install torch

  5. 忘记激活 conda 环境:在安装 PyTorch 前确保 conda 环境已激活。

结语

通过以上步骤,你应该已经成功在 5060 显卡上配置了 PyTorch GPU 环境。现在可以尝试运行你的深度学习项目,享受 GPU 加速带来的性能提升。如果在配置过程中遇到其他问题,欢迎在评论区分享,我们一起探讨解决方案。

Happy coding!

正文完
 0
评论(没有评论)