系统: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的版本对不对,然后再看环境变量有没有设对。