Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

本文主要讲解在Ubuntu 18.04系统下正确安装cuDNN和Tensorflow的方法。需提前安装好NVIDIA驱动和CUDA,文中详细介绍了确定版本、下载安装包、解压安装等步骤,还针对安装过程中可能出现的so文件缺失、安装报错等问题给出了解决办法。

Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

本文章主要讲解 ubuntu 系统如何正确安装 cuDNNTensorflow

需要提前准备:

  • 一个安装好的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

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FlyWine

你的鼓励将是我创作的做大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值