安装 torch-2.1.2+cu118 时 torch.cuda.is_available() 返回 True,而安装 torch-2.5.1+cu124 时返回 False(且本地没有装任何的CUDA Toolkit)
如题:安装 torch-2.1.2+cu118 时 torch.cuda.is_available() 返回 True,而安装 torch-2.5.1+cu124 时返回 False(且本地没有装任何的CUDA Toolkit)
问题根源分析
安装 torch-2.1.2+cu118 时 torch.cuda.is_available() 返回 True,而安装 torch-2.5.1+cu124 时返回 False,且本地未安装任何 CUDA Toolkit。这是因为:
- PyTorch 的 CUDA 版本依赖机制:
- 旧版本 PyTorch(如
cu118):某些版本的 PyTorch Wheel 包会自带 CUDA 运行时库(如cudart.dll),因此即使本地未安装 CUDA Toolkit,也能通过内置的库支持 CUDA 功能。 - 新版本 PyTorch(如
cu124):可能不再内置完整的 CUDA 运行时库,而是依赖本地安装的 CUDA Toolkit 提供动态链接库(DLL)。若本地未安装 CUDA Toolkit,则会因缺失 DLL 导致 CUDA 不可用。
- 旧版本 PyTorch(如
- 关键区别:
cu118的 PyTorch 包可能自带了必要的 CUDA 库。cu124的 PyTorch 包需要本地安装 CUDA 12.4 Toolkit 提供支持。
后来查找资料
CUDA Toolkit都是在安装Pytorch时自动安装(必须使用Pytorch官网的安装命令),可以看到,无论是使用conda安装还是pip安装,都会自动将CUDA Toolkit安装到Python环境中去,系统安装CUDA和Pytorch安装的CUDA Toolkit是独立的,两者并不需要相互依赖,仅安装Pytorch和CUDAToolkit即可正常使用GPU
笔者torch-2.1.2+cu118和 torch-2.5.1+cu124 都是手动下载,但是torch-2.1.2+cu118安装自带安装了CUDA Toolkit,但是torch-2.5.1+cu124没有自带安装CUDA Toolkit。后来使用官网命令行
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
确实自带安装CUDA Toolkit.用如下命令检查
验证 PyTorch 是否识别 CUDA:
import torch
print(torch.__version__) # 查看 PyTorch 版本
print(torch.cuda.is_available()) # 应输出 `True`
print(torch.version.cuda) # 应显示 CUDA 12.x(如 12.1)
竟然torch.cuda.is_available() 真的true。
总结
虽然手动下载pytorch whl包很快,但是高版本的whl包可能不自带CUDA Toolkit.使用pip官网的地址安装可以安装带CUDA Toolkit(虽然这种方式可能安装一个2G的whl包要花好长时间,因为下载速度好慢)
浙公网安备 33010602011771号