CaptainChen

Ubuntu14.04 + GTX 960 +Tensorflow安装教程

1. 安装CUDA8.0

说明1:本文默认已安装Nvidia私有驱动。检查方法:桌面右上角点击设置图标,点击关于这台计算机,在图形一栏若显示GeForce GTX960/…类似字样,说明已安装N卡私有驱动。否则请参考我的另一篇博客Ubuntu下GTX1080显卡驱动折腾小记

说明2:若已安装CUDA8.0之前的版本(比如7.5)建议先卸载旧版本CUDA: 运行位于/usr/local/cuda-7.5/bin下的uninstall脚本,然后重启

1.1 下载CUDA8.0

下载地址:https://developer.nvidia.com/cuda-downloads

本文选取runfile文件安装方式,如下图:

1.2 执行runfile

切换到CUDA8.0 runfile的下载目录,执行:

1
sudo sh cuda_8.0.44_linux-run.run (注意版本号,后续不再提醒)

此时,屏幕上会开始出现一些协议和说明性的文字,键盘按下q键直接跳过协议阅读部分。

然后屏幕上会依次出现以下询问文字:

Do you accept the previously read EULA?

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 3xx.xx?

Install the CUDA 8.0 Toolkit?

Enter Toolkit Location

Do you want to install a symbolic link?

Install the CUDA 8.0 Samples?

Enter CUDA Samples Location

除了第二行选择no拒绝重新安装N卡驱动外,其余一律选择yes和默认位置。

1.3 声明环境变量

说明:若以前安装过CUDA7.5这样的老版本CUDA,由于之前已创建过软链接(/usr/local/cuda),声明环境变量部分可以跳过,后面为cuDNN配置环境变量时也是如此。

更改PATHLD_LIBRARY_PATH: 在~/.bashrc文件中,添加以下两行并保存(sudo gedit ~/.bashrc):

1
2
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

执行:

1
source ~/.bashrc

可用echo $PATHecho $LD_LIBRARY_PATH命令检查下是否配置成功。

验证nvcc编译器版本:

1
nvcc -V

若正确安装,会显示CUDA版本。

1.4 (可选)编译示例代码

跑一个简单的例子deviceQuery:

~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery路径下,依次执行:

1
2
make
./deviceQuery

最后一行若显示为Result = PASS则表明CUDA8.0安装成功,运行正常

2. 安装cuDNN5.1

注意:最新版的cuDNN已迭代至6.0版本,截至2017.5.1日,TensorFlow通过pip快速安装的版本只支持到5.1版。若要使用最新版cuDNN,需要手动编译TensorFlow。而本人亲测使用最新版cuDNN编译的TensorFlow版本速度快了不少,追求极致速度的推荐手动编译。

2.1 下载cuDNN库文件

下载地址:https://developer.nvidia.com/cudnn (注意,下载cuDNN需要注册Nvidia开发者帐号)

各种提示一路点下来,最后如下图:

2.2 配置库文件

解压第一个下载的cuDNN Library文件,解压,得到一个cuda文件夹。为方便后续操作,借助cp命令复制此cuda文件夹到/usr/local/cuda文件夹下(也就是让此cuda文件下又多一个cuda文件夹):

1
sudo cp -rf 解压出的cuda文件夹所在目录/cuda/ /usr/local/cuda/cuda

切换到/usr/local/cuda文件夹下,执行:

1
2
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

然后赋予可读权限:

1
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

配置环境变量:

~/.bashrc中添加两行:

1
2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
export CUDA_HOME=/usr/local/cuda

然后执行:

1
source ~/.bashrc

2.3 (可选)编译示例代码

解压第一步下载下来的.deb文件,切换到其中的/usr/src/cudnn_samples_v5/mnistCUDNN下,依次执行:

1
2
make
./mnistCUDNN

若最后一行出现Test passed,表明cuDNN安装成功。

3. 安装TensorFlow最新版

3.1 安装

本文采取pip安装方式,其余如Anaconda等安装方式参见官网

安装必要文件:

1
sudo apt-get install python-pip python-dev

安装TensorFlow:

1
sudo pip install tensorflow-gpu

安装完成。

注意:以上方式安装的为最新版TensorFlow。若要安装旧版本,可改用以下命令:

1
sudo pip install tensorflow-gpu==1.0(任一旧版本号)

3.2 测试

终端执行:

1
2
3
$ python
...
>>> import tensorflow as tf

若没报错,且出现几行successfully opend CUDA library libcu***.so locally字样,说明安装成功。

另外本人发现在个别硬件上即使cuda和cuDNN配置正确,装完TensorFlow仍然不能调用gpu的情况。最后通过手动编译TensorFlow解决,暂无其他方法。

3.3 常见问题

  1. 安装过程出现错误:Common Problems
  2. 运行时显卡调用问题集: 知乎 深度学习theano/tensorflow多显卡多人使用问题集
觉得文章不错,就赏我一杯咖啡钱吧~