首发于MCPRL

从零开始配置深度学习服务器环境Ubuntu17.04+CUDA9.1+TensorFlow1.4.1

转载请注明出处: CV喵的进阶
本文链接:zhuanlan.zhihu.com/p/33

写在前面:本文是基于CUDA9的TensorFlow1.4安装教程,由于官方的TensorFlow还不支持CUDA9所以采取了一些额外的手段,如果你不想用最新的CUDA9可以下CUDA8,CUDA8下的安装更简单一些,可以参见本专栏另外一篇文章从零开始配置你的深度学习服务器+踩坑经验,如果你跟我一样也愿意尝试最新的,就继续往下看吧~

另外其实这篇文章最开始是发布在我自己的简书上,个人觉得简书的MarkDown风格比知乎的好看,也可以移步我的简书啦:从零开始配置深度学习服务器环境Ubuntu17.04+CUDA9.1+cnDNN7.0.5+TensorFlow1.4.1 ,我的简书上还有在Ubuntu配置QQ、搜狗输入法等实用配套教程~

分割线~正式教程开始:


一、装系统:Ubuntu 17.04

在拔出所有独显的裸机状态下,从U盘启动安装Ubuntu 17.04

  • 在安装之前,需要先按F2进入BIOS模式设置,修改以下两处(必须要提前改好,才能让系统检测到固态硬盘和机械硬盘的空间):
  1. Advanced-SATA Operation: 改成AHCI
  2. Boot-Secure Boot: 改成Disabled
  • 重启,按F12进入U盘启动模式,按指示安装Ubuntu系统即可

二、NVIDIA显卡驱动

  • 下载到本地后,打开终端,按官网指示步骤安装驱动
dpkg -i nvidia-driver-local-repo-ubuntu1704-387.34_1.0-1_amd64.deb
apt-get update
apt-get install cuda-drivers
reboot 
  • 大约需要一两个小时的安装时间,安装完成后断电插入独显(发现不插入独显重启会进入login的死循环),此时在终端输入nvidia-smi命令应正常显示显存信息。

三、安装CUDA 9.1

  • 同样是英伟达官网-开发者-CUDA-Download Now-选择network的deb版本,比较小,只有2.8kb。
  • 下载完deb文件之后按照官方给的方法按如下方式安装CUDA9:
sudo dpkg -i cuda-repo-ubuntu1704_9.1.85-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda 
  • 大约需要一两个小时的安装时间。安装完成后,在终端查看cuda版本号cat /usr/local/cuda/version.txt,发现cuda 9.1.85 已经安装完毕。

四、安装cuDNN

cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于GPU的加速库。基本上所有的深度学习框架都支持cuDNN这一加速工具,例如:Caffe、Caffe2、TensorFlow、Torch、Pytorch、Theano等。

  • 下载完毕后解压到home目录,然后将相关文件拷贝到cuda安装目录下即可
tar -zxvf cudnn-9.0-linux-x64-v7.tgz
/*然后我手动移到了home目录下*/
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn* 
  • 查看安装好的cuDNN版本号:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
    显示如下,说明已经安装完毕,cuDNN的版本号为7.0.5
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

五、安装TensorFlow1.4.1

  • 官方的tensorflow发行还不支持cuda9,所以我们找到了非官方的支持cuda9和cudnn7的预编译版,点这里选取对应版本下载,我找的是带mkl(需要提前安装好,见下面介绍),而且支持GPU的版本TensorFlow 1.4.1 (GPU, CUDA 9.1):tensorflow-1.4.1-cp27-cp27mu-linux_x86_64.whl
  • 下载完成后,就可以安装啦:
sudo apt-get install python-pip
pip install tensorflow-1.4.1-cp27-cp27mu-linux_x86_64.whl 

或者则将pip换成pip3,使用python3版本的

  • 进入python环境确认TensorFlow已经装好:
python
>>>import tensorflow as tf
>>>tf.__version__ 
  • 这里补充介绍一下MKL。MKL是intel出的深度学习库,可以在CPU上极大的加速tensorflow的运行速度,虽然我们有GPU,但是CPU上加个速啥的也没坏处不是。
    MKL是需要编译的,所以我们需要安装一堆编译依赖库和工具:
sudo apt-get install git cmake doxygen
git clone https://github.com/01org/mkl-dnn.git
cd mkl-dnn
cd scripts && ./prepare_mkl.sh && cd .. #这一步需要耗费一点时间,主要是那个包有70MB,有点大。
mkdir -p build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/home/$USER/.local .. && make
make install 

安装完成后,在.bashrc里面加入下面这一行,不然会报找不到lib的错误:

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/$USER/.local/lib' >> ~/.bashrc
source ~/.bashrc 

六、安装常用库

sudo pip install pandas
sudo pip install keras
conda install pytorch
sudo pip install matplotlib

七、附录

PS:发现更换DP接口到显卡后,显示器经常没有输入信号,可以尝试先打开显示器,然后再开电脑

PPS:在安装之前做以下准备工作可以加速之后安装的下载

  1. 更新Ubuntu17.04的源
cd /etc/apt/
sudo cp sources.list sources.list.bak
sudo vi sources.list 

把下面的这些源添加到source.list文件头部,这里用的是网易的源:

deb http://mirrors.163.com/ubuntu/ zesty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ zesty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ zesty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ zesty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ zesty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ zesty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ zesty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ zesty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ zesty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ zesty-backports main restricted universe multiverse 
  1. 将pip源指向清华大学的源镜像:mirrors.tuna.tsinghua.edu.cn,具体在~/.config/下添加一个 .pip目录(文件夹前要加.,表示是隐藏文件),新建pip.conf文件,设置为:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple 

这两件事情都可以加速安装相关工具包的速度,事半功倍(虽然清华的源个人感觉不太稳定)。


参考文献: 52nlp.cn/深度学习服务器环境配置-ubuntu17-04-nvidia-gtx-1080-cuda-9-0-cudnn-7-0-tensorflow-1-3
cnblogs.com/dwsun/p/776

编辑于 2018-01-26 10:21