-----------------------------------------------------------------CUDA 9.0 安装-----------------------------------------------------------------
step1: 从官网下载runfile:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal
step2: 按官网指示,安装cuda9.0, 即执行:
sudo sh cuda_9.0.176_384.81_linux.run
过程中的重要选项:尤其要注意选项“Install NVIDIA Accelerated Graphics Driver for Linux-×?”,一般选择NO,最好自己手动安装NVIDIA 驱动,不要在这里更新。其他的选择默认或yes即可。
先按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 # 如果在这之前已经安装好更高版本的显卡驱动就不需要再重复安装,如果需要重复安装就选择 yes,此外还需要关闭图形界面。
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]: # 一般选择默认即可,也可以选择安装在其他目录,在需要用的时候指向该目录或者使用软连接 link 到 /usr/local/cuda。
/usr/local/cuda-9.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: y
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y
step3: 环境变量配置:修改 /etc/profile 文件
step3.1 打开 /etc/profile 文件
sudo vim /etc/profile
step3.2 向末尾添加:## 注意环境路径一定要指向/usr/local/cuda文件夹,这是一个软连接,方便后面版本转换时不出纰漏
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
step3.3 再source一下
source /etc/profile
备注:配置CUDA环境的另外一种方式是,在~/.bashrc文件末尾添加
#在文件结尾处添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
step4: 验证是否安装成功
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make all
./deviceQuery
结果如下:当末尾出现 “Result = PASS”时,表示安装成功(我猜的)
注意:末尾出现“CUDA Driver Version = 10.1, CUDA Runtime Version = 9.0”,表示nvidia的最佳匹配CUDA版本是10.1版,当前运行的CUDA版本是9.0版。当在终端中运行 "nvidia-smi"时,右上角的CUDA版本仍是显示10.1版,不会改变。(仍旧是我猜的.......)
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 2 CUDA Capable device(s)
Device 0: "GeForce GTX 1080"
CUDA Driver Version / Runtime Version 10.1 / 9.0
*****************
******省略细节*******
*****************
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
Device 1: "GeForce GTX 1080"
CUDA Driver Version / Runtime Version 10.1 / 9.0
*****************
******省略细节*******
*****************
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
> Peer access from GeForce GTX 1080 (GPU0) -> GeForce GTX 1080 (GPU1) : Yes
> Peer access from GeForce GTX 1080 (GPU1) -> GeForce GTX 1080 (GPU0) : Yes
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.1, CUDA Runtime Version = 9.0, NumDevs = 2
Result = PASS
-----------------------------------------------------------------cuDNN 安装-----------------------------------------------------------------
step1:登录https://developer.nvidia.com/rdp/cudnn-archive ,选择“cuDNN***Library for Linux”
step2: 解压下载后的文件,得到一个文件夹 ./cuda
step3:执行一下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
game over
-----------------------------------------------------------------其它:CUDA版本转换-----------------------------------------------------------------
一个ubuntu系统下可以存在多个版本的CUDA,各个CUDA版本之间可以随意切换。
(1)查看当前使用的CUDA版本
方法1:
cd /usr/local
stat cuda
将会出现以下信息:
File: 'cuda' -> '/usr/local/cuda-9.0'
Size: 19 Blocks: 0 IO Block: 4096 symbolic link
Device: 10301h/66305d Inode: 11156533 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-08-21 20:26:46.057808974 +0800
Modify: 2019-08-21 20:26:46.053808895 +0800
Change: 2019-08-21 20:26:46.053808895 +0800
Birth: -
表明当前使用的是CUDA9.0.
方法2:
cat /usr/local/cuda/version.txt
将显示以下信息:
CUDA Version 9.0.176
方法3:
nvcc --version
将会出现以下信息:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
表明使用的是CUDA9.0.
其中方法1与方法2查看的是同一个位置,都是“/usr/local/cuda/version.txt”文件,因此结果总是一样的。
方法3是从 “/etc/profile” 中的环境配置进入CUDA文件夹,当“/etc/profile”中配置的CUDA路径错误时,会引导系统使用错误的CUDA版本。同时也会得到与方法1,2不同的结果。
解决办法:
修改“/etc/profile”文件:
sudo vim /etc/profile
在末尾加上:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
(2)修改CUDA版本
通过软连接修改cuda版本,前提是这几个CUDA版本都被安装了。
cd /usr/local
# 使用CUDA8.0
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda
# 使用CUDA9.0
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
# 使用CUDA10.1
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
本文主要参考:
https://www.jianshu.com/p/6a6fbce9073f