Ubuntu 18.04上CUDA 9.0、cuDNN7.0及Tensorflow 1.8的安装

配置

笔者使用Dell Inspiron 7559笔记本电脑,显卡为NVIDIA GTX 960M。

目标

由于本机显卡仅有nvidia-384驱动包能够良好支持(nvidia-387、nvidia-390包均在本机出现了系统无法登陆等异常),而CUDA 9.1需要驱动至少为nvidia-387,故选择安装CUDA 9.0及cuDNN7.0。

TensorFlow 1.8完全支持CUDA 9.0因此可以使用最新版。

安装显卡驱动

使用apt安装nvidia-384驱动包(实际安装驱动为390):

sudo apt-get install nvidia-384

安装完成后重启系统。

运行命令

nvidia-smi

若能够显示显卡当前运行状况(表格)则代表驱动安装成功。

安装CUDA 9.0

准备工作

CUDA及TensorFlow体积均较大且下载源在国外,请找到一个良好的网络环境。可以寻找适当的国内镜像。

从NVIDIA官网Legacy Releases下载CUDA 9.0版本的.run安装包(https://developer.nvidia.com/cuda-90-download-archive)。

由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,故手动安装gcc-6与g++-6:

sudo apt-get install gcc-6 g++-6

之后切换至/usr/bin目录修改符号链接,使GCC 6成为默认使用版本:

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 gcc
sudo rm g++
sudo ln -s g++-6 g++

安装

为CUDA 9.0安装包赋予运行权限并运行之:

chmod 775 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run --no-opengl-libs

安装过程中选择不安装驱动,仅安装CUDA与Samples。若提示"You are attempting to install on an unsupported configuration."选择y强制安装(如果前面修改了GCC版本,此处应不报该错误)。

安装完成后若提示安装失败,可参考错误提示增加--override参数重新安装。

测试

进入Samples所在目录(默认为~/NVIDIA_CUDA-9.0_Samples),运行命令(所需时间较长)

make

(若不愿等候太长时间也可进入子目录单独make一些示例程序)

若编译成功(可能有warning)则可以进入bin目录运行其中的程序。以上皆成功时,则CUDA安装成功。

安装cuDNN 7.0

仍从NVIDIA官网下载cuDNN 7.0,注意需要注册nvidia账户才能下载。

之后正常安装其所有包(笔者使用的是.deb包)

sudo dpkg -i libcudnn7_7.0.4.31-1+cuda9.0_amd64.deb libcudnn7-dev_7.0.4.31-1+cuda9.0_amd64.deb libcudnn7-doc_7.0.4.31-1+cuda9.0_amd64.deb

安装TensorFlow 1.8

使用pip安装。若无pip则首先安装pip:

sudo apt-get install python3-pip
#若Python2则为
#sudo apt-get install python-pip

之后安装TensorFlow:

由于pip官方源下载速度较慢,可以参考网上办法修改pip源至国内镜像,例如清华大学TUNA镜像

sudo pip3 install tf-nightly-gpu

安装完成后运行TF示例程序,检查TensorFlow是否顺利运行。

最后的强迫症

以上步骤均完成后,可将默认GCC版本改回7.3,经笔者实测,应不影响TensorFlow的正常使用。

命令:

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-7 gcc
sudo rm g++
sudo ln -s g++-7 g++