1. 程式人生 > >Ubuntu14.04安裝cuda8.0+cudnn5.1+Tensorflow1.0.0(GPU)教程

Ubuntu14.04安裝cuda8.0+cudnn5.1+Tensorflow1.0.0(GPU)教程

溫馨提示:

本安裝教程為TensorFlow GPU預編譯安裝教程,安裝過程比較複雜,如果安裝過程中出現錯誤,請先排除已經出現的錯誤,否則很容易導致無法成功安裝TensorFlow。

   安裝過程中,安裝過程中,如果對Linux命令操作陌生,請自行熟悉。

作業系統:Ubuntu14.04 lts

cuda版本:cuda_8.0.61_375.26_linux.run

cudnn版本:cudnn-8.0-linux-x64-v5.1.tgz

預先安裝依賴項:Anacondagccbazel

1、Anaconda

首先在Anaconda官網下載.sh檔案,此處我下載的是bash Anaconda3-4.4.0-Linux-x86_64.sh

然後進入下載目錄下,通過以下命令安裝Anaconda

bash Anaconda3-4.4.0-Linux-x86_64.sh

一直按enter鍵確定需要選擇的項,直到完成安裝。

安裝完成後,程式提示是否把anaconda3binary路徑加入到.bashrc,選擇yes即可。

然後通過以下命令,將ubuntu14.04自帶的python3.4升級到最新的python3.6:

conda update conda

conda update anaconda

conda create -n mylab anaconda

conda create -n py3 python=3 anaconda

source activate py3

python -V

如果沒有報錯,則表示安裝成功。

2、安裝gcc

直接在終端輸入以下命令(電腦處於聯網狀態):

sudo apt-get build-dep gcc

等到安裝完成。

通過以下命令可以檢視gcc的版本:

gcc --version

3、 安裝bazel

首先需要安裝bazel的依賴項JDK8,安裝命令如下:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

注意:如果你沒有安裝

add-apt-repository命令,需要執行sudo apt-get install software-properties-common命令(http://manpages.ubuntu.com/manpages/wily/man1/add-apt-repository.1.html)

然後才能夠按照bazel官網的安裝方法進行安裝。

第一步:新增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://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -

第二步:更新安裝bazel

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

安裝完成後如果沒有提示任何錯誤則表示成功安裝。

4、安裝cuda

https://developer.nvidia.com/cuda-downloads中下載對應版本的cuda,此處根據我的系統選擇的是cuda_8.0.61_375.26_linux.run版本,檔案大小為1.4G.

進入到剛才下載的cuda位置,更改許可權:

sudo chmod +x cuda_8.0.61_375.26_linux.run

同時按住ctrl+alt+F1進入命令列模式(注:ctrl+alt+F1~F6分別表示開啟6個對應的命令對話介面,ctrl+alt+F7用於切換介面),然後登陸使用者,並通過下面的命令關閉顯示卡驅動:

sudo /etc/init.d/lightdm stop

執行cuda安裝包:

sudo ./cuda_8.0.61_375.26_linux.run

等待1~2分鐘,會出現◆◆◆◆1%。直接按下Q然後選擇accept接受協議,遇到選擇(y)es/n(o)/(q)uit的全部選擇y,遇到需要確認安裝路徑的全部選擇回車鍵(預設路徑),然後等待安裝完成。

安裝完成後執行:

sudo /etc/init.d/lightdm restart

如果成功回到圖形操作介面,則在終端中進行新增變數路徑,否則可以輸入startx回到圖形操作介面。

設定環境變數,直接在終端中輸入以下命令:

gidit .bashrc

然後進入編輯檔案中,在最後新增以下路徑

export PATH=”/usr/local/cuda-8.0/bin:$PATH ”

export  LD_LIBRARY_PATH=”/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH ” 

儲存修改並退出。

然後輸入以下命令檢測cuda是否安裝成功:

nvcc -V

5、安裝cudnn

進入到cuda-8.0的安裝目錄

cd /usr/local

然後將下載好的cudnn5.1進行解壓(這裡cudnn放在Downloads下的)

sudo tar -zxvf ~/Downloads/cudnn-8.0-linux-x64-v5.1.tgz

6、編譯安裝Tensorflow

如果以上步驟均正確安裝,則可進行後續安裝,否則在後續編譯會出錯。安裝過程中需要線上下載,因此提前聯網。

第一步:下載Tensorflow1.0.0-rc0的原始碼

第二步:解壓以下載好的Tensorflow1.0.0,注意確保和你下載的檔名一致

tar -zxvf v1.0.0-rc0.tar.gz

第三步:解壓完成且未報任何錯誤,進入Tensorflow程式碼倉庫的目錄,然後執行下面的命令進行配置:

cd tensorflow-1.0.0-rc0

./configure

第四步:選擇python路徑,確保是anacondapython路徑即可(x表示我的主機名,每個人的可能不一樣)

Please specify the location of python. [Default is /home/x/anaconda3/bin/python]:

直接按回車鍵。

第五步:選擇CPU編譯優化選項,預設的-march=native將選擇本地CPU能支援的最佳配置,這一步也直接選擇預設配置,按回車鍵確認即可:

Please specify optimization flags to use during compilation [Default is -march=native]:

第六步:選擇是否使用jemalloc作為預設的malloc實現(僅限Linux),直接選擇預設設定,輸入y即可:

Do you wish to use jemalloc as the malloc implementation? (Linux only) [Y/n]:

第七步:選擇是否開啟Google Cloud Platform的支援,輸入N即可:

Do you wish to build Tensorflow with Google Cloud Platform support[y/n]:

第八步:選擇是否需要支援Hadoop File System,如果有讀取HDFS資料的需求,則輸入y,否則輸入預設的N即可:

Do you wish to build Tensorflow with Hadoop File System support? [y/n]:

第九步:選擇是否開啟XLA JIT編譯功能支援,可以選擇輸入y

Do you wish to build Tensorflow with the XLA just-in-time compiler (experimental)? [y/n]:

第十步:然後選擇pythonlibrary路徑,依然選擇anaconda的路徑,直接回車確認即可:

Please input the desired Python library path to use. Default is [/home/x/anaconda3/ lib/python/3.6/site-packages]:

第十一步:接著選擇是否需要支援OpenCL,輸入n即可:

Do you wish to build Tensorflow with OpenCL support? [y/n]:

第十一步:接著選擇是否需要支援CUDA,輸入y即可:

Do you wish to build Tensorflow with CUDA support? [y/n]:

第十二步:接下來選擇指定的gcc編譯器,直接選擇預設即可(注意檢視一下/usr/bin裡面是否存在gcc):

Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:

第十三步:選擇要使用的CUDA版本,輸入8.0,回車:

Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]:

第十四步:選擇CUDA的安裝路徑,這裡不能選擇預設路徑,需要輸入/usr/local/cuda-8.0:

Please specify the location where CUDA toolkit is installed. Refer to README.md for more detailes. [Default is /usr/local/cuda]:

第十五步:選擇要使用的cuDNN版本,輸入5.1,回車:

Please specify the Cudnn version you want to use. [Leave empty to use system default]:

第十六步:選擇cuDNN的安裝路徑,如果預設路徑是/usr/local/cuda-8.0,則直接回車,否則輸入/usr/local/cuda-8.0:

Please specify the location where cuDNN library is installed. Refer to README.md for more detailes. [Default is /usr/local/cuda-8.0]:

確認之後可能還會出現讓你選擇cudnn的版本和路徑,這個時候全部直接回車確認就行。

第十七步:選擇GPU的計算能力,這裡我的是6.1,不清楚可以去英偉達官網查詢:

Please note that each additional compute capability significantly increases your build time and binary size.[Default is: 3.5,5.2]

至此,配置完成,配置過程中會下載對應需要其他庫的程式碼倉庫,等待下載完成即可。

第十八步:編譯GPU版本的TensorFlow,執行以下命令,進行編譯,整個編譯會持續半個小時以上,耐心等待:

bazel build --copt=-march=native -c opt --config=cuda //tensorflow/tools/ pip_package:build_pip_package

第十九步:編譯完成之後,執行命令生成pip安裝包:

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

生成之後,可以在根目錄下的tmp/tensorflow_pkg中看到一個.whl檔案

第二十步:安裝生成的.whl檔案

pip install /tmp/tensorflow_pkg/tensorflow-1.0.0rc0-cp36-cp36m-linux_x86_64.whl

參考:

1、Anaconda安裝以及更改python版本:http://www.jianshu.com/p/0e28a8f581ff?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends&from=singlemessage&isappinstalled=1

2、bazel安裝教程:http://blog.csdn.net/u010510350/article/details/52247972

4、TensorFlow實戰》TensorFlow安裝教程

感謝以上博主或版主的詳細分析!