在 Ubuntu 16.04 安裝 CUDA 8.0 和 TensorFlow 0.11 並使用內顯顯示畫面

作者: Yong-Siang Shih / Mon 31 October 2016 / 分類: Notes

CUDA, Caffe, TensorFlow, Ubuntu

本文紀錄了使用內顯來顯示畫面,而透過 Nvidia 顯卡來進行 CUDA 計算的安裝步驟。

顯卡設定

基礎設定

首先在 BIOS 裡設定內顯為主要顯卡,並且將螢幕接到內顯輸出上。

安裝 CUDA

接著到 CUDA 下載頁面下載對應的 deb 檔案。緊接著,重開 Ubuntu,並在登入畫面時按下 Ctrl-Alt-F1 進入命令列界面。

執行以下指令關閉 lightdm,據這裡的講法,這樣就可以達成將內顯和顯卡功能分開的目的。筆者測試如果沒執行這個指令,則最後安裝完 CUDA 重開機就會無法進入圖形登入畫面。

sudo service lightdm stop

接著實際安裝 CUDA,並重新開機,確認可以登入:

sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
sudo apt update
sudo apt install cuda
sudo reboot

安裝 cuDNN

接著到 cuDNN 下載頁面下載 cuDNN v5,然後按照 TensorFlow 文件指示,將檔案複製到指定位置:

tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
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*

設定環境變數

接下來在 .bashrc 或者其他開機時會載入的啟動檔案中加入:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/lib/nvidia-367
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin

其中 /usr/lib/nvidia-367 可指到你實際安裝的顯卡驅動程式版本。

最後重新開機即可。

開機完可執行 nvidia-smi 確定顯卡真的有裝好。

安裝 TensorFlow

由於這部份跟官方文件一模一樣,沒有特別更改什麼。所以詳細安裝步驟就直接參考官方文件即可。

安裝 Caffe

由於安裝 Caffe 的步驟跟官方有些不一樣,故順便紀錄。

首先安裝需要的套件:

sudo apt install build-essential libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt install --no-install-recommends libboost-all-dev

這裡我用 OpenBLAS。

sudo apt install libopenblas-dev 

接著修改 Makefile.config

BLAS := open
USE_CUDNN := 1

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu
WITH_PYTHON_LAYER := 1

並且修改 Makefile,加入 hdf5 相關程式庫:

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

同時在想用的 Python 環境裡安裝必要套件,利用 Caffe 資料夾裡的 python/requirements.txt

pip install -r requirements.txt

最後就可以編譯了:

make all
make pycaffe
Yong-Siang Shih

作者

Yong-Siang Shih

軟體工程師,機器學習科學家,開放原始碼愛好者。曾在 Appier 從事機器學習系統開發,也曾在 Google, IBM, Microsoft 擔任軟體實習生。喜好探索學習新科技。

載入 Disqus 評論