gpu算力cuda版本torch版本终于搞懂了!
首先!cuda版本需要和gpu算力匹配:
-
查看gpu的名称算力—在python控制台中/cmd终端
- python控制台中
import torch
torch.cuda.get_device_name(0)
得到显卡的名字
torch.cuda.get_arch_list()
返回此库编译所针对的 CUDA 架构列表 - 终端中
nvidia-smi
其中显示的CUDA Version是当前驱动支持的最高CUDA版本,也就是最终使用的CUDA版本要小于等于这个版本。Driver Version是驱动版本
- python控制台中
-
查看当前cuda的版本—在cmd终端
stat cuda
查看当前使用的cuda是什么版本的
实际上就是查看/usr/local/cuda这个软链接指向的那个cuda版本安装文件
nvcc -V
和第一个命令一个意思
再者!torch版本需要和cuda版本匹配:
去torch官网查看,先找cuda版本能用的pytorch版本,再找pytorch具体版本
cuda安装位置与切换
cuda一般都安装在/usr/local,可以看到有多个版本cuda-10.2 cuda-11.5,还有一个软链接cuda(cuda->/usr/local/cuda-11.5/)说明当前正在使用的cuda版本为11.5
- 通过配置文件更改正在使用的cuda版本
主要修改~/.bashrc
在最后一行添加
修改完后更新无版本说明 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export PATH=$PATH:/usr/local/cuda/bin export CUDA_HOME=$CUDA_HOME:/usr/local/cuda 有版本说明 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64 export PATH=$PATH:/usr/local/cuda-11.8/bin export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.8
source ~/.bashrc
- 通过命令行修改/usr/local/cuda软链接的指向(这一项基于在环境变量配置文件中进行了上述无版本说明的添加)
一般获取cuda的途径还是从bashrc到cuda的软链接最终才获取到的,因此要先注意bashrc中配置有没有问题,没有再看软链接配置是否正确
遇到的奇怪的问题
环境变量中没有设置关于cuda的任何路径,但是nvcc命令能运行而且怎么改都是11.5?
因为之前运行不了nvcc(那是因为没有把cuda的bin加到环境变量里,本来应该在安装的最后一步操作的,但是当时忘记了)我就自己用sudo apt install下载了一个nvcc命令,位置在/usr/bin中,其内容就是11.5的cuda所以怎么改都改不过来。/usr/bin在环境变量里,cuda的bin不在环境变量里。即使这样,也不影响真正使用的是/usr/local/cuda指向的cuda,只不过nvcc的调用出现了问题
which nvcc
发现nvcc命令运行的是/usr/bin中的
rm -rf nvcc
删除掉/usr/bin中的nvcc
export PATH=/usr/local/cuda/bin:$PATH
将cuda软链接指向的cuda加到用户的环境变量中,打开文件~/.bashrc
(bashrc是当前用户的,/etc/profile是所有用户的)
参考资料 (链接都是很好的文章,内容更详细一些)
幸福的烦恼:显卡算力太高而pytorch版本太低不支持 https://blog.csdn.net/wtyuong/article/details/129610709
【多版本cuda自由切换】在ubuntu上安装多个版本的CUDA,并且可以随时切换cuda-11.3//cuda-11.8//cuda-11.6//cuda-11.2
https://blog.csdn.net/BetrayFree/article/details/134870198
ubuntu中的环境变量到底在哪设置
https://www.jb51.net/os/Ubuntu/918658.html