• 深度学习三件套 Ubuntu 20.04 安装 NVIDIA 驱动 CUDA cuDNN全流程【比较好用,jsxyhelu修改】


    训练U2nent的时候需要使用GPU,由于我重新安装了Ubuntu20,需要配置深度学习三件套( NVIDIA 驱动/CUDA/cuDNN)

    这里把比较详细的过程记录下来。

    image

    上图中我通过

    watch -n 0.5 -d nvidia-smi     #每隔0.5秒刷新一次

    和 top 实时查看回显,避免显存爆掉。

    一、安装NVIDIA驱动

    这里,直接使用UBUNTU自带的安装工具安装时没有问题的, 注意版本选一个比较新(不是最新)的就可以。

    image

    先测一下速度 ,选择ailiyun来

    二、安装CUDA

    CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。这里将

    image

    现在到本地,直接chmod +x,然后运行就可以了。这里CUDA的驱动版本要小于等于前面的驱动版本。

    如果按照上述流程安装了最新的NVIDIA Driver,runfile安装过程中会提醒是否继续(Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.),选择继续continue在后续选择安装内容时去除驱动选择。这一点一定要注意。

    运行成功后看见输出Summary,根据提示需要进行环境变量的设置,在.bashrc(ZSH使用者对应.zshrc)末尾追加如下文字。

    1
    2
    3
    4
    5
    # 还是使用.bashrc文件举例,zsh用户自行替换为.zshrc
    echo '# CUDA Soft Link' >> ~/.bashrc
    echo 'export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}' >> ~/.bashrc
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
    source ~/.bashrc

    最后测试以下CUDA是否成功安装,运行nvcc -V:

    1
    2
    3
    4
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2019 NVIDIA Corporation
    Built on Sun_Jul_28_19:07:16_PDT_2019
    Cuda compilation tools, release 10.1, V10.1.243

    或者也可以运行位于/usr/local/cuda-11.1/samples/中的测试用例,具体不说了,按照我前面的流程一步步走下来没毛病。

    三、安装cuDNN

    cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

    cuDNN Archive 页面挑选适合我们CUDA版本的cuDNN,我们选择

    image

    注意直接下载.tar.gz(不是deb),然后通过复制就可以实现相关操作。

    cuDNN的下载需要注册,相信对于大家来说并不是什么问题(迅雷会员可以解决)。下载并解压之后运行如下命令将cuDNN压缩包中的文件拷贝到CUDA 10.1的文件夹中:这里需要注意,

    1
    2
    3
    sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64
    sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h /usr/local/cuda-10.1/lib64/libcudnn*

    ===============================================================================================================================================================

    四、通过软链接同时维护和使用多个版本的CUDA库

    在安装完成CUDA和对应cuDNN的库之后,我们可以看到/usr/local/cuda指向了当前的CUDA文件夹:

    1 lrwxrwxrwx  1 root root   20 May  3 16:38 cuda -> /usr/local/cuda-10.1

    观察得知/usr/local/cuda是一个链接文件,在上述安装过程中被安装程式自动指向了当前安装版本的CUDA所在文件夹,于是我们可以通过更新链接指向,维护多个CUDA版本并动态的调用。

    1
    2
    # ln -snf [源] [链接文件] 更新链接文件的指向
    sudo ln -snf /usr/local/cuda-10.0 /usr/local/cuda

    再次观察/usr/local/cuda指向了新的CUDA文件夹,由于我们上面过程中添加在.bashrc or .zshrc 中的路径是/usr/local/cuda/***,于是这一条命令就可以改变当前调用的CUDA及cuDNN版本了。

    不过CUDA的文件夹不算小,同时维护CUDA10.0-TF1.15/CUDA10.1-TF2.X/CUDA10.2-PyTorch使得SSD上的空间岌岌可危,所以说,Linux的正确分区挂载习惯hh

    五、TensorFlow及Pyorch安装 (顺手)

    虚拟环境不说了,virtualenv还是conda自选。(我是用miniconda,用什么装什么。)

    TensorFlow

    TensorFlow目前最高支持Python 3.7 && CUDA 10.1。

    旧版 TensorFlow(1.x),CPU 和 GPU 软件包是分开的:

    1
    2
    pip install tensorflow1.15      # CPU
    pip install tensorflow-gpu
    1.15  # GPU

    对于TensorFlow 2.x CPU 和 GPU 软件包是统一的:

    1
    2
    pip install tensorflow            # CPU 和 GPU 的最新稳定版
    pip install tf-nightly            # 预览 build(不稳定)

    PyTorch

    PyTorch最高支持CUDA 10.2,同时支持10.1和9.2版本。我们安装CUDA 10.1版本对应的PyTorch。

    1 pip install torch1.5.0+cu101 torchvision0.6.0+cu101 -f https://download.PyTorch.org/whl/torch_stable.html

    image

    这里比较合理的方法是通过迅雷先把whl下载下来,然后本地安装。

    Reference

    1. https://www.tensorflow.org/install/gpu
    2. https://developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
    3. https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
    4. https://blog.csdn.net/u014380165/java/article/details/77340765
    5. https://cyfeng.science/2020/05/02/ubuntu-install-nvidia-driver-cuda-cudnn-suits
  • 相关阅读:
    CentOS 6.x Radius
    Linux系统优化
    Linux 常用检测命令
    Linux 修改终端命令提示符颜色
    Linux LVM简明教程
    剑指Offer 通过中序和先序遍历重建二叉树
    剑指Offer 树的子结构
    剑指Offer 从上往下打印二叉树(dfs)
    剑指Offer 把字符串转换成整数
    剑指Offer 两个链表的第一个公共结点
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/16449110.html
Copyright © 2020-2023  润新知