pytorch安装 cuda版本总结

起因,我之前在2080ti上使用了pip安装了pytorch1.9+cuda10.2,在2080ti上可以跑(2080ti上cuda版本为10.0),我将所有的环境直接使用scp原封不动挪到3090以后,跑不了了,报错!具体报错我忘了,总之是很离谱的报错,好像是找不到对应的cuda还是啥

经过我大量资料查找和实验,基本确定了一下

注意pytorch的cuda版本这个概念,理解这个概念很重要,pytorch的cuda版本是pytorch版本所可以使用的最高cuda版本,是可以高于服务器本地的cuda版本的

首先,安装命令参考pytorch官网的命令,需要注意的是,pytorch官网选择cuda版本的时候需要注意以下地方:

  1. 服务器本地的cuda版本的时候应该与gpu算力匹配。(算力有影响的,像是3090算力为8.6,必须装cuda11以上的版本)。然后选择的pytorch的cuda版本必须高于服务器本地的cuda版本。比如我之前在2080ti上使用了pip安装了pytorch1.9+cuda10.2,在2080ti上可以跑(2080ti上cuda版本为10.0),我将所有的环境直接使用scp原封不动挪到3090就是因为3090本地的cuda版本是11.1,大于安装的pytorch1.9+cuda10.2,所以会直接报错!!!

2.服务器本地cuda版本应该与driver版本匹配,gpu driver版本通过nvidia-smi查看。这个因为大部分服务器本地都安装有cuda,一般来说都是满足的。这一点唯一要注意的就是(看底下)如果使用conda安装的话,不会使用服务器本地的cudatoolkit。因此要注意conda 安装的cudatoolkit版本号要与服务器中的driver版本匹配好,不能太高了

3.pytorch版本和pytorch的cuda版本不冲突,这个最简单,只要pytorch官网上存在对应的包,就不冲突,安装就完事了。经过我的实验,只要pytorch的cuda版本稍微高于服务器本地环境的cuda版本是没有问题的,可以正常跑的。

4. 服务器本地的cuda位置:在/usr/local/cuda有软链接

5.关于nvidia-smi和nvcc -V显示的cuda版本不一样原因:

  • 第一是因为环境本地装的cuda版本正确的应该是nvcc -V显示的版本。nvcc在环境变量path中被定义,一般在/usr/local/cuda-10.0/bin这种。
  • nvidia-smi显示的cuda版本是对应的driver版本所最高支持的cuda版本!!!也就是说,在第一步选cuda版本的时候你不可以选择版本大于这里显示的,小于是可以的!

6.关于conda和pip安装区别:

  • conda会安装一个cudatoolkit,这是一个已经编译完的各种可执行文件的集合库,注意里面并没有gpu driver!!! conda装的pytorch会直接调用这个cudatoolkit,而不使用服务器本地环境安装的cuda。为什么我这样说呢,因为你conda uninstall cudatoolkit –force以后程序是跑不了的,会报错。而直接conda uninstall cudatoolkit会删除pytorch,torchvision这些包
  • 使用pip安装pytorch以后不会给你安装cudatoolkit,而是会使用服务器本地安装好的cuda,因此需要保证pytorch的cuda版本号大于本地环境的cuda版本号,以便pytorch可以正常使用。经过我的验证,使用pip安装的时候pytorch版本号就算大于nvidia-smi版本号也没关系,因为此时使用的还是服务器本地安装的cuda。因此只需要保证pytorch的cuda版本号大于服务器本地安装cuda版本号即可。

7.验证能够正常使用:

import torch

torch.cuda.is_available()

x = torch.randn(2,3)

x.cuda()

  • 看版本号:
    • torch.version.cuda #查看pytorch的cuda版本号!!!!,通常可以比实际环境cuda版本大一些
    • import torch.utils.cpp_extension #通常跟nvcc -V显示的版本一样的 torch.utils.cpp_extension.CUDA_HOME 编译c++的cuda程序时候使用的cuda位置

参考文献:我觉得写得非常好

marsggbo:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?

Pytorch 使用不同版本的 cuda

发表回复

相关推荐

书籍封面设计成这样,也许不爱看书的人都想拥有一本

今年是英国封面设计协会(The Academy of British Cover Design,简称ABCD)第四年举办英国封面设计大赛了,每一年的ABCD大 ...

· 2秒前

富文本編輯tinymce在vue中的使用

vue中可以使用的富文本編輯器有很多,推薦的有:WangEditor、UEditor、Kindeditor、TinyMCE、tiptap、CKEditor5、Quill、F

· 12秒前

美國免費youtube視頻網站

也就這隨意的聊天之後,明白瞭已不再同一調上,但又能坦然接受瞭。理性的我們,讓彼此之間順其自然,不去分析和糾正,不同的...

· 21秒前

真正的主角:叙述者

笛卡尔的这句话放在我们这个时代——这个商业化写作、畅销书琳瑯满目的时代,可能已经失去效用。不过,如果我们并不关注读的到 ...

· 30秒前

全网最全的数学建模竞赛大汇总,别再被野鸡竞赛坑了!

小伙伴们,大家好~我是你们可爱的【数学建模老哥】!数学建模比赛每年有20多场,各大比赛的含金量究竟如何?哪些是真正的国 ...

· 40秒前