单台机器上安装多个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

原文地址:http://www.cnblogs.com/lavender-pansy/p/16921532.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性