CUDA cuDNN TensorFlow Ubuntu16.04 详细安装记录

系统:Ubuntu 16.04.5 LTS 64 位(内核:4.13.1-041301-generic自己装的、4.4.0-141-generic最开始的)

显卡:GTX1070(驱动:随cuda一起安装,没用软件和更新里的384.130)

软件:TensorFlow 1.12.0 + CUDA 9.0 + cuDNN v7.4.2

 

因为无线网卡驱动的原因,内核我装了4.13.1,后来升到4.16.1又降下来的,

升级内核过程https://blog.csdn.net/Kim0403/article/details/85545088

cuda9.0安装指南:https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html

 

一、先确定需要的版本

首先查看TensorFlow已验证配置:https://tensorflow.google.cn/install/source

已经有1.13.0的测试版了,虽然支持Python3.7,但是需要Ubuntu18.04 + CUDA10.0,作为小白,不想尝试太新的东西。

所以打算安装TensorFlow1.12.0,之前自己安装了最新的NVIDIA驱动跟CUDA9.2,但是运行有问题。所以换CUDA9.0。

二、安装CUDA9.0

0.下载runfile

从官网https://developer.nvidia.com/cuda-toolkit-archive下载了cuda_9.0.176_384.81_linux.run

1.安装前的检查

根据9.0官网教程

  • Verify the system has a CUDA-capable GPU.
  • Verify the system is running a supported version of Linux.
  • Verify the system has gcc installed.
  • Verify the system has the correct kernel headers and development packages installed.

验证GPU是否具有CUDA功能

验证是否拥有受支持的Linux版本

验证系统上安装的gcc版本

确保安装正确版本的内核头文件和开发包。

以上四条一般不可能有问题。

 

安装指南建议尽可能使用特定于发行版的软件包,即RPM或Deb软件包。

我下载了runfile,感觉不更新本机软件包管理系统可能更好,我又不跨平台开发(跨平台仅限ubuntu)。

如果之前安装过其他版本的NVIDIA驱动,建议卸载。

步骤:https://blog.csdn.net/Kim0403/article/details/85700062

参照上面链接里的1.2.3.4步。即使没有安装过NVIDIA驱动,也要做到2.3.4这三步

安装可能出现一些Missing recommended library:libxxx.so问题,先提前解决三个

sudo apt-get install libxmu-dev libxi-dev libx11-dev

2.安装

按Ctrl+Alt+F1进入命令行模式安装

The CUDA driver cannot be installed while the Nouveau drivers are loaded or while the graphical interface is active.

所以先关闭图形界面

sudo service lightdm stop

然后安装

chmod a+x cuda_9.0.176_384.81_linux.run
sudo sh cuda_9.0.176_384.81_linux.run

有博主戏称EULA两公里长,按很久Enter,其实可以Ctrl+C直接跳过

输入 accept 之后,会问你是否需要安装驱动,选择yes

还会询问是否安装OpenGL,我选的yes

这里说明一下,官网提到:If installing the driver, the installer will also ask if the openGL libraries should be installed. If the GPU used for display is not an NVIDIA GPU, the NVIDIA openGL libraries should not be installed. Otherwise, the openGL libraries used by the graphics driver of the non-NVIDIA GPU will be overwritten and the GUI will not work. If performing a silent installation, the --no-opengl-libs option should be used to prevent the openGL libraries from being installed. 大意是用于显示的GPU不是NVIDIA GPU,则不应安装NVIDIA openGL库。我只有独显工作,所以我安装了。

其他选项都是 默认 或者 yes

我驱动安装失败了一次,重新按步骤走了一遍,第二次成功了。驱动,CUDA9.0一起安装完成。

3.安装之后

我们需要设置环境,在 ~/.bashrc 里设置一下cuda的环境变量

sudo gedit ~/.bashrc

在最后面加上

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

使改动生效

source ~/.bashrc

检查安装成功木有

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

最后运行示例,有的运行起来已经没问题了,比如bandwidthTest和deviceQuery结果均为pass

三、安装cuDNN

cuDNN 的全称是 The NVIDIA CUDA® Deep Neural Network library,是专门用来对深度学习加速的库。

官网下载链接:https://developer.nvidia.com/rdp/cudnn-download

下载需要注册NVIDIA开发者。我选择了Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.0

然后选择 cuDNN Library for Linux,下载下来之后解压安装即可。

tar -zxvf cudnn-*.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/ -d
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*

这时可以发现在 /usr/local/cuda/include 目录下多了 cudnn.h 头文件。

四、安装TensorFlow

我安装了Anaconda3,由于tensorflow暂时还不支持python3.7,所以用普通的命令安装时会出现找不到tensorflow可用版本的问题。所以,新建一个Python版本为3.6的tensorflow的环境,然后安装tensorflow。

conda create -n tensorflow python=3.6

可以看到提示

# To activate this environment, use
#     $ conda activate tensorflow
# To deactivate an active environment, use
#     $ conda deactivate

所以通过 conda activate tensorflow 指令,进入虚拟环境,执行安装指令

pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ tensorflow-gpu==1.12.0

如果直接执行pip install tensorflow-gpu==1.12.0,网速太慢。清华的源总是中途出错,所以用了中科大的源。

完成之后,输入 import tensorflow ,没有任何错误,至此完成安装。

五、卸载

卸载TensorFlow:

pip uninstall tensorflow-gpu==1.12.0

卸载cuDNN:

sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*

卸载NVIDIA驱动:

sudo /usr/bin/nvidia-uninstall

卸载CUDA9.0

sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl

最后一点问题

有个样例无法运行:~/NVIDIA_CUDA-9.0_Samples/5_Simulations/nbody (跟opengl有关)

~/NVIDIA_CUDA-9.0_Samples/5_Simulations/nbody$ make
>>> WARNING - libGLU.so not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
>>> WARNING - gl.h not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
>>> WARNING - glu.h not found, refer to CUDA Getting Started Guide for how to find and install them. <<<

网上解决方法之一:https://www.jianshu.com/p/b3ecfa1df423

我略有不同,先找到libGLU.so

$ locate libGLU.so
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1

然后创建软链接。

sudo ln -s /usr/lib/x86_64-linux-gnu/libGLU.so.1 /usr/lib/libGLU.so

libGLU.so不报错了,但是gl.h和glu.h还是not found.如果你仅有libGLU.so的问题,上述方法足以解决

 

cuda官方给出的提示:Note: Installing Mesa may overwrite the /usr/lib/libGL.so that was previously installed by the NVIDIA driver, so a reinstallation of the NVIDIA driver might be required after installing these libraries.我尝试了一下,不动cuda仅卸载安装NVIDIA驱动完全不影响CUDA,但是我重装了驱动还是老样子,换驱动版本也没用……

除了上一段,官网还给了第二个方法,安装第三方库,但是我遇到了如下问题

$ sudo apt-get install freeglut3-dev libglu1-mesa-dev
下列软件包有未满足的依赖关系:
 freeglut3-dev : 依赖: libgl1-mesa-dev 但是它将不会被安装 或
                         libgl-dev
 libglu1-mesa-dev : 依赖: libgl1-mesa-dev 但是它将不会被安装 或
                            libgl-dev
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
$ sudo apt-get install libgl1-mesa-dev
下列软件包有未满足的依赖关系:
 libgl1-mesa-dev : 依赖: mesa-common-dev (= 11.2.0-1ubuntu2) 但是它将不会被安装
                   依赖: libgl1-mesa-glx (= 11.2.0-1ubuntu2) 但是 18.0.5-0ubuntu0~16.04.1 正要被安装
                   依赖: libdrm-dev (>= 2.4.65) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

并且越往下越混乱……

我觉得跟内核版本无关,肯定不是驱动版本问题。官方文档也看了,各处博客论坛也查了,gl.h跟glu.h我无解。其他使用是正常的,涉及opengl就完了……问题就此先扔着吧,我应该用不着那俩。日后有了更新,我用18.04LTS。如果有问题跟我一样,还耐心看到了这里的,如果着急用,目前我建议放弃16.04,安装ubuntu17.10+cuda9.2。

相关链接:

https://developer.nvidia.com/cuda-toolkit-archive

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/

https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html

你可能感兴趣的:(学习笔记-Ubuntu)