1. 程式人生 > >原始碼安裝l CUDA 10.0, cuDNN 7.3 and build TensorFlow (GPU) from source on Ubuntu 18.04

原始碼安裝l CUDA 10.0, cuDNN 7.3 and build TensorFlow (GPU) from source on Ubuntu 18.04

更糟糕的CUDA 10.0和cuDNN 7.3版本我真的很想在我新建的機器上試用它。問題是pip包TensorFlow 1.11rc不支援最新的CUDA版本,我需要從原始碼構建它。整個過程對我來說相當痛苦,最後我完成了它後,我決定再次完成所有步驟並在空的Ubuntu機器上從頭開始設定。

我的出發點是配備i5-8600 CPU 3.10GHz,16GB DDR4,GTX 1080,剛剛安裝Ubutnu 18.04 LTS的機器,我們將:  
1。安裝CUDA 10 + cuDNN 7.3 + NCCL 2.3.5 
2.安裝Bazel 0.17。 2 
3.構建和安裝TensorFlow 1.11rc  
在您的情況下,軟體包版本可能更新,但假設整體步驟將保持不變。

1.安裝CUDA 10.0 + cuDNN 7.3 + NCCL 2.3.5

1.1安裝CUDA 10.0

NVIDIA網站上可以找到很好的安裝指南。但以下是我的空機器所需的步驟

1.1.1安裝gcc:sudo apt-get install gcc 
1.1.2 下載包。對我來說是Linux / x86_64 / Ubuntu / 18.04 / deb(本地)
1.1.3通過執行以下命令安裝CUDA
sudo dpkg -i cuda-repo-ubuntu1804–10–0-local-10.0.130–410.48_1.0–1_amd64.deb
sudo apt-key add /var/cuda-repo-10–0-local-10.0.130–410.48/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

1.1.4安裝完成後,通過在檔案末尾執行
nano ~/.bashrc
新增  
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} 
將以下行新增到bashrc來新增PATH變數。儲存並退出。

1.1.5檢查驅動程式版本和CUDA工具包以確保一切順利
cat /proc/driver/nvidia/version
nvcc -V

 

 

1.1.6您可能還想構建CUDA示例並執行它。這需要一段時間。為此,您需要跳轉到CUDA示例目錄。對我來說,它是/usr/local/cuda-10.0/samples並執行  
sudo make

。 
之後去構建源  
/usr/local/cuda-10.0/samples/bin/x86_64/linux/release
並執行  ./deviceQuery和  ./bandwidthTest。我的結果如下:

 

./deviceQuery results

./bandwidthTest results

測試後隨意取出內建樣品。

1.2安裝cuDNN 7.3

要下載cuDNN,請在developer.NVIDIA.com上登入/註冊。如果需要,下載Release,Dev版本和示例。
使用deb檔案在資料夾中執行以下命令:
sudo dpkg -i libcudnn7_7.3.0.29–1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.3.0.29–1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.3.0.29–1+cuda10.0_amd64.deb

安裝完成。讓我們按照說明進行驗證或執行:
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

如果正確安裝了cuDNN,您將看到一條訊息:測試通過
隨意從HOME / cudnn_samples_v7中刪除複製的檔案

1.3安裝NCCL 2.3.5

NCCL用於同時處理多個GPU上的計算。如果您將使用單個GPU,則可以跳過此步驟。否則,下載網路安裝程式並執行就是這樣。我們轉到Bazel安裝。
sudo dpkg -i nccl-repo-<version>.deb
sudo apt install libnccl2 libnccl-dev

2安裝Bazel 0.17.2

Bazel是一種用於TensorFlow建築的工具。其主頁包含多種安裝方式。對我來說,首選的是使用ATL儲存庫。首先請確保您有捲曲並安裝Bazel使用
sudo apt install curl

sudo apt-get install openjdk-8-jdk
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

要驗證bazel安裝是否已完成,請使用bazel版本。您可能也會看到很少的警告。那沒問題。

bazel版本的結果

3.構建TensorFlow

TensorFlow頁面上有很好的分步指南。它的概括如下:

3.1準備。

3.1.1安裝python3-distutils pip #或我建議使用虛擬環境構建TensorFlow。有多種方法可以做到這一點。我的首選是使用PyCharm作為venv管理員sudo apt-get install python3-distutils
sudo apt install python-dev python-pippython3-dev python3-pip

3.1.2啟用虛擬環境並執行以下命令:
pip install -U pip six numpy wheel mock
pip install -U keras_applications==1.0.5 — no-deps
pip install -U keras_preprocessing==1.0.3 — no-deps

3.2下載和構建。

3.2.1下載原始碼。我克隆了git倉庫。如果您尚未安裝git,請執行sudo apt install git
After clone clone 
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

3.2.2用bazel測試。
bazel test -c opt — //tensorflow/… -//tensorflow/compiler/… -//tensorflow/contrib/lite/…
好吧,它在我的機器上處理了大約一個小時。因此,我有大約60個測試結果失敗,但它不會影響構建過程。

3.2.3執行./configure配置TensorFlow構建。 
在我的情況下,我使用預設值,除了以下問題:
Hadoop檔案系統支援 - 沒有
Apache Kafka平臺支援 - 沒有
CUDA支援 - YES 
CUDA版本 - 10.0 
cuDNN版本 - 7.3 
NCCL - 1.3 
您可能想知道為什麼NCCL版本不是2.3。好吧,我已經嘗試過但是NCCL版本的預設路徑與構建期間預期的路徑不同。它需要手動將nccl.h和libnccl.so.2複製到所需的路徑。由於我沒有使用多個GPU,因此我將1.3版本自動安裝到預期的目錄中。

3.2.4構建並安裝TensorFlow。執行  
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
準備好自己娛樂一小時,同時構建過程正在進行中。因此,pip包將放在/ tmp / tensorflow_pkg中。 
我們差不多完成了 - 從你的venv跑出來享受
pip install /tmp/tensorflow_pkg/tensorflow-version-cp27-cp27mu-linux_x86_64.whl

這就對了。支援GPU的TensorFlow正在執行!