cuda、cudnn安装(多版本)
cuda、cudnn安装(多版本)
2019年01月24日 22:33:40 hancoder 阅读数:46
作者:HAN,部分参考网络,环境ubuntu16,1080Ti
感谢G学姐的服务器~ 让我从瞎安到熟练…
#1、查现有cuda和cudnn版本的命令
cuda 版本
cat /usr/local/cuda/version.txt
- 1
cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
- 1
#2、显卡驱动,cuda,cudnn对应关系
nvidia与cuda需要满足关系:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
cuda与cudnn需要满足关系:
https://developer.nvidia.com/rdp/cudnn-archive
cuda历史版本下载连接:
https://developer.nvidia.com/cuda-toolkit-archive
#3、安装nvidia驱动
首先去官网上查看适合你的GPU的驱动
官网:https://www.nvidia.com/Download/index.aspx?lang=en-us。
例如,本人的GPU适合的驱动如图:
参考链接安装:
https://www.cnblogs.com/luofeel/p/8654964.html(最复杂,最推荐的)
https://blog.****.net/u014682691/article/details/80605201(第二个链接里他提供的第二种方法他给的贴图是安装cuda的贴图,所以我最推荐第一个链接)
法1:UBUNTU右上角》系统设置》软件与更新》附加驱动选择》重启。这个方法最简单,但不推荐。不推荐理由:失败概率有些高,而且容易造成循环登录的问题。
法2:(注:这种方式我也出现过循环登录的问题(实际上不知道法1法2哪个引起的),所以对此简单方法不负责~):
执行如下语句,终端输入
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390(数字改你需要的版本,比如384)
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
执行完上述后,重启:sudo reboot
法3:去nvidia官网选择自己显卡配置然后下对应的驱动。期间Crtl+Alt+F1或者lightdm stop,会黑屏,新手不要慌,这只是进入里命令行模式。具体步骤见上面最复杂的链接
显卡和CUDA需要对应:
输入: nvidia-smi
如果出现了你的GPU列表,则说明驱动安装成功了。
另外也可以通过:nvidia-settings
查看自己机器上详细的GPU信息,本人机器的信息如下:
#4、安装CUDA
cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda。
从这里下载cuda9.0的安装文件 cuda下载地址
注意这里下载的是cuda9.0的runfile(local)文件。
那个9.0.176后面应该对应的是显卡驱动号,我下了比他高的版本390
下载完cuda9.0后,执行如下语句,运行runfile文件:
sudo sh cuda_9.0.176_384.81_linux.run
即:sudo sh 对应你的run文件
- 1
- 2
下面是输入命令后的显示界面与选择,简言就是第一个写n,其余全部yes默认。
因为驱动之前已经安装,这里就不要选择安装驱动。其余的都直接默认或者选择是即可。
#先执行下面的命令安装相关依赖,
#否则会出现`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_8.0.61_375.26_linux.run #开始安装
#..一堆协议说明...
#直接按q退出协议说明.
[email protected]: accept/decline/quit: accept #接受协议
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y #是否安装工具包,选择y
Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]: #工具包安装地址,默认回车即可
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
#添加链接。注意这个连接,如果你之前安装过另一个版本的cuda,
#除非你确定想要用这个新版本的cuda,否则这里就建议选no,
#因为指定该链接后会将cuda指向这个新的版本
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y #安装样例,我默认到了home下
Enter CUDA Samples Location
[ default is /root ]: #样例安装地址默认即可
# ***安装信息***
Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Missing recommended library: libXi.so
Missing recommended library: libXmu.so
#注意,这里出现了Missing recommended library错误,
#是因为博主在第一次安装时,没有添加最开始的那条安装相关依赖的指令,
#之后我添加了依赖后,再次安装,就没有Missing错误了
Installing the CUDA Samples in /root ...
Copying samples to /root/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples.
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /root, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-8.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.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-8.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.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 361.00 is required for CUDA 8.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_6388.log
# ***安装完成***
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
使用:
sudo gedit ~/.bashrc
- 1
打开“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
#注意这里不要写cuda几点几,因为我们要实现多版本切换
- 1
- 2
- 3
- 4
使配置生效:
source ~/.bashrc
- 1
#5、测试cuda的Samples
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
- 1
- 2
- 3
如果显示的是一些关于GPU的信息,则说明安装成功了。
安装完cuda8.0和9.0后我在这个目录下显示是这样的
同时home下有8.0和9.0的sample
#6、安装cudnn
首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。
https://developer.nvidia.com/rdp/cudnn-archive
这里我观察了一下,看到cuda8.0和9.0都可以安装cudnn7.1.3,那么我就下它啦~
原来选的是7.1.4,但是不太清楚deb和Tar的区别。或者说不知道他能不能同时对8.0和9.0生效,为了生效,我决定麻烦点分布下载8.0和9.0对应的cudnn7.1.3然后分布配置一下。(有懂的大佬希望可以指教一下这里能不能直接共用一份7.1.3)而且因为切换cuda版本的时候要删除/usr/local/cuda这个软链接,所以我没有像官网那样复制.h到/usr/local/cuda,而是分布复制到了/usr/local/cuda-8.0和/usr/local/cuda-9.0
有deb和Tar包,安装哪个都可以,对应的安装方法见上图
是个压缩文件(.tgz)
大概思路是把cudnn解压缩得到的cuda(这个cuda只是一个文件名而已),把cudnn包里include和lib64里的.h文件全部复制到cuda8.0和9.0对应的的include和lib64文件里。
下载完cudnn之后进行解压,cd进入cudnn解压之后的cuda
文件目录,在命令行进行如下操作:
打开为9.0下载的cudnn
#复制头文件
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
- 1
- 2
- 3
- 4
把刚才解压得到的cuda删了,再打开8.0下载的cudnn
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*
- 1
- 2
- 3
网上说的上面复制动态链接库其实就是上面的步骤,不用重复
#7、切换版本8.0和9.0
#切为9.0
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
#8.0和9.0来回改就可以
- 1
- 2
- 3
- 4
检查版本:nvcc --version
图示
perfect~
不懂请留言~