单台机器上安装多个cuda&即时切换功能实现小记
写在前面:最近做实验需要用到老版本的pytorch,新的cuda不支持,所以寻思着能不能安装多个版本的cuda,之前有看过相应的帖子,应该是有解决办法,在此记录下解决过程以及注意事项
另:如果能通过改代码的方式兼容就别更改环境,毕竟环境很麻烦,有时候需要用的管理员权限,还是有一定风险
准备&资源网站
- 确认自己的系统信息
cat /proc/version
- 确认需要下载的cuda版本
- 确认需要使用的pytorch版本
- cuda下载地址在这儿
- torch下载地址在这儿
- 先行下载好相应的cuda版本;torch可以选择创建anaconda虚拟环境后使用pip或者conda命令安装,如果不愿意换源也可以在上述地址先行下好轮子备用
开始安装新CUDA
写在前面:安装的时候机器上应该有一个版本的cuda,如果没有cuda,请参照别的教程,本记录针对已有cuda安装新cuda的情况
- 注意事项:新有的cuda不会覆盖原有的cuda,如果要在全局实现切换,需要改动/usr/local里的cuda软链接,这个软链接制定这当前使用的cuda目录,而全局环境变量里使用的也是这个软链接,但是并不推荐这种操作,因为服务器有很多用户使用,每个用户使用需求不同,针对此问题,应该在个人用户的.bashrc文件中更改指定cuda版本,或者使用export命令在shell窗口临时指定cuda版本(这种方法会在窗口关闭后失效,不会影响其他用户或者shell终端)
步骤
-
在下载下来的cudaxxx.run目录下使用root权限执行.run文件(如果没有权限可以使用chmod添加权限-->只需要添加当前root或者有管理员权限用户的执行权限)
-
在此界面输入accept,表示同意协议
-
再次界面只选择ToolKit和Documentation,其余都不选
- 其中Driver是指驱动,因为已经有cuda,所以不需要安装驱动
- 注意事项:X代表选中,空代表不选,操作命令下面一行有说
-
然后在上面的界面,将选项移动到cuda Toolkit,然后按a,进入内部选项,也就是这个页面,将create symbolic link字样的选项去掉,这个是创建软链接,因为我们已经有了一个cuda,所以暂时不需要更新/usr/local下的软链接(如果更改了,全局的都会变);另外shortcut也取消掉,不需要快捷方式
- 注意:这里可以更改Toolkit的安装路径,按自己需要更改,我这里没改
-
然后返回上一层界面,执行install(done选项表示当前操作完成,返回上一层)
-
安装完成
-
这个时候执行
nvcc -V
命令还是显示之前的CUDA版本(说明软链接没有覆盖);执行ll /usr/local
命令可以看到文件夹下多了一个10.2的cuda
实时切换cuda版本
写在前面:这个时候机器上应该有两个版本的cuda了,但是直接使用用到的还是最初的那个cuda,下面记录下如何即时切换版本而不影响其他用户
- 原理:临时更改当前用户的环境变量,让终端能够找到新的cuda所在地,作用范围仅限当前终端,其余终端或者用户不受影响
步骤
-
执行
export -p | grep cuda
查看cuda相关的环境变量 -
然后使用export命令更改相关变量(可以看到nvcc显示的cuda已经变成10.2了)
-
此时其他终端则不受影响,使用的还是之前的cuda版本
-
命令记录(可以封装进.sh脚本中执行,这样就不用每次手动敲了,但是需要注意的是,执行.文件时得用source命令,而不能直接执行)
export CUDA_HOME="/usr/local/cuda-10.2 export LD_LIBRARY_PATH="/usr/local/cuda-10.2/lib64" export PATH="/home/wanli/anaconda3/bin:/home/wanli/anaconda3/condabin:/usr/local/cuda-10.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
- 解释:source执行是将.sh文件内部命令提到当前shell中执行,而直接执行就是在文件中执行,相当于局部变量,执行完就释放了,所以可以观察到,source执行后当前临时环境变量会改变,而直接执行不会
ref
https://blog.csdn.net/hizengbiao/article/details/88625044
https://blog.csdn.net/qq_41917697/article/details/114437924
标签:安装,单台,cuda,usr,版本,执行,local,小记 From: https://www.cnblogs.com/lavender-pansy/p/16921532.html