说明 1:本文默认已安装 Nvidia 私有驱动。检查方法:桌面右上角点击设置图标,点击关于这台计算机
,在图形
一栏若显示 GeForce GTX960/…
类似字样,说明已安装 N 卡私有驱动。否则请参考我的另一篇博客Ubuntu下GTX1080显卡驱动折腾小记。
说明 2:若已安装 CUDA 8.0 之前的版本(比如 7.5)建议先卸载旧版本 CUDA: 运行位于 /usr/local/cuda-7.5/bin
下的 uninstall 脚本,然后重启。
下载地址:https://developer.nvidia.com/cuda-downloads
本文选取 runfile 文件安装方式,如下图:
切换到 CUDA8.0 runfile 的下载目录,执行:
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 和默认位置。
说明:若以前安装过 CUDA 7.5 这样的老版本 CUDA,由于之前已创建过软链接(/usr/local/cuda),声明环境变量部分可以跳过,后面为 cuDNN 配置环境变量时也是如此。
更改 PATH
和 LD_LIBRARY_PATH
: 在 ~/.bashrc
文件中,添加以下两行并保存(sudo gedit ~/.bashrc
):
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
执行:
source ~/.bashrc
可用 echo $PATH
和 echo $LD_LIBRARY_PATH
命令检查下是否配置成功。
验证 nvcc 编译器版本:
nvcc -V
若正确安装,会显示 CUDA 版本。
跑一个简单的例子 deviceQuery
:
在 ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
路径下,依次执行:
make
./deviceQuery
最后一行若显示为 Result = PASS
则表明 CUDA 8.0 安装成功,运行正常
注意:最新版的 cuDNN 已迭代至 6.0 版本,截至 2017.5.1 日,TensorFlow 通过 pip 快速安装的版本只支持到 5.1 版。若要使用最新版 cuDNN,需要手动编译 TensorFlow。而本人亲测使用最新版 cuDNN 编译的 TensorFlow 版本速度快了不少,追求极致速度的推荐手动编译。
下载地址:https://developer.nvidia.com/cudnn (注意,下载 cuDNN 需要注册 Nvidia 开发者帐号)
各种提示一路点下来,最后如下图:
解压第一个下载的 cuDNN Library 文件,解压,得到一个 cuda 文件夹。为方便后续操作,借助 cp 命令复制此 cuda 文件夹到 /usr/local/cuda
文件夹下(也就是让此 cuda 文件下又多一个 cuda 文件夹):
sudo cp -rf 解压出的cuda文件夹所在目录/cuda/ /usr/local/cuda/cuda
切换到/usr/local/cuda
文件夹下,执行:
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*
配置环境变量:
~/.bashrc
中添加两行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
export CUDA_HOME=/usr/local/cuda
然后执行:
source ~/.bashrc
解压第一步下载下来的 .deb
文件,切换到其中的 /usr/src/cudnn_samples_v5/mnistCUDNN
下,依次执行:
make
./mnistCUDNN
若最后一行出现 Test passed
,表明 cuDNN 安装成功。
本文采取 pip 安装方式,其余如 Anaconda 等安装方式参见官网
安装必要文件:
sudo apt-get install python-pip python-dev
安装 TensorFlow:
sudo pip install tensorflow-gpu
安装完成。
注意:以上方式安装的为最新版 TensorFlow。若要安装旧版本,可改用以下命令:
sudo pip install tensorflow-gpu==1.0(任一旧版本号)
终端执行:
$ python
...
>>> import tensorflow as tf
>>> sess = tf.Session()
若没报错,并通过命令行指令 nvidia-smi
观察到 GPU 显存占满,说明安装成功。
另外本人发现在个别硬件上即使 cuda 和 cuDNN 配置正确,装完 TensorFlow 仍然不能调用 gpu 的情况。最后通过手动编译 TensorFlow 解决,暂无其他方法。