在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

本文以CUDA9.0为例进行安装的详细介绍。

安装前提:以root账户或者加入到sudo用户组中的账户登录服务器。

CUDA安装文件下载

CUDA9.0下载链接:https://developer.nvidia.com/cuda-toolkit-archive,根据平台配置选择下载即可。

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

这里下载完毕之后需要自己把文件重命名为cuda_9.0.176_384.81_linux.run

#先执行下面的命令安装相关依赖,否则会出现Missing recommended library错误

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

 

#开始安装

sudo sh cuda_9.0.176_384.81_linux.run

 

#一堆协议说明

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

 

#直接按q退出协议说明

 

#接受协议

Do you accept the previously read EULA?

accept/decline/quit: accept

 

#不支持配置提醒,可以忽略

You are attempting to install on an unsupported configuration. Do you wish to continue?

(y)es/(n)o [ default is no ]: y

 

#是否安装显卡驱动包,这里注意由于已经安装了新版显卡驱动,所以选择n如果你是首次安装选择y

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?

y)es/(n)o/(q)uit: n

 

# 安装CUDA 9.0 Toolkit工具包

Install the CUDA 9.0 Toolkit?

(y)es/(n)o/(q)uit: y

 

#工具包安装地址,默认回车即可

Enter Toolkit Location

[ default is /usr/local/cuda-9.0 ]:

 

#添加symbolic link链接 **注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则为了不影响目前服务器系统环境这里就选no因为指定该链接后服务器系统会把默认使用的cuda指向这个新安装的版本** 如果你是首次安装可以选择yes。由于我这里安装过cuda版本,所以选择no

Do you want to install a symbolic link at /usr/local/cuda?

(y)es/(n)o/(q)uit: n

 

#安装样例

Install the CUDA 9.0 Samples?

(y)es/(n)o/(q)uit: y 

 

#样例安装地址,这里选择与安装cuda toolkit工具包的地址保持一致

Enter CUDA Samples Location

 [ default is /root ]: /usr/local/cuda-9.0

 

#输入样例安装地址回车之后报错,别担心我们慢慢分析,根据错误提示信息可知,运行安装文件时可以使用--override参数来解决。

 

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

#加上--override参数之后重新安装

 

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

# CUDA安装完成

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

注意!!!如果安装运行时加上了--override之后报如下错误

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...

Warning: cannot find Toolkit in /usr/local/cuda-9.0. Use --toolkitpath to specify the toolkit location.

Installing the CUDA Samples in /home/user ...

sh: 1: /usr/local/cuda-9.0/bin/cuda-install-samples-9.0.sh: not found

chown: cannot access '/usr/local/cuda-9.0/NVIDIA_CUDA-9.0_Samples': No such file or directory

===========

= Summary =

===========

Driver:   Not Selected

Toolkit:  Installation Failed

Samples:  Installation Failed

解决方案可以参照博客:https://blog.csdn.net/songer93/article/details/95645513

#编译并测试设备 deviceQuery:

[email protected]:~$ cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery

[email protected]:/usr/local/cuda-9.0/samples/1_Utilities/deviceQuery$ sudo make

[email protected]:/usr/local/cuda-9.0/samples/1_Utilities/deviceQuery$ ./deviceQuery

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

Result = PASS 代表设备测试通过

CUDA9.0安装大功告成,不过还没结束!我们还需要安装与CUDA9.0相对应的cuDNN7。

cuDNN安装库下载

cuDNN7下载链接:https://developer.nvidia.com/rdp/cudnn-archive,选择相应的版本下载即可,注意下载过程中需要登录NVIDIA的账号,根据提示操作即可。

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

下载完成之后得到的文件是cudnn-9.0-linux-x64-v7.6.5.32.solitairetheme8,然后重命名为cudnn-9.0-linux-x64-v7.6.5.32.tar,然后再解压cudnn-9.0-linux-x64-v7.6.5.32.tar文件会得到cuda文件夹,该文件夹包含两个文件夹include、lib64。

在ubuntu上安装多个版本的CUDA,并实现CUDA版本的*切换

cuDNN安装开始!

相关文件复制

#切换到刚刚解压出来的文件夹路径

[email protected]:~$ cd cuda/

#复制include里的头文件到/usr/local/cuda-9.0/include/中

[email protected]:~/cuda$ cd include/

[email protected]:~/cuda/include$ sudo cp cudnn.h  /usr/local/cuda-9.0/include/

#复制lib64下的所有lib开头的文件到cuda-9.0安装路径下的lib64文件夹下

[email protected]:~/cuda/include$ cd ../lib64/

[email protected]:~/cuda/lib64$ sudo cp lib* /usr/local/cuda-9.0/lib64/

 

更新软链接

#切换到cuda-9.0安装路径下的lib64文件夹下

[email protected]:~/cuda/lib64$ cd /usr/local/cuda-9.0/lib64/

#删除原有动态文件,版本号注意变化,可在上述cudnn-9.0-linux-x64-v7.6.5.32.tar文件解压得到的文件夹cuda中的lib64文件夹中查看

[email protected]:~/usr/local/cuda-9.0/lib64$ sudo rm -rf libcudnn.so libcudnn.so.7

#生成软链接,版本号注意变化,同样可在上述cudnn-9.0-linux-x64-v7.6.5.32.tar文件解压得到的文件夹cuda中的lib64文件夹中查看

[email protected]:~/usr/local/cuda-9.0/lib64$ sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7

[email protected]:~/usr/local/cuda-9.0/lib64$ sudo ln -s libcudnn.so.7 libcudnn.so

#立刻生效

[email protected]:~/usr/local/cuda-9.0/lib64$ sudo ldconfig -v

cuDNN安装结束!

至此CUDA-9.0的整个安装就结束了!接下来看普通用户如何在SSH会话状态下实现CUDA版本的*切换!

下载CUDA版本切换脚本:https://github.com/phohenecker/switch-cuda,将switch-cuda.sh脚本下载到自己账户上,执行以下操作来进行*切换。

#查看服务器上所有的CUDA版本

[email protected]:~$ source switch-cuda.sh 

#任意切换CUDA版本

[email protected]:~$ source switch-cuda.sh 9.0

感谢阅读!有帮助请您收藏。