跳转至

PyTorch 切换到 CUDA 开启的版本

问题

绝大多数 AI 项目,在依赖里面未指定 PyTorch 来源,PyTorch 默认会从 PyPI 安装。结果,PyTorch 默认是使用 CPU 版本的 PyTorch。可能会报错如下:

AssertionError: Torch not compiled with CUDA enabled

因此需要切换到 CUDA 开启的版本。

切换

删除当前 PyTorch:

pip uninstall torch torchvision

查看 CUDA 版本:

nvcc --version                                                                                     
输出
1
2
3
4
5
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Aug_20_13:58:20_Pacific_Daylight_Time_2025
Cuda compilation tools, release 13.0, V13.0.88
Build cuda_13.0.r13.0/compiler.36424714_0

上例得 CUDA 版本 13.0。

打开 PyTorch 的下载页面,根据系统、CUDA 版本选择对应的版本。复制链接,在命令行中执行。

PyTorch 的下载页面

比如:

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

在项目的依赖管理中指定源

requirements.txt
1
2
3
--extra-index-url https://download.pytorch.org/whl/cu130
torch
torchvision
pyproject.toml(以 uv 为例)
[project]
name = "your-project"
version = "0.1.0"
requires-python = ">=3.10"
dependencies = [
    "torch",
    "torchvision",
]

[[tool.uv.index]]
name = "pytorch-cu130"
url = "https://download.pytorch.org/whl/cu130"
explicit = true   # 关键:防止其他包意外从 PyTorch 源安装

[tool.uv.sources]
torch = { index = "pytorch-cu130" }
torchvision = { index = "pytorch-cu130" }

如果要在不同平台使用不同的 index:

pyproject.toml(以 uv 为例)
1
2
3
4
5
[tool.uv.sources]
torch = [
    { index = "pytorch-cpu", marker = "sys_platform == 'darwin'" },
    { index = "pytorch-cu130", marker = "sys_platform != 'darwin'" },
]