1.我之前安装了一个cuda10.2的版本,由于我需要用pytorch1.0的版本,所以需要装一个cuda9.2的版本。
2.首先,在cuda版本库中选择自己需要的cuda9.2的版本。
cuda版本库添加链接描述
在这里点前面的9.2的版本
然后,选择与自己环境想对应的安装包,这里选择runfile类型的安装文件,以便后面设置每个cuda的安装路径。
3.下载完成以后,我们利用cd命令,进入到cuda_9.2.148_396.37_linux.run文件所在的目录中,然后运行下面的指令,进行安装(注意这个文件名,前面的cuda_9.2.148代表cuda的版本,后面的396.37代表的对应的NVIDIA驱动的版本,这里我用cuda9.2的安装过程为例,其他的都是一样的。但是我的nvdia驱动的版本比较高,应该可以向下兼容的。
用nvdia-smi就可以看自己驱动的版本,我的是440.100
4.安装过程中在建立软链接时需要注意一下,如果你是第一次安装cuda,那么毫无疑问输入y(yes),但是如果你是安装额外版本的cuda,是否选择y(yes)就要看你的具体需求而定,简言之,就是如果你希望启用当前安装的cuda版本,就选y,如果你只是想安装这个版本,而暂时还不想启用该版本时,就选n。
sudo sh cuda_9.2.148_396.37_linux.run #开始安装
[sudo] ts 的密码:
Logging to /tmp/cuda_install_30606.log
Using more to view the EULA.
End User License Agreement
The Software License Agreement in Chapter 1 and the Supplement
in Chapter 2 contain license terms and conditions that govern
the use of NVIDIA software. By accepting this agreement, you
agree to comply with all the terms and conditions applicable
to the product(s) included herein.
This package includes over 100+ CUDA examples that demonstrate
various CUDA programming principles, and efficient CUDA
Do you accept the previously read EULA?
#..一堆协议说明...
#直接按q退出协议说明.
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 ]: yes #是否继续安装
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.37?
(y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n
Install the CUDA 9.2 Toolkit?
(y)es/(n)o/(q)uit: y #是否安装工具包,选择y
Enter Toolkit Location
[ default is /usr/local/cuda-9.2 ]: #工具包安装地址,默认回车即可
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n #添加链接**注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本**
Install the CUDA 9.2 Samples?
(y)es/(n)o/(q)uit: y #安装样例
Enter CUDA Samples Location
[ default is /home/ts ]: #样例安装地址默认即可
# ***安装信息***
Installing the CUDA Toolkit in /usr/local/cuda-9.2 ...
Missing recommended library: libXmu.so
Installing the CUDA Samples in /home/ts ...
Copying samples to /home/ts/NVIDIA_CUDA-9.2_Samples now...
Finished copying samples.
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.2
Samples: Installed in /home/ts, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-9.2/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.2/lib64, or, add /usr/local/cuda-9.2/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.2/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.2/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 9.2 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_30606.log
#注意,这里Missing recommended library: libXmu.so出现了错误,
#是因为博主在第一次安装时,没有添加安装相关依赖的指令,因为之前安装过了
#之后我添加了依赖后,再次安装,就没有Missing错误了
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
再次安装就可以啦
# ***安装完成***
5.配置CUDA相关环境变量
修改~/.bashrc文件 在文件末尾添加环境变量
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
我这里是我之前cuda10.2的版本的环境变量
现在的版本是cuda10.2
你可以利用同样的方法下载你想安装的另一个版本的cuda工具包(注意是runfile类型),在安装过程中,注意cuda symbol link的选择(首次安装,选y,安装额外的版本,选n)
6、cuda多个版本的切换
在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本,如下图所示:
我的电脑上就安装了两个版本的cuda一个是cuda9.2一个是cuda10.2
而cuda是一个软链接,它指向我们指定的cuda版本(注意上面在设置环境变量时,使用的是cuda,而不是cuda-9.2和cuda-10.2,这主要是为了方便我们切换cuda版本,可以让我们不用每次都去该环境变量的值)
可以使用stat命令查看当前cuda软链接指向的哪个cuda版本,如下所示:
可以看到,文件类型是symbolic link,而指向的目录正是/usr/local/cuda-10.2,当我们想使用cuda-9.2版本时,只需要删除该软链接,然后重新建立指向cuda-9.2版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致)
这里需要在/usr/local目录下进行下面的操作
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.2 /usr/local/cuda
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
可以看到我已经成功的切换到9.2的版本啦
为了验证CUDA,可以进入~目录中的cuda样例目录,编译项目
编译完成后,进入bin目录,运行编译好的例程
出现这个结果就验证成功啦