Skip to content

GPU 与 CUDA ​

配 GPU 环境是新手最容易卡住的地方,问题几乎都出在“版本对不上”。先弄清楚几个概念,就能少走很多弯路。

几个概念 ​

名词是什么怎么查看
GPU(显卡)擅长大规模并行计算的硬件,深度学习的计算主要在它上面完成nvidia-smi
显存GPU 自己的内存。模型权重、中间结果、KV Cache 都要放在显存里,显存大小决定了能跑多大的模型nvidia-smi 中的 Memory-Usage
驱动(Driver)让操作系统能使用显卡的底层软件,装在系统上nvidia-smi 第一行的 Driver Version
CUDANVIDIA 的 GPU 编程平台。PyTorch 通过它调用 GPU见下文
CUDA Toolkit编译 CUDA 程序用的工具(nvcc 编译器等)nvcc --version
cuDNN、NCCL深度学习算子库、多卡通信库PyTorch 已自带

最关键的一点:用 pip 或 uv 安装的 PyTorch 自带了它需要的 CUDA 运行库,你只需要装好显卡驱动,不需要另外安装 CUDA Toolkit。 只有要自己编译 CUDA 代码(比如编译某些论文的自定义算子)时才需要 Toolkit。

另一个常见误解:nvidia-smi 右上角显示的 CUDA Version: 13.x,是这个驱动最高支持的 CUDA 版本,不是你装了哪个版本的 CUDA。

版本关系(截至 2026 年 10 月) ​

项目情况
PyTorch 最新稳定版2.14(以官网的安装选择器为准)
Linux 上 pip install torch 默认装的版本基于 CUDA 13.0 构建
CUDA 13.x 需要的驱动Linux 上驱动版本 ≥ 580
老显卡(Maxwell、Pascal、Volta 架构,例如 GTX 10 系列、V100)CUDA 13 的版本已不支持,需要安装 CUDA 12.6 版本的 PyTorch(cu126)
Windows 原生(不是 WSL)上 pip install torch默认装的是 CPU 版本,要用官网给出的带 CUDA 的安装命令
Mac默认版本即可,使用 Apple 芯片的 MPS 加速

版本会持续更新,安装前到 PyTorch 官网用选择器确认最新的安装命令。

安装 PyTorch ​

第 1 步:确认驱动

bash
nvidia-smi

能看到显卡信息就说明驱动正常。看第一行的 Driver Version:Linux 上 ≥ 580 可以直接装最新版 PyTorch。WSL 用户看到的是 Windows 驱动的版本,在 Windows 上更新驱动即可。

第 2 步:安装

bash
# 常见情况(Linux / WSL,驱动 ≥ 580,较新的显卡):
uv pip install torch torchvision          # 或在 uv 项目里:uv add torch torchvision

# 驱动较旧、暂时不能升级,或者是老显卡:安装 CUDA 12.6 版本
uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126

服务器上没有权限升级驱动时,用第二种方式即可。

第 3 步:验证

python
# check_gpu.py
import time

import torch

print("PyTorch", torch.__version__, "| 构建所用 CUDA", torch.version.cuda)
print("GPU 可用:", torch.cuda.is_available())

if torch.cuda.is_available():
    print("显卡:", torch.cuda.get_device_name(0), "| 数量:", torch.cuda.device_count())
    n = 8192
    a = torch.randn(n, n, device="cuda", dtype=torch.float16)
    a @ a                                   # 预热
    torch.cuda.synchronize()
    start = time.perf_counter()
    for _ in range(10):
        a @ a
    torch.cuda.synchronize()
    seconds = (time.perf_counter() - start) / 10
    print(f"FP16 矩阵乘法实测算力:{2 * n**3 / seconds / 1e12:.1f} TFLOPS")

输出 GPU 可用: True 就说明配置成功。最后一行的实测算力可以和显卡的官方标称值对比,这个计算方法在数学基础里讲过。

看懂 nvidia-smi ​

text
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.xx       Driver Version: 580.xx       CUDA Version: 13.0                 |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                               |           Memory-Usage | GPU-Util             |
|   0  NVIDIA GeForce RTX 4090            |   18000MiB /  24564MiB |     95%              |
|   1  NVIDIA GeForce RTX 4090            |       2MiB /  24564MiB |      0%              |
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   PID   Type   Process name                                          GPU Memory    |
|    0   12345  C     python                                                 17990MiB     |
+-----------------------------------------------------------------------------------------+

(简化示意)这台机器有两张 4090:0 号卡正在被一个 Python 进程使用,显存用了约 18 GB,利用率 95%;1 号卡空闲。这时你应该用 CUDA_VISIBLE_DEVICES=1 指定 1 号卡。

注意:CUDA 默认按“最快的卡优先”给显卡编号,可能和 nvidia-smi 按插槽排列的编号不一致(机器上有不同型号的卡时常见)。先运行 export CUDA_DEVICE_ORDER=PCI_BUS_ID,两边的编号就一致了,可以写进 ~/.bashrc。

更直观的工具:uv tool install nvitop 后运行 nvitop,可以实时看到每张卡、每个进程的占用;watch -n 1 nvidia-smi 每秒刷新一次。

没有 GPU 怎么办 ​

选择说明适合
实验室服务器进组后申请账号,见使用服务器正式实验
Kaggle Notebooks免费,每周约 30 小时 GPU(T4 或 P100),单次会话最长 12 小时,需要手机号验证学 PyTorch、跑小实验
Google Colab免费版提供 T4,额度不固定;需要能访问 Google同上
魔搭 ModelScope Notebook免费 CPU 环境长期可用,新用户有一定的免费 GPU 时长(以页面显示为准),国内访问快跑通国内模型、小规模实验
按小时租云 GPU:AutoDL、恒源云、智星云等RTX 4090 大约 1.6~2.5 元/小时(2026 年水平,随时段和库存波动);AutoDL 等平台对学生认证有会员优惠需要较大显存、较长时间的实验

租云 GPU 的注意事项

  • 用完立刻关机,按时计费,开着不用也在扣钱。
  • 选择预装了 PyTorch 的镜像,省去配环境的时间。
  • 数据放在平台的数据盘或网盘里,关机后系统盘内容可能会被清理,重要结果及时下载到本地。
  • 热门时段(如毕业季、会议截稿前)可能抢不到卡,提前规划。

常见问题 ​

现象原因与解决
nvidia-smi: command not found没装驱动,或者在虚拟机里(虚拟机用不了本机显卡)。WSL 用户检查 Windows 上是否装了 NVIDIA 驱动
torch.cuda.is_available() 返回 False最常见:装成了 CPU 版本(Windows 原生环境直接 pip install torch 就是 CPU 版)。用 python -c "import torch; print(torch.version.cuda)" 检查,输出 None 就是 CPU 版,按上文重新安装
CUDA driver version is insufficient for CUDA runtime version驱动太旧,不支持这个 PyTorch 使用的 CUDA 版本。升级驱动,或者安装 cu126 版本的 PyTorch
no kernel image is available for execution on the device显卡太老,新版 PyTorch 不支持。安装 cu126 版本
CUDA out of memory显存不够:减小 batch size、换小模型、检查是否有别的进程占着显存
WSL 里 GPU 突然不能用了是否在 WSL 里装了 Linux 显卡驱动?卸载它,只保留 Windows 上的驱动
需要 nvcc(编译 CUDA 代码)安装与 PyTorch 构建版本对应的 CUDA Toolkit;在 WSL 里要安装 WSL 专用的 Toolkit,参考 NVIDIA CUDA on WSL 指南

作者:崔涵帅、姚智、王振胜、唐志清 · 边缘智能系统实验室