配置深度學習主機與環境(TensorFlow+1080Ti):(三)CUDA與CUDNN安裝

GTX 1080Ti

配置深度學習主機與環境(TensorFlow+1080Ti):
(一)硬件選購與主機組裝
(二)Win10&Ubuntu雙系統與顯卡驅動安裝
(三)CUDA與CUDNN安裝
(四)基于Anaconda的TensorFlow安裝


0. 概念介紹

CUDA(Compute Unified Device Architecture 統一計算設備架構)

CUDA(Compute Unified Device Architecture),是英偉達公司推出的一種基于新的并行編程模型和指令集架構的通用計算架構,它能利用英偉達GPU的并行計算引擎,比CPU更高效的解決許多復雜計算任務。
使用CUDA的好處就是透明。根據摩爾定律GPU的晶體管數量不斷增多,硬件結構必然是不斷的在發展變化,沒有必要每次都為不同的硬件結構重新編碼,而CUDA就是提供了一種可擴展的編程模型,使得已經寫好的CUDA代碼可以在任意數量核心的GPU上運行。
CUDA最主要的包含兩個方面:一個是ISA指令集架構;第二硬件計算引擎;實際上是硬件和指令集。 也就是說我們可以把CUDA看做是與X86或者cell類似的架構,但是是基于是GPU,而不是傳統的CPU。

cuDNN(NVIDIA CUDA? Deep Neural Network library)

The NVIDIA CUDA? Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN is part of the NVIDIA Deep Learning SDK.
Deep learning researchers and framework developers worldwide rely on cuDNN for high-performance GPU acceleration. It allows them to focus on training neural networks and developing software applications rather than spending time on low-level GPU performance tuning. cuDNN accelerates widely used deep learning frameworks, including Caffe, Caffe2, TensorFlow, Theano, Torch, and Microsoft Cognitive Toolkit.

cuDNN Accelerated Frameworks

1. 安裝顯卡驅動

在安裝CUDA和cuDNN之前,需要確保顯卡驅動已經安裝好,其安裝情況可以在 設置-軟件更新-附加驅動 中查看:

設置-軟件更新-附加驅動

更多關于顯卡(文中使用1080Ti)安裝的步驟,可以參考系列文章的第二篇:
配置深度學習主機與環境(TensorFlow+1080Ti):(二)Win10&Ubuntu雙系統與顯卡驅動安裝

2. 安裝CUDA

  1. 查閱 NVIDIA CUDA Installation Guide for Linux
    英偉達CUDA安裝指南(Linux)
    對于后續的學習與工作大有裨益,包含了CUDA的詳盡安裝說明。當然如果你不想閱讀英文,只想盡快安裝CUDA,可以參照后續步驟。
  • 下載 CUDA Toolkit 安裝包:
    安裝包下載選項
  • 推薦使用第一個runfile (local) 安裝選項;
  • 網上不少教程中寫有需要降低gcc版本,實測,無需降級,因此可以忽略;
  • 下載第一個 Base Installer 即可。
  • 安裝CUDA8.0


    安裝指南
  • 打開終端,輸入:sudo sh cuda_8.0.61_375.26_linux.run,在下載選項中,也有說明如何安裝;
    `sudo sh cuda_8.0.61_375.26_linux.run`
  • 如果出現大段廢話,可以使用 Ctrl+C 跳過;
  • 進入具體的安裝選項:


    安裝選項
  • 注意第二個選項 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? 須選擇否,因為在之前已經安裝好了顯卡驅動,無需重新安裝。
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]:  
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y 
Enter CUDA Samples Location
 [ default is /home/dexter ]:
  • 添加環境變量:
    • 在終端中輸入:
gedit ~/.bashrc
  • 在打開的文件中寫入:
export PATH="$PATH:/usr/local/cuda-8.0/bin"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"
  • 保存并關閉文件, 在終端中輸入:
source ~/.bashrc

使環境更改生效。

  • 在終端中輸入nvidia-smi,可以查詢顯卡狀態。
    查詢顯卡狀態
  • CUDA Samples 測試
    運行 CUDA Samples 檢測 CUDA 是否順利安裝:
  • 打開終端,切換到位置:~/ NVIDIA_CUDA-8.0_Samples
  • 輸入:make
    CUDA Samples 測試
  • 編譯時間較長。若沒有報錯,則將新編譯為二進制文件,默認存放在 ~/NVIDIA_CUDA-7.5_Samples/bin 中。
  • 打開終端,切換到位置:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
  • 終端輸入:./deviceQuery,如果顯示類似下圖,則說明CUDA安裝且配置成功!
    CUDA安裝且配置成功!

3. 安裝cuDNN

  1. 下載cuDNN,下載之前需要注冊Nvidia開發者帳號,按要求注冊即可。
  • 莫名其妙在我的筆記本上無法登錄...在主機的Ubuntu中可以順利登錄...此條純屬吐槽,封IP真是夠了...


    IP blocked
  • 登錄后顯示有多個版本可供選擇,建議使用 cuDNN v5.1 for CUDA 8.0,因為作者最開始嘗鮮選擇 cuDNN v6.0 for CUDA 8.0 最后安裝失敗,應該是支持還不到位。然后又刪掉cuDNN,再重新安裝(中間刪掉重新安裝cuDNN已經安裝好的Anaconda不影響,但是最好重新安裝TensorFlow)。
  • 具體報錯為:
ImportError: libcudnn.so.5: cannot open shared object file: No such file or director
Error

在安裝cuDNN中,可以看到安裝文件的版本為libcudnn.so.6,所以很明顯是v6版本不支持導致的錯誤(參見本文最后一張圖,是安裝cuDNN v6時的截圖,其中包含libcudnn.so.6文件)。

  • stcokoverflow 中也出現了相關問題:
    ImportError: libcudnn when running a TensorFlow program

    ImportError: libcudnn when running a TensorFlow program

  • 選擇 cuDNN v5.1 for CUDA 8.0 中的 cuDNN v5.1 Library for Linux 下載:

    cuDNN v5.1 Library for Linux

  • 在包含安裝文件的文件夾,右鍵,打開終端,輸入如下命令行:

tar xvzf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

相當于解壓縮+復制粘貼,手動復制粘貼也是沒問題的。到此cuDNN安裝完畢。


cuDNN安裝完畢(v6僅作示范,后面刪除換為了v5)

4. 參考資料

  1. 知乎:Ubuntu 16.04.2 + GTX1080 + Python3 TensorFlow 配置
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容