文章目录
- Ubuntu18.04安装cuDNN和Tensorflow的正确姿势
- 一、检查NVIDIA驱动是否安装成功
- 二、检查CUDA是否安装成功
- 三、安装cuDNN
- 1. 确定版本
- 2. 下载安装包
- 3. 解压安装
- 4. 安装libcupti
- 四、安装Tensorflow
- 1. 确定版本
- 2. 安装pip
- 3. 安装Tensorflow
- 4. 检查是否正常运行
- 五、错误解决
- 1. so文件找不到的错误
- 2. 安装Tensorflow时报错
- 3. error: invalid command 'bdist_wheel'
Ubuntu18.04安装cuDNN和Tensorflow的正确姿势
本文章主要讲解 ubuntu 系统如何正确安装 cuDNN 和 Tensorflow。
需要提前准备:
- 一个安装好的Ubuntu 18.04
- NVIDIA 驱动已经安装成功
- CUDA已经安装成功
一、检查NVIDIA驱动是否安装成功
打开终端执行:
nvidia-smi
Wed Jul 10 11:49:26 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 208... Off | 00000000:42:00.0 On | N/A |
| 0% 42C P8 17W / 300W | 309MiB / 11011MiB | 0% Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1520 G /usr/lib/xorg/Xorg 18MiB |
| 0 1626 G /usr/bin/gnome-shell 79MiB |
| 0 7641 G /usr/lib/xorg/Xorg 95MiB |
| 0 7772 G /usr/bin/gnome-shell 113MiB |
+----------------------------------------------------------------------------
如果出现上面的结果说明成功。如果没有安装请参考这篇文章Linux安装NVIDIA显卡驱动的正确姿势或这篇文章Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡进行安装。
二、检查CUDA是否安装成功
关于 CUDA 的安装可以参考
Linux安装CUDA的正确姿势这篇文章。
打开终端执行:
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168
说明CUDA的命令已经安装成功。接下来测试案例是否能够正常运行。
#编译并测试设备 deviceQuery:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery#编译并测试带宽 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest
如果这两个测试的最后结果都是Result = PASS,说明 CUDA 安装成功啦。
三、安装cuDNN
1. 确定版本
在安装之前需要参考与Tensorflow的支持关系,可以通过这个网址查看。
因为目前本地安装的环境如下:
- Ubuntu 18.04
- NVIDIA Driver 430.26
- CUDA 10.1
所以推荐安装 cuDNN 7.6.0 版本,并配合 Tensorflow 1.13.0/1.14.0 都可以。
2. 下载安装包
下载地址可以在NVIDIA官网下载。要下载 cuDNN Library for Linux
这项。
3. 解压安装
打开终端执行:
tar -zxvf cudnn-10.1-linux-x64-v7.6.0.64.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include/# 为所有用户设置读取权限
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*
4. 安装libcupti
这是 NVIDIA CUDA 分析工具接口,此库提供高级分析支持。
打开终端执行:
sudo apt-get install libcupti-dev
四、安装Tensorflow
1. 确定版本
由于上一步我们选择安装了 cnDNN 7.6.0 并且是配合 CUDA 10.1,所以从这个网址我们可以得知,可以安装最高版本 Tensorflow 1.13.0。
2. 安装pip
大家可以根据实际情况进行选择是安装 pip 还是 pip3,本文以 pip3 为例子。
sudo apt-get install python3-dev python3-pip
此时 pip3 已经安装成功。
3. 安装Tensorflow
终端执行:
pip3 install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.12.0-cp36-cp36m-linux_x86_64.whl
关于下载的连接可以参考官方网址。
此步骤可能会很慢,如果有代理的可以提前设置好代理。
4. 检查是否正常运行
以下两个测试可以直接在终端内复制执行。
测试 1:
python3 -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
测试 2:
python3 -c "from tensorflow.python.client import device_lib; device_lib.list_local_devices()"
如果以上两条返回的内容中都没有错误,代表Tensorflow安装成功。
五、错误解决
1. so文件找不到的错误
错误例子如下:
2019-07-10 11:26:57.200271: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64::/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64{LD_LIBRARY_PATH:+:/usr/local/cuda-10.1/lib64{LD_LIBRARY_PATH:+:/usr/local/cuda-10.1/lib64}}:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib
主要错误信息为Could not dlopen library 'libcublas.so.10.0'
。造成这样的原因是链接文件不对造成的。
这种问题很好解决,下面我罗列一些常发生这样错误的so文件解决办法,首先大家要确定报错的so文件名称是什么,例如上面报错的是libcublas.so.10.0
这个文件,那么就找到对应的libcublas
库文件,然后在/usr/local/cuda-10.1/lib64/
目录下创建一个bcublas.so.10.0
连接文件即可。
一般缺失的so文件都在/usr/local/cuda-10.1/lib64/
目录下,有一些特别的在/usr/lib/x86_64-linux-gnu/
目录下。
- libcudart
sudo ln -s /usr/local/cuda-10.1/lib64/libcudart.so.10.1 /usr/local/cuda-10.1/lib64/libcudart.so.10.0
- libcufft
sudo ln -s /usr/local/cuda-10.1/lib64/libcufft.so.10.1.168 /usr/local/cuda-10.1/lib64/libcufft.so.10.0
- libcurand
sudo ln -s /usr/local/cuda-10.1/lib64/libcurand.so.10.1.168 /usr/local/cuda-10.1/lib64/libcurand.so.10.0
- libcusolver
sudo ln -s /usr/local/cuda-10.1/lib64/libcusolver.so.10.1.168 /usr/local/cuda-10.1/lib64/libcusolver.so.10.0
- libcusparse
sudo ln -s /usr/local/cuda-10.1/lib64/libcusparse.so.10.1.168 /usr/local/cuda-10.1/lib64/libcusparse.so.10.0
- libcublas
如果sudo ln -s /usr/lib/x86_64-linux-gnu/libcublas.so.10.2.0.168 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
/usr/lib/x86_64-linux-gnu/
目录下没有libcublas
库,可以在/usr/local/cuda10.1/targets/x86_64-linux/lib/
查找libcublas
库。
2. 安装Tensorflow时报错
python setup.py egg_info
如果错误如下:
Complete output from command python setup.py egg_info:Traceback (most recent call last):File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'setuptools'----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-szai5bvj/absl-py/
解决办法为安装setuptools
pip3 install --upgrade setuptools
然后重新安装Tensorfow。
3. error: invalid command ‘bdist_wheel’
如果遇到此错误:
pip3 install wheel
然后重新安装Tensorfow。
END