• Ubuntu22.04安装Cuda11.3和Cudnn8.5的深度学习GPU环境


    全文以Ubuntu 22.04为例进行安装

    Linux下驱动安装

    # 以下命令按顺序执行
    sudo apt update && sudo apt upgrade -y
    # or sudo apt update
    # 查看显卡信息
    ubuntu-drivers devices
    sudo ubuntu-drivers autoinstall
    # or sudo apt install nvidia-driver-510
    reboot
    nvidia-smi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    安装完成驱动以后,nvidia-smi命令是可用的,会输出显卡信息。

    通过此种方式进行显卡的驱动安装,不需要去手动禁止使用禁用nouveau驱动Bios禁用secure boot

    安装CUDA和CUDNN

    Linux - 如何查看Ubuntu系统的版本信息

    lsb_release -a
    
    '''
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 22.04.1 LTS
    Release:        22.04
    Codename:       jammy
    '''
    
    uname --p
    '''
    x86_64
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    进入cuda-toolkit-archive 官网会看到众多版本的cuda包,此处我们选择cuda11.3 ,选择11.3的原因有以下几点:

    1. pytorch的GPU支持cuda11.3版本;
    2. tensorflow2.x以上版本支持11.0以上版本;
    3. fastestimator高级深度学习框架,要求tf的版本是2.9.1,推荐安装的pytorch是对应cuda11.3的1.10.2版本;

    综上,我们最好选择cuda 11.3作为我们的安装版本。

    在这里插入图片描述

    在选择安装中,没有提供22.04的cuda安装包,但是我们可以去下载安装20.04的包,cuda默认向下兼容。

    安装之前再检查下是否安装gcc:gcc --version ,如果没有安装,则执行以下命令:

    # 没有安装gcc情况下执行
    sudo apt-get install manpages-dev
    sudo apt-get update
    sudo apt install build-essential
    sudo apt-get install manpages-dev
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    给出的安装命令有7条,我们只需要执行除去1和2的剩下的5行即可:

    >>wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
    >>sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
    >>sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
    >>sudo apt-get update
    >>sudo apt-get -y install cuda-11-3 # 原来sudo apt-get -y install cuda(默认安装最新版本)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    确认一下cuda在本电脑上的具体文件夹名称。输入如下代码。发现确实有cuda-11.3的文具文件夹,那么我们可以直接使用这个路径。

    (base) gem@lambda-quad:~/cuda11.3$ cd /usr/local/
    (base) gem@lambda-quad:/usr/local$ ls
    bin  cuda  cuda-11  cuda-11.3  etc  games  include  lib  man  sbin  share  src
    
    • 1
    • 2
    • 3

    设置环境变量:

    export PATH="/usr/local/cuda-11.3/bin:$PATH"
    export LD_LIBRARY_PATH="/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH"
    
    • 1
    • 2

    此时,输入nvcc -V,可以看到版本输出。

    进入cudnn-download-survey :

    在这里插入图片描述

    #sudo dpkg -i cudnn-local-repo-${OS}-8.x.x.x_1.0-1_amd64.deb
    sudo dpkg -i cudnn-local-repo-ubuntu2004-8.5.0.96_1.0-1_amd64.deb
    #sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
    sudo cp /var/cudnn-local-repo-ubuntu2004-8.5.0.96/cudnn-local-0579404E-keyring.gpg /usr/share/keyrings/
    sudo apt-get update
    #sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
    #sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.3
    sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.7
    # https://itcn.blog/p/57211130760.html
    #sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
    sudo apt-get install libcudnn8-dev=8.5.0.96-1+cuda11.7
    #sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y
    sudo apt-get install libcudnn8-samples=8.5.0.96-1+cuda11.7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    installlinux-deb

    验证安装

    cudnn

    cp -r /usr/src/cudnn_samples_v8/ $HOME
    cd  $HOME/cudnn_samples_v8/mnistCUDNN
    make clean && make
    ./mnistCUDNN
    
    • 1
    • 2
    • 3
    • 4

    中间可能出现gcc版本过高的提示,解决方式为:

    sudo apt-get install gcc-9
    sudo apt-get install g++-9
    
    # 第一种方式
    # sudo ln -s /usr/bin/gcc-9 /usr/local/cuda/bin/gcc
    # sudo ln -s /usr/bin/g++-9 /usr/local/cuda/bin/g++
    
    # 第二种方式
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    tf

    import tensorflow as tf
    TF_ENABLE_ONEDNN_OPTS=0
    print('GPU', tf.test.is_gpu_available())
    
    • 1
    • 2
    • 3

    pytorch

    import torch
    torch.cuda.is_availabel()
    
    • 1
    • 2
  • 相关阅读:
    SpringBoot如何缓存方法返回值?
    PhalAPI学习笔记拓展篇 ———ADM模式中NotORM实现简单CURD
    PDF文件如何设置密码保护?
    m基于rbf神经网络和遗传算法优化的MIMO-OFDM系统信道估计算法matlab仿真
    一篇博客学会一个Point 1 | 条件概率 Conditional probability
    HTTP 与 HTTPS
    selenium隐式等待
    爬虫-获取数据bs4
    android U广播详解(一)
    java控制流
  • 原文地址:https://blog.csdn.net/u014297502/article/details/126863549