Ubuntn16.04下cuda10.0和cuda9.0自由切换

电脑存在多个不同版本的cuda,可能不同的框架需要的cuda版本也不一样,快速驾驭cuda版本切换很有必要,之前一直都是重装,卸载,也不敢去尝试,今天努力对着大神们的博客学习了一遍,居然成功了,做个记录以防止后续要用。
[参考链接]
首先声明一下我电脑驱动版本430.46最高了,还有cuda9.0已经存在。
Ubuntn16.04下cuda10.0和cuda9.0自由切换_第1张图片
1、安装cuda10.0
(注意选择[对应版本](https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal),点击下载,推荐使用 runfile,安装很简单)
Ubuntn16.04下cuda10.0和cuda9.0自由切换_第2张图片
到CUDA Toolkit Download下载,我下载的是cuda_10.0.130_410.48_linux.runUbuntn16.04下cuda10.0和cuda9.0自由切换_第3张图片
2.进入Cuda10.0 安装
终端命令一定要切换到cuda_10.0.130_410.48_linux.run 的目录(即你下载的文件目录下面),执行下面两条命令安装:

sudo chmod +x cuda_10.0.130_410.48_linux.run          # 为 cuda添加可执行权限
sudo ./cuda_10.0.130_410.48_linux.run                 # 安装

Ubuntn16.04下cuda10.0和cuda9.0自由切换_第4张图片

安装新的CUDA-10.0时记得不要选择安装驱动且不要生成软链接(这2步对应的是安装cuda10.0过程,键盘敲入n即可),安装完成后可以在/usr/local/下看到cuda-9.0和cuda-10.0两个文件夹(cudnn的安装是把一个.h头文件和几个lib放到cuda的对应目录下面,记得sudo cp的时候写到真实的cuda-10.0这样的路径下,不要写到cuda软链接路径就好,这样不影响版本对应)。
安装的过程会遇到几个选项:

先按q退出说明,直接进入下一步(不然等很久)
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n # 不要安装驱动,之前已经安装好了

Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-10.0 ]: # 一般选择默认即可,也可以选择安装在其他目录,在需要用的时候指向该目录或者使用软连接 link 到 /usr/local/cuda。

/usr/local/cuda-10.0 is not writable.
Do you wish to run the installation with 'sudo'?
(y)es/(n)o: y

Please enter your password: 
Do you want to install a symbolic link at /usr/local/cuda? # 不要安装软链接,是否将安装目录通过软连接的方式 link 到 /usr/local/cuda,yes or no 都可以,取决于你是否使用 /usr/local/cuda 为默认的 cuda 目录。
(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: n

开始安装

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

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-10.0
Samples:  Not Selected

Please make sure that
 -   PATH includes /usr/local/cuda-10.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-10.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_19751.log

好了,到这里cuda10.0成功安装了
下面就是重中之重,如何切换cuda9.0和cuda10.0版本
参考大神链接
保证多个CUDA版本共存的前提是NVIDIA的驱动都能够支持你所安装的CUDA版本,所以驱动的版本尽可能高,越新的驱动支持的CUDA版本越多,博主的438能够支持9.0和10.0。

在先前安装的CUDA的过程中,大家一般都会选择生成cuda-x.0文件夹的软链接/usr/local/cuda,这个文件夹是实际安装的cuda-x.0文件夹的链接,不包含实际文件,是方便系统设置环境变量直接调用cuda的,安装多个版本的CUDA,然后利用软链接就可以实现版本切换。
实现多版本CUDA共存的第一步,就是要将先前添加到**.bashrc文件**里的环境变量路径全部指向cuda软链接,也就是环境变量的路径里所有cuda-x.0的名字都改成cuda,如下:
终端输入`

gedit ~/.bashrc
#保存关闭后,执行下面命令,立即生效
source ~/.bashrc   

ubuntn系统会弹出一个文件,.bashrc隐藏系统中,输入gedit ~/.bashrc,弹出如下文件在红色方框处添加

export CUDA_HOME=/usr/local/cuda
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Ubuntn16.04下cuda10.0和cuda9.0自由切换_第5张图片
终端输入source ~/.bashrc 保存退出。
原先安装的是CUDA-9.0,所以nvcc -V指令可以获得版本信息:
Ubuntn16.04下cuda10.0和cuda9.0自由切换_第6张图片
安装新的CUDA-10.0时记得不要选择安装驱动且不要生成软链接,安装完成后可以在/usr/local/下看到cuda-9.0和cuda-10.0两个文件夹(cudnn的安装是把一个.h头文件和几个lib放到cuda的对应目录下面,记得sudo cp的时候写到真实的cuda-10.0这样的路径下,不要写到cuda软链接路径就好,这样不影响版本对应)。
将cuda-9.0切换成cuda-10.0的过程如下:
终端切换到/usr/local/下,

sudo rm -rf /usr/local/cuda  #删除之前生成的软链接
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda #生成新的软链接
cat  /usr/local/cuda/version.txt#查看当前cuda的版本

终端显示:
Ubuntn16.04下cuda10.0和cuda9.0自由切换_第7张图片
同理切换cuda9.0只需要sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda换成sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda,其他的步骤都一样,好好学习一下吧。

你可能感兴趣的:(深度学习,python,cuda)