藏字閣

閱讀時間約 2 分鐘

571 字

最近買了新電腦,遇到一些奇怪問題卡了很久,架環境弄了很久就紀錄一下吧。

顯示卡驅動程式

使用以下指令安裝顯示卡驅動程式:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-390

這邊是安裝 390 版,要注意跟 CUDA 版本要對齊,詳細版本對應可以看官網

裝完後重新開機,執行 nvidia-smi 應該就可以看到顯卡使用狀況︰

據說從官網下載驅動程式在 ubuntu 會有問題,我就沒有去測試了。

CUDA 及 cuDNN

接著安裝 CUDA 9.0 (官網連結),這邊還沒有 18.04 可以選,選 17.04。注意 CUDA 跟 cuDNN 的版本號要跟 TensorFlow 對上,細節可以查詢 TensorFlow 官網。其他 CUDA 版本可以在這邊找到。

我 patch 1, patch 2 都有裝,都是用 dpkg 裝的:

sudo dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-9-0

接著安裝 cuDNN 7.0.5,一樣到官網下載 (連結),選擇 Library for Linux

下載完是 tgz 檔 cudnn-9.0-linux-x64-v7.tgz,解壓縮後會有這些檔案:

ls cuda/*
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/include:
cudnn.h
cuda/lib64:
libcudnn.so  libcudnn.so.7  libcudnn.so.7.0.5  libcudnn_static.a

把 cuda 裡面的資料複製到 /usr/local/cuda-9-0cp -P 會在複製的時候保留 symbolic link ,最後讓 libcudnn 可以讓所有人有讀取權限:

sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

libcupti

安裝 libcupti:sudo apt-get install libcupti-dev 把 cuda path 設到環境變數,可以加到 ~/.bashrc 比較方便:

export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"

TensorFlow

最後,pip 安裝 TensorFlow,目前最新是 1.8.0:

pip install tensorflow-gpu

2020 更新:最新 2.x 版本的 TensorFlow 套件不再區分 CPU 與 GPU 版本,直接由以下指令安裝即可:

pip install tensorflow

測試

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

輸出:

執行 device_lib.list_local_devices() 可以看到同時有 CPU 跟 GPU。

參考資料

https://medium.com/@taylordenouden/installing-tensorflow-gpu-on-ubuntu-18-04-89a142325138
https://askubuntu.com/questions/1028830/install-cuda-on-ubuntu-18-04
https://github.com/tensorflow/tensorflow/issues/15817

comments powered by Disqus

最新文章

分類

標籤