Ubuntu 16.04 搭建tensorflow-gpu运行环境 安装CUDA9.0 cuDNN7.1.4 填坑

执笔时间:2019.01.12

目的是在ubuntu 16.04 中搭建tensorflow-gpu运行环境

在近期有相似需求的同志可以适当参考

学艺不精,如有纰漏烦请不吝赐教

 

参考了很多大神的经验,感谢他们~

https://www.cnblogs.com/iloveblog/p/7683349.html

https://blog.csdn.net/u014595019/article/details/53732015

现在开始~


流程

1、确定个人电脑gpu型号、系统、CUDA、cuDNN、python、tensorflow版本

强烈建议大家搭建环境之前做好调研和规划,别问我为什么这么说.....

 

  • 当前不建议ubuntu18.04 ,至少我用这个系统安装过程中总是莫名地踩坑
  • tensorflow不同版本对应的CUDA和cuDNN版本如下表

Version

Python version

Compiler

Build tools

cuDNN

CUDA

ensorflow_gpu-1.12.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.15.0

7

9

tensorflow_gpu-1.11.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.15.0

7

9

tensorflow_gpu-1.10.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.15.0

7

9

tensorflow_gpu-1.9.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.11.0

7

9

tensorflow_gpu-1.8.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.10.0

7

9

tensorflow_gpu-1.7.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.9.0

7

9

tensorflow_gpu-1.6.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.9.0

7

9

tensorflow_gpu-1.5.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.8.0

7

9

tensorflow_gpu-1.4.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.5.4

6

8

tensorflow_gpu-1.3.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.4.5

6

8

tensorflow_gpu-1.2.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.4.5

5.1

8

tensorflow_gpu-1.1.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.4.2

5.1

8

tensorflow_gpu-1.0.0

2.7, 3.3-3.6

GCC 4.8

Bazel 0.4.2

5.1

8

  • 确认电脑中的显卡在CUDA gpus列表中:https://developer.nvidia.com/cuda-gpus
  • tensorflow要求分数在3.0以上;
  • 表中可以看到,高版本的tensorflow基本上使用的都是CUDA9 和cuDNN7,这个配置应该还会持续很长时间,我选择这个组合作为我的开发环境;
  • 至于操作系统,CUDA9.0支持ubuntu 16.04 和17.04两个版本,听说16.04比较成熟稳重一些,就这个吧;
  • python我们就用支持最新的3.6好了;
  • 在这个组合下,tensorflow-gpu可选版本为1.50到当前最新的1.12.0版,因人而异。

 

2、安装ubuntu 16.04

官网:http://www.ubuntu.org.cn/download

16.04:http://www.ubuntu.org.cn/download/desktop

制作成启动u盘,教程有很多啦

我看的这个 https://jingyan.baidu.com/article/fedf0737bc587f35ac89771b.html

制作好后重启电脑从该u盘启动,按照个人需求安装操作系统即可。

 

3、安装CUDA

这里得划重点了,至少对于我这种新手还是踩了很多坑的

参考了:

https://blog.csdn.net/myg22/article/details/84029924

https://www.cnblogs.com/iloveblog/p/7683349.html

  • 下载:

CUDA9.0下载地址:https://developer.nvidia.com/cuda-90-download-archive

根据个人情况选择各个选项 我的是 Linux  -  x86_64  -  Ubuntu  -  16.04

最后一项选择 runfile(local) 下载 Base Installer

  • 安装

 

1) 禁用 nouveau驱动

参考:https://blog.csdn.net/u012442845/article/details/78855573/

1.安装之前先卸载已经存在的驱动版本:
   sudo apt-get remove --purge nvidia*


2.需要禁用 nouveau,只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,首先需要打开该文件,通过以下命令打开:

   sudo gedit /etc/modprobe.d/blacklist.conf

输入密码后在最后一行加上:  blacklist nouveau 是将Ubuntu自带的显卡驱动加入黑名单

Ctrl +C保存后注意此时还需执行以下命令使禁用 nouveau 真正生效终端输入 : sudo update-initramfs -u  
 

2)关闭图形界面

重启系统后在登录用户之前 Ctrl+Alt+F1~F6 进入文字命令行

登录后禁用 X service,输入命令:

sudo service lightdm stop

 

3)安装CUDA

下载后的文件名为 cuda_9.0.176_384.81_linux.run

正常运行的命令为:

sudo sh cuda_9.0.176_384.81_linux.run

这时来了一个文档,喜欢看的可以按回车,不喜欢看的按空格

看完之后有很多个选项,根据个人情况选择,我大多数都选了yes

 

4)再次安装显卡驱动

这个问题前辈们没有出现过貌似,我在执行完上述工作后,运行:

sudo nvidia-smi

来测试驱动是否安装成功,发现报错

于是再次安装显卡驱动(如果此时已经显示gpu列表,说明驱动程序已经成功安装,无需重装)

执行如下语句安装NVIDIA驱动

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

sudo apt-get install nvidia-384  //驱动版本不同,对应不同的数字

sudo apt-get install mesa-commoon-dev   //本句及下一句命令有的电脑需要,有的电脑不需要,根据实际情况输入命令

sudo pat-get install freeglut3-dev

重启后输入:

sudo nvidia-smi

显示GPU列表,证明驱动安装成功

 

5)测试CUDA是否成功安装

执行命令:

cd  /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

如果显示的是关于GPU的信息,则说明安装成功了。

 

6)配置CUDA环境变量

sudo vim ~/.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

 

4、安装cuDNN

1)下载

上官网下载对应的cudnn

https://developer.nvidia.com/cudnn

稍微麻烦一点的是下载需要成为Nvidia的会员,免费注册后填写问卷,再次登录可以顺利下载;

当前最新的cuDNN版本是7.4.2,我们需要匹配CUDA9.0的版本

于是点开 :Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.0 (其他版本也可以,但要 for CUDA 9.0 )

下载:cuDNN Library for Linux

 

2)安装

cuDNN的安装比较简单,解压后将文件拷贝到CUDA相应的目录就可以了。

解压下载的文件

tar zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz

解压出了文件夹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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*  

 

5、安装Annoconda3

1)下载

地址:https://www.anaconda.com/download/#linux

直接下载最新版本annoconda3

现在最新的是 Anaconda3-2018.12-Linux-x86_64.sh

 

2)安装

sudo bash Anaconda3-2018.12-Linux-x86_64.sh

之后输入一些yes 到安装完成

当前系统默认python还是原来的

需要修改系统路径

  • sudo gedit ~/.bashrc

  • export PATH="/home/xupp/anaconda3/bin:$PATH"

此时python版本是3.7 我们要换成3.6,输入命令:

conda install python=3.6

在root环境中替换成python3.6版本

过程中可能遇到权限不够的问题

NotWritableError: The current user does not have write permissions to a required path. path: /xxx/xxx/anaconda3/pkgs/cache/d50cceeb.json

uid: 1000

gid: 1000
需要更改annoconda3文件夹及其子文件夹的主人

sudo chown -R 1000:1000 /home/xxx/anaconda3/

6、安装tensorflow-gpu

执行命令:

pip install tensorflow-gpu

 

7、测试

在python环境里输入:

import tensorflow as tf

没有报错即安装成功。

 

 

 

 

 

 

 

 

你可能感兴趣的:(深度学习)