执笔时间:2019.01.12
目的是在ubuntu 16.04 中搭建tensorflow-gpu运行环境
在近期有相似需求的同志可以适当参考
学艺不精,如有纰漏烦请不吝赐教
参考了很多大神的经验,感谢他们~
https://www.cnblogs.com/iloveblog/p/7683349.html
https://blog.csdn.net/u014595019/article/details/53732015
现在开始~
强烈建议大家搭建环境之前做好调研和规划,别问我为什么这么说.....
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 |
官网:http://www.ubuntu.org.cn/download
16.04:http://www.ubuntu.org.cn/download/desktop
制作成启动u盘,教程有很多啦
我看的这个 https://jingyan.baidu.com/article/fedf0737bc587f35ac89771b.html
制作好后重启电脑从该u盘启动,按照个人需求安装操作系统即可。
这里得划重点了,至少对于我这种新手还是踩了很多坑的
参考了:
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
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*
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/
执行命令:
pip install tensorflow-gpu
在python环境里输入:
import tensorflow as tf
没有报错即安装成功。