赞
踩
项目开发中,不同的项目可能对不同的cuda版本有所要求,常见的是这几种cuda-11.3//cuda-11.8//cuda-11.6,按照之前的认知,一个主机只能安装一个版本的cuda,否则会引起环境混乱,知道cuda底层逻辑的人都知道这有多么扯蛋,对吧。
也正是因为受到这个东西的折磨,今天通学了一下底层逻辑和具体实操。
NVIDIA的显卡驱动与CUDA的版本并不是严格的一一对应关系,CUDA实际上也只是一个工具包,我们可以根据自己的需求进行安装,即可以安装多个CUDA版本。同时CUDNN是一个SDK,专门用于神经网络的加速包,它与CUDA也没有严格的一一对应关系,可以选择多个版本的CUDNN进行安装。虽然说不是严格的对应,不过还是要服从大版本的对应,即安装之前查看GPU驱动版本与CUDA版本的对应关系,选择对应的版本进行安装,避免不兼容而报错的错误。
话不多说,直接上图
我们可以看出cuda还是比较底层的对吧,直接和硬件交互了嘛,那我们只需要根据具体需求选择不同的cuda版本就可以了,但是这个时候可能会出现一个问题,就是说显卡和cuda不兼容问题 , 这个的原则是这样的:高版本兼容低版本,但也有可能低版本的在高版本的情况下会出现运行异常(我就遇到过),这种就需要具体情况具体分析了!
ok,我们继续接着说。
既然cuda这么底层,那么多安装几个cuda肯定也是没有问题的,这个思想有点像多系统主机,所以我们要做到的第一项工作便是如何下载对应所需版本的cuda(需要注意的是上面的图cudatoolkit在官网下载时候是CUDA Toolkit),这个自然最好的方式是去官网下载啦
CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive 但如果从官网下载就会出现一个不可避免的问题:下载速度太慢了!!!并且还可能下着下着就断了!!!烦死了(大圣表情包请自己脑补)!!!
所以需要多次下载才能真正100%,不信的话看我多苦,失败是成功之母,我真想说一句“c他老母”。
鉴于此,我下载好了,放在了百度云盘,需要的话我后面放在网盘分享出来,敬请期待,这样的话大家就下载快多了!!!
下载完成之后自然就是安装了啊
我下载的是runfile所以执行
sudo sh cuda_版本号信息_linux.run
但之前的话,下载的deb文件,说实话,deb文件还是挺好用的
sudo dpkg -i cuda_版本号_linux.deb
不过官网两个版本都有,可以自行抉择。
需要注意的是不同版本的安装前戏可能不同,比如cuda-8.0,需要阅读臭长的文档
但是cuda-11.3,界面就会清新很多
二者的安装过程也有区别,比如cuda-11.3,界面就很友好
但是cuda-8.0,就要敲一行看一行
总之,按照上面这一系列操作下来,就把cuda安装好了,需要几个安几个就行
接下来我们聊一下配置
配置方面呢,需要注意的一点是,我们之前总能搜到这两种配置方法:文件配置和命令行配置。
其中文件配置里的配置方式也有两种
- sudo gedit ~/.bashrc
-
- or
-
- vim ~/.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
一般来说,单cuda直接说明版本就可以了,不需要配置其他的,但是也可以通过软链的方法把安装的版本连接过去,二者的作用是一样的,因为系统加载是靠加载bashrc文件的
sudo ln -s /usr/local/cuda-11.8 /usr/local/cuda
需要注意的是,命令行的配置也需要文件配置的基础,只是需要知道,默认情况下的配置并不带版本号,所以修改软连接有用的的原因就在于这
sudo ln -s /usr/local/cuda-11.8 /usr/local/cuda
了解完这些基本知识,就要来看一下如何进行多版本cuda切换了
例如从cuda11.8切换到11.3
nvcc -V
- 删除已经存在的软链
- sudo rm -rf cuda
- 重新建立软链
- sudo ln -s /usr/local/cuda-11.3 /usr/local/cuda
nvcc -V
我已经无法回头,但我会在这条路上走的更坚定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。