系統:Ubuntu 16.04
安裝
首先要下載下傳NVIDIA公司提供的兩個檔案:CUDA(下載下傳位址)和cuDNN(下載下傳位址),下載下傳需要新增賬號,有點坑爹。
CUDA建議下載下傳runfile(local)檔案類型,cuDNN要同時下載下傳Runtime和Development兩個deb包。
注意一定要下載下傳比對TensorFlow的版本,如下:
TensorFlow版本 | CUDA 版本 | cuDNN版本 |
---|---|---|
1.1 or 1.2 | v8.0 | v5.1 |
1.3 or 1.4 or 1.5 | v8.0 | v6.0 |
1.6 or 1.7 | v9.0 | v7.0 |
安裝CUDA:
sudo sh cuda_9.0.176_384.81_linux.run
這裡安裝時會有很多東西要你選擇,這裡千萬别選擇再安裝顯示卡驅動和配置X Configuration,否則你在登入界面會一直登入不進去。
安裝cuDNN:
sudo dpkg -i libcudnn7_7.1.1.5-1+cuda9.0_amd64.deb
CUDA一般會安裝在
/usr/local/
目錄下:
ls /usr/local/ -lh
total K
drwxr-xr-x root root K 月 : bin
lrwxrwxrwx root root 月 : cuda -> cuda-
drwxr-xr-x root root K 月 : cuda-
drwxr-xr-x root root K 月 etc
drwxr-xr-x root root K 月 games
drwxr-xr-x root root K 月 include
drwxr-xr-x root root K 月 : lib
lrwxrwxrwx root root 月 man -> share/man
drwxr-xr-x root root K 月 sbin
drwxr-xr-x root root K 月 : share
drwxr-xr-x root root K 月 src
會看到有一個cuda目錄指向cuda-9.0目錄。
環境變量設定:
最重要的不要忘了設定環境變量,在
/etc/bash.bashrc
檔案後面添加:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
搞定!
檢查CUDA和cuDNN的版本
CUDA版本
cat /usr/local/cuda/version.txt
輸出
cuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
輸出
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 3
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
CUDA Compilation Tools版本(這個看自己需要了)
sudo apt install nvidia-cuda-toolkit
nvcc -V
輸出:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
驗證TensorFlow中GPU是否可用
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
輸出:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit:
locality {
}
incarnation: , name: "/device:GPU:0"
device_type: "GPU"
memory_limit:
locality {
bus_id:
links {
}
}
incarnation:
physical_device_desc: "device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0, compute capability: 6.1"]
故障排除
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory
先看CUDA和cuDNN的版本對不對,然後再看環境變量有沒有設對。