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。由于用不上桌面,所以没在服务器上测试此方法。