概述
之前用过TensorFlow的CPU版,现在买了个新电脑,就想把GPU也用起来,又因为目前大部分工作是在linux下做,所以有了在linux下安装cuda和TensorFlow的计划,快一个礼拜一直在搞这件事,重装了N次系统,cuda和TensorFlow终于是能用了。姑且写一下攻略吧,也算自己留个档。
注意事项
- 此攻略适用于广大使用Nvidia显卡的Ubuntu用户,CentOS,RedHat,Windows等等用户请自行阅读Nvidia各种安装说明,A卡用户出门左转。
- 双显卡用户注意,按此攻略安装的nvidia显卡驱动可以支持TensorFlow等等的机器学习计算,然而并不能优化图形界面。这个主要是因为我目前还没找到好的办法进行双显卡切换,搞了几次都搞到重装,心累,所以现在图形化界面还是用的Intel集显。如果大家有好办法欢迎共享。
- 关于软件版本以及安装方法,这里安装的是CUDA-8.0+CUDNN-7+TensorFlow-0.11.0,Nvidia驱动和CUDA都是脚本安装,CUDNN是Debian包安装,TensorFlow是pip直接安装。
废话不多说了。
原料
- 一个有Nvidia显卡的电脑
要知道N卡的型号,不知道的可用命令sudo lspci | grep -i nvidia
查看,我的是GTX960M - 一个Ubuntu系统
同样要明确系统版本,我的是16.04 - GCC
GCC为系统自带程序,无需自行安装。有安装教程说gcc需要降级到5以下,这个主要针对CUDA和你的Ubuntu系统版本,我用的gcc 5.4版本装CUDA8完全没有问题,Ubuntu14.04的用户最好降一降。 - CUDA8安装脚本
贴个链接指路,官网现在默认你安装的是9.0版本,然而9.0版本需要显卡驱动至少在384及以上,出于稳妥考虑装了8.0版本,同样对驱动有要求(在375及以上)。 - CUDNN安装包
链接指路下载前需要注册,然后要填个问卷,按步骤来就行很快,然后按照你的系统版本和你将要安装的cuda版本选择下载哪一个,Ubuntu用户不要选power8,可以看到一共有三个包可以下载,分别是Runtime Library,Developer Library和Code Samples,都下了吧反正也不大(你走)。 - 驱动安装脚本
链接指路,按照提示找到适合自己电脑显卡型号的驱动,下载得到一个脚本(.sh)文件。
步骤
卸载原有的N卡驱动
这一步主要是针对像我这种以前为了各种谜之目的装过Nvidia驱动而版本又不够高导致后面CUDA装了不能用的熊程序员,以及看了别家攻略安装失败了的你,不要觉得之前装过Nvidia驱动装错了就可以直接丢开。
执行以下命令:
sudo apt-get --purge remove nvidia-*
对于之前从Nvidia官网下载安装过驱动的,如果你的驱动版本小于CUDA的要求(8.0至少375,9.0至少384),找到之前安装脚本所在的目录,执行以下命令:
sudo sh 你的脚本.sh --uninstall
禁用开源驱动nouveau
Ubuntu系统默认使用的驱动即为开源的驱动nouveau,我们需要禁用它并且之后也不需启用。
编辑系统配置文件blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
在其中添加下面两行:
blacklist nouveau
options nouveau modeset=0
保存,退出,执行如下命令使配置生效:
sudo update-initramfs -u
重启电脑,至此开源驱动就已被禁用了,可用如下命令进行检查:
lsmod | grep nouveau
如果系统什么也没返回,说明nouveau禁用成功
关闭UEFI模式
这一步主要是安装驱动的需要。在UEFI模式下安装驱动需要为驱动生成签名,公钥需要存储在linux内核信任的某目录下,关于这方面没有找到什么资料,目前大部分的解决办法都是直接关闭UEFI模式。
UEFI的关闭方法与电脑型号有关,我的戴尔灵越是F2进入BIOS后在Boot标签下选择关闭Secure Boot,之后就可以选择从UEFI模式切换到Legacy模式,其他电脑型号请百度。
结束X server服务
在终端输入以下命令:
sudo service lightdm stop
之后如果直接死机请重启查看nouveau禁用设置是否正确。正常情况会黑屏,然后按Ctrl+Alt+F1进入字符终端界面,输入用户名和密码通过验证。
安装Nvidia驱动
进入存放驱动脚本的目录,执行以下命令:
sudo chmod a+x 你的脚本.sh
sudo ./你的脚本.sh -no-x-check -no-nouveau-check -no-opengl-files
执行脚本的三个参数是为了防止接下来循环登录。然后按照步骤进行就可以了,如果提示无法安装32-bit lib不用担心,回车继续就好。
安装完成后重新启动X server服务:
sudo service lightdm start
如果执行以上命令后能够正常进入图形界面,恭喜你安装驱动成功。
安装CUDA
进入CUDA安装脚本所在的目录,执行以下命令:
sudo sh 你的脚本.sh
首先会出现一段极长的协议,最后输入accept表示同意,然后会选择是否安装nvidia驱动367,选择no,遇到询问是否安装opengl的地方如果你是双显卡也务必选择不安装,其他同意或默认即可。
安装完成后需要将CUDA的路径加入环境变量,首先打开~/.bashrc文件,添加以下代码:
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
中间不要加多余的空格,如果你安装的不是8.0版本则修改版本号,保存,然后打开/etc/profile,文末加上以下代码:
export PATH=/usr/local/cuda/bin:$PATH
保存,至此CUDA安装完毕。
安装CUDNN
进入CUDNN安装包所在目录,执行以下命令:
sudo dpkg -i runtime包.deb
sudo dpkg -i developer包.deb
sudo dpkg -i 代码sample包.deb
至此,CUDNN安装完成。
验证CUDA和CUDNN是否安装成功
CUDNN的code sample可以用来检查CUDNN和CUDA是否安装成功,执行以下命令:
sudo cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
sudo ./mnistCUDNN
正常情况下执行以上代码会得到Test passed!
的结果。如果在make步出错,那么可能gcc需要降级;如果出现CUDA driver version is insufficient for CUDA runtime version
,那么或许你的显卡驱动安装失败,或许你之前安装过低版本的nvidia的显卡又没有删掉。
安装TensorFlow
如果以上步骤都没有问题,恭喜你可以开始安装TensorFlow了。这里采用的是用pip安装的方法。首先安装pip和python dev:
sudo apt-get install python-pip python-dev
安装完毕后执行如下命令:
sudo pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl
如果出现无法访问的情况,翻个墙或者去清华镜像站安装吧,注意选择tensorflow和python版本,通常来说是能够正常下载安装的。
至此TensorFlow安装完成。
验证TensorFlow是否安装成功以及是否是否能够使用GPU
注意:如果是关闭UEFI模式安装的GPU驱动,那么在使用GPU加速机器学习时也需要关闭UEFI模式,否则会报错。
打开一个python终端:
python
逐行敲入以下代码:
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
如果出现以下字样,说明TensorFlow安装成功,并且能够成功启用GPU。
Ctrl+D关闭python终端。
如果出现以下错误,或许UEFI模式没有关闭,或许显卡驱动安装错误。
参考文档
- Nvidia Driver官方安装指南
- Nvidia Cuda官方安装指南
- Nvidia CUDNN官方安装指南
- ycszen的个人博客
- TensorFlow中文社区
最后
以上就是哭泣冰淇淋为你收集整理的Linux下CUDA+CUDNN+TensorFlow安装笔记的全部内容,希望文章能够帮你解决Linux下CUDA+CUDNN+TensorFlow安装笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复