已经安装Pytorch的cuda版本,但还是调用的cpu,无法调用gpu。用下面的代码测试,显示为false。
import torch
torch.cuda.is_available() # cuda是否可用
torch.version.cuda # cuda版本
torch.backends.cudnn.is_available() # cudnn是否可用
torch.backends.cudnn.version() # cudnn版本,输出结果看不懂
或者进入虚拟环境查看,确实为false
查阅很多资料之后发现,如果有nVidia显卡,要安装gpu版本的pytorch时,不像cpu版本那么简单,还有很多基础工作要做,需要根据CUDA安装对应的CUDA toolkit,然后要安装对应的cudnn,最后再安装对应版本的pytorch。
1.确定电脑显卡型号,并查看对应的CUDA版本,命令是在cmd中输入nvidia-smi,我的是12.2。之后很多问题都处在这个版本上,太新了,pytorch还没有稳定版支持它。
可以去nVidia网站查一下你显卡的算力https://developer.nvidia.com/cuda-gpus
大概在这里,没有我那个显卡型号
我的CUDA对应的版本为12.2,太新了,尴尬。
2.要给电脑装上CUDA版本对应的CUDA toolkit,安装成功后了,然后用命令nvcc -V查看是否成。
cuda-toolkit下载地址:https://developer.nvidia.com/cuda-toolkit-archive
我安装的是最新版cuda_12.2.1_536.67_windows.exe
安装请参考https://blog.csdn.net/weixin_44848751/article/details/131838248
安装完了之后,需要配置好环境变量。
3.根据前面的CUDA版本,下载并解压对应的cudnn。
cudnn下载地址:https://developer.nvidia.com/rdp/cudnn-archive
我下载的对应版本是cudnn-windows-x86_64-8.9.3.28_cuda12-archive.zip
这里要注意,下载这个cudnn需要账号登录,然而一般人都没有nVidia的账号,可以在上一个步骤cuda-toolkit中,扫微信或qq登陆,完善账号信息,然后在这里就可以登陆下载了。
下载完成后,解压,将所有文件拷贝到cuda toolkit的安装目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2
然后依然要配置环境变量
4.根据CUDA安装pytorch
最坑的就是这里来,我安装了pytorch的11.7,11.8都只有cpu可以用,gpu不能用,而只有最新版的才有12.1,直接用conda命令安装报失败。
安装pytorch的官网https://pytorch.org/get-started/locally/
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121
还好用pip3这个命令安装时,2.5G的包竟然下载下来了,且安装没有报错!
验证是否安装成功
`import torch
torch.cuda.is_available()`
终于看到True了,真不容易啊,折腾了一天。
/------------2023.11.21补充start---------------/
换了一台虚拟机环境,cuda为12.0,比之前这台版本要低,对应的Pytorch版本为1.18,所有原来虚拟环境中的包不能直接用,拿最原始的内容再重新安装torch1.18版本,用命令安装:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
但是报错了:
Fatal error in launcher: Unable to create process using '"d:\????\sbert_text_similarity\venv\scripts\python.exe"
原因是我虽然修改了虚拟环境中pyvenv.cfg对应的Python.exe为当前环境中的路径地址,但Scripts中的pip还是引用的原来环境中的路径,所以需要先用Python命令升级pip:python -m pip install --upgrade pip
升级之后,pip引用的python.exe路径是当前环境中的路径,就可以用pip命令安装torch了。
/----------2023.11.21补充end-------------/
5.效果对比
没有对比就没有伤害,我笔记本跑一个nlp的bert任务,还压缩了数据量,十二代i5跑了4个小时;台式机i7跑了1小时;用rtx4060ti的gpu后,竟然只要4分多钟就跑完了。
参考文献:
一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系
https://blog.csdn.net/qq_41094058/article/details/116207333
显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
https://zhuanlan.zhihu.com/p/91334380
window11系统CUDA、cuDNN 安装以及环境变量配置
http://www.rply.cn/news/113428.html
Windows10中CUDA cundnn pytorch环境搭建记录
https://blog.csdn.net/weixin_44848751/article/details/131838248
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。