TensorFlow安装小记

硬件信息:

主板 supermicro X9SRG

CPU Xeon E5-2620

显卡 Tesla K20m

内存 DDR3 1333 32GB

硬盘 1TB

操作系统为Ubuntu 16.04.2 LTS

1、安装显卡驱动

nVidia官方网站下载Linux 64位版,经测试deb版无法安装驱动。Ctrl+Alt+F1切换到控制台安装。安装之后遭遇登陆循环问题,据说老版驱动没有这个问题,但是服务器以后都是通过ssh登陆,进不去桌面没有关系,所有没有测试老版驱动。文末还有关于此问题的讨论。

2、安装CUDA

nVidia官方网站下载的deb(network)版

定位到下载位置,执行

sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

sudo apt-get update

sudo apt-get install cuda

安装之后执行nvcc -V提示没有nvcc,执行export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}},详情可查看官方文档

3、安装cuDNN

nVidia下载cuDNN(需要注册账号),下载5.1版,定位到下载位置。

解压tar zxvf cudnn-8.0-linux-x64-v5.1.tgz

进入目录cd cuda

拷贝文件
sudo cp -P include/cudnn.h /usr/local/cuda-8.0/include

sudo cp -P lib64/libcudnn* /usr/local/cuda-8.0/lib64

sudo chmod a+r /usr/local/cuda-8.0/lib64/libcudnn*

TensorFlow官方文档还有这样一条

sudo apt-get install libcupti-dev

使用TensorFlow时,提示找不到libcudnn.so.5,执行

sudo rm -rf libcudnn.so libcudnn.so.5

sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5

sudo ln -s libcudnn.so.5 libcudnn.so

并更新连接库

sudo ldconfig

4、安装TensorFlow

由于需要让多人使用TensorFlow,采用pip安装方式

sudo apt-get install python-pip python-dev

pip install tensorflow-gpu

sudo pip install --upgrade

安装完成,但使用TensorFlow时有警告
tensorflow library wasn't compiled to use xxx, but these are available on your machine and could speed up CPU computation

我觉得十分不爽,于是决定自己编译TensorFolw。

(1)克隆仓库

git clone https://github.com/tensorflow/tensorflow

cd tensorflow

git checkout r1.2

(2)安装Bazel

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list

curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

sudo apt-get update && sudo apt-get install bazel

sudo apt-get upgrade bazel

(3)安装python依赖

sudo apt-get install python-numpy python-dev python-pip python-wheel

(4)配置编译脚本

一路使用默认选项,仅在Do you wish to build TensorFlow with CUDA support? [y/N]时选择Y,之后一路默认。

(5)编译

bazel build --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=cuda //tensorflow/tools/pip_package:build_pip_package

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

(6)安装

sudo pip install /tmp/tensorflow_pkg/tensorflow-1.2.1-cp27-cp27mu-linux_x86_64.whl

关于显卡驱动:

安装CUDA的时候也会安装一次显卡驱动,所以第一步可以跳过,但是CUDA安装的驱动也是375版,依然不能进桌面。我在Arch Linux + dde的环境下安装显卡驱动后xorg-server直接起不来,需要在安装驱动前备份xorg.conf,之后覆盖nVidia生成的xorg.conf。由于用不上桌面,所以没在服务器上测试此方法。