关于CUDA和cuDNN的安装
不得不说,安装显卡驱动和CUDA、cuDNN是深度学习工作者的必备技能。
- CUDA(Compute Unified Device Architecture),是NVIDIA推出的运算平台。
- cuDNN 专门针对Deep Learning框架设计的一套GPU计算加速方案。
虽然安装这不是学习的目的,但却是很多人不得不面对 deep learning 第一课。因为网上框架的不同、版本的不同,所以开发环境会经常换来换去~
就像我今天的经历,因为之前的代码是在TitanX
上完成的,当时的环境是ubuntu16.04
+Tensorflow 1.4
+cuda 8
+cudnn 6
。今天换了计算机,一来是以为没什么,结果环境不对,程序无法运行。新的服务器上是1080ti
,软件环境是Tensorflow 1.6
+cuda 9
+cudnn 7
,当时装的时候,没怎么考虑版本的问题,所以现在需要修改环境。
因为这个以后也可能常用到,所以记录下来,备查。
基本安装顺序:
0. 安装显卡驱动(这个不需要反复装,只需要第一次安装完成,以后则无需在再动)
- 卸载和安装 CUDA
- 安装 cuDNN 库
1. 卸载已安装 CUDA
# 使用apt 卸载已经安装的 CUDA
sudo apt autoremove cuda
# 如果/usr/local/目录下,还有cuda的文件目录,删了吧
cd /usr/local/
rm -rf cuda-8.0/
2. 安装CUAN
2.1 下载
首先,前往下载:CUDA Toolkit Download,根据自己实际需要。
2.2 安装cudn
我选择了cuda_8.0.61_375.26_linux.run
。按照官方给的命令进行安装:
# 安装cuda
sudo sh cuda_8.0.61_375.26_linux.run
# 安装提供的补丁
sudo sh cuda_8.0.61.2_linux-run
安装cuda的时候,注意安装过程中给你提供的选项,第一次输入accept
的,接受说明条款。然后选择是是否安装显卡驱动,一般选No
,因为最好还是自己去找对应的驱动安装才比较靠谱。而且,如果像我这样换环境,自然也不需要去装驱动了。其他的默认yes
就行。
2. 3设置环境变量
打开~/.bashrc
文件,将下面内容添加到文件的最后:
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}bin:${PATH}
运行:
source ~/.bashrc
打开 /etc/profile
文件,将下面内容添加到文件的最后:
export PATH=“/usr/local/cuda/bin:$PATH”
然后,运行:
source /etc/profile
2.4 测试是否安装成功
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery
3. 安装卸载 cuDNN
cuDNN 实际是一个库,并不存在安装过程。
下载对应的对应的版本的压缩包(需要注册登陆),下载对应版本的压缩包,解压,将对应的头文件和动态链接库文件放到对应的位置,然后配置环境变量。
-
下载:
下载地址[NVIDIA cuDNN]
找到对应版本的cudnn。我下载的是 cuDNN v6.0 Library for Linux
-
解压
-
移动文件
# 保险起见,删除原来存在的cudnn文件 sudo rm -rf /usr/local/cuda/include/cudnn.h sudo rm -rf /usr/local/cuda/lib64/libcudnn* # 拷贝文件到固定位置 sudo cp include/cudnn.h /usr/local/cuda/include/ sudo cp lib64/lib* /usr/local/cuda/lib64/
-
一些相关的修改
cd /usr/local/cuda/lib64/ #删除原有文件 sudo rm -rf libcudnn.so libcudnn.so.6 # 修改权限 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn* # ldconfig通常在系统启动时运行,安装了一个新的动态链接库时,就需要手工运行这个命令 sudo ldconfig
后记
完成上面的步骤,就成功安装了环境。
在terminal上运行tensorflow 的 Demo实验,是没有问题的。
有一个小意外,我在ubuntu上用的是pycharm编辑器,在pycharm直接运行是报错的:
ImportError: libcublas.so.6.0: cannot open shared object file: No such file or directory.
没找文件?可是我的文件,明明就在那里啊!
最后检索知道,要给pycharm单独配置环境变量。
LD_LIBRARY_PATH=/usr/local/cuda/lib64
以上。
(有些截图是写博客需要,在windows上完成的,实验过程是在ubuntu 16.04下。欢迎交流。)