1. 背景
运行大模型的时候,出现错误:Torch not compiled with CUDA enabled
原因:并不是电脑安装了nvdia显卡驱动就可以的,还需要安装
- NVDIA GPU Computing Toolkit(即CUDA Toolkit)
- cudnn
另外还需要确保安装的python是GPU版本的。通常是CPU版本的
2. 解决过程
2.1 检查环境
先用如下python脚本,查看torch版本环境。
import torch# 输出带CPU,表示torch是CPU版本的,否则会是+cuxxx
print(f'torch的版本是:{torch.__version__}')
#
print(f'torch是否能使用cuda:{torch.cuda.is_available()}')
输出
torch的版本时:2.2.2+CPU
torch是否能使用cuda:False
2.2 下载安装cuda
注意先查看自己安装的nvdia显卡驱动版本,找寻相应版本的安装包。
- CUDA下载地址:
https://developer.nvidia.com/cuda-toolkit-archive
这是exe安装包,安装即可。安装完之后可以在命令行中执行如下命令,查看环境变量是否已经自动配置上。
- Cudnn的下载地址:
https://developer.nvidia.com/rdp/cudnn-archive
这不是安装包,解压开之后,把里面的dll文件复制到对应的先前安装目录下。例如我的CUDA安装目录是
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
那么把cudnn文件夹下的dll文件按下面的方式复制:
cudnn/bin/*.dll --> CUDA/v12.4/bin/
cudnn/indclude/*.dll --> CUDA/v12.4/include/
cudnn/lib/x64/*.dll --> CUDA/v12.4/lib/x64/
2.3 安装支持cuda的torch
当前执行先前的pyton测试脚本,输出应该还是和原来一样的,此时需要安装cuda版本torch。
首先访问:
https://pytorch.org/get-started/locally/
选择环境,取得pip安装命令
安装的时候,如果使用的虚拟环境(venv),应该确保使用的是其中的pip,而非全局的pip。方法就是直接cd到.venv/Scripts/目录下,然后
./pip.exe install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
2.4 再次执行测试脚本
再次检查测试脚本,此时输出:
torch的版本时:2.2.2+cu121
torch是否能使用cuda:True