基本環境:
硬件:雙路E5 + 3 * Tesla P100,64位
操作系統:CentOS 7.4
python 2.7.14 ( Anaconda2 )
python 3.6.3 ( Anaconda3 ) # 這個不單獨列出了,類比吧~
目標環境:
CUDA 9.0
CUDNN 7.0.4
tensorflow-gpu 1.4.0
本文 CUDA 的安裝採取了官網的 rpm(network) 形式,簡單粗暴。
一、驅動安裝
yum upgrade
順便說一句 python 3 命令行交互模式下 Backspace 等鍵亂碼問題的解決方案:
yum install readline-devel # 然後重新編譯安裝 python 3.6
驅動安裝/更新,官方說明見這裏(注意按自己的實際環境勾選選項),過程摘要如下:
驅動有可能原本就裝了,在 yum upgrade 中就幫你更新了
如果原本沒裝,那就自己裝一下(請根據上面的官方說明填寫最新文件名):
sudo rpm -i cuda-repo-rhel7-9.0.176-1.x86_64.rpm
二、CUDA、CUDANN 安裝
CUDA 安裝
sudo yum clean all
sudo yum install cuda
cuda 安裝在了 /usr/local/cuda-9.0,並有鏈接到它的 /usr/local/cuda 目錄,使用後者作爲後續安裝的依據。
環境變量配置,在啓動項(~/.bash_profile)中添加一行:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
CUDNN安裝
首先上官網下載壓縮包,這裏有點坑,必須要註冊,得到的文件:cudnn-9.0-linux-x64-v7.tar,解壓後得到的目錄也叫 cuda.
這裏 CUDNN 的安裝其實只是把 CUDNN的一些庫文件拷貝到 CUDA 的安裝目錄下,然後改改權限:
tar xzvf cudnn-9.0-linux-x64-v7.tar
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 /usr/local/cuda/lib64/libcudnn*
三、Tensorflow-GPU 編譯安裝
參照[官網]的(https://www.tensorflow.org/install/install_sources)源碼安裝形式,本章給出步驟摘要。
安裝部分依賴
pip install numpy dev pip wheel
yum install python-devel
注意:博主安裝 dev 的時候報了個 好像叫“None Ascii”什麼什麼的錯誤,反正是哪個文件編碼有問題(開頭多了個什麼字符),這個問題通過解壓安裝包、進入目錄、修改那個文件(刪掉報錯信息指示的幾個字符),然後:
python setup.py install
可以完美解決。
編譯安裝 bazel
參照官網,步驟如下:
從Fedora COPR把相應的 .repo 文件下載到 /etc/yum.repos.d/ 目錄下(加了個源),然後:
yum install bazel
編譯安裝 tensorflow-gpu
git clone https://github.com/tensorflow/tensorflow
cd tensorflow/
../configure
這個有一堆交互式配置,看着選就行,大部分默認值都是合適的值,需要注意的就是 python 的路徑要確保無誤(python 3 / python 2.7.14 / 有的系統自帶 python 2.6 或者 2.7.5),有需要再貼圖吧。
配置完了之後:
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
注意:如果想編譯 MKL 之類的庫,也要事先安裝,這裏沒管。
下一步:
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
這個時候 .whl 文件已經出來了,用 pip install 指定即可:
pip install /tmp/tensorflow_pkg/tensorflow-1.4.0-py2-none-any.whl
四、檢驗
python
然後
import tensorflow as tf
自己測吧哈。