• Ubuntu20.04 安装 CUDA10.1 和 CUDNN7.6.5


    说明:

    本人的实验环境为:ubuntu20.04, 显卡:GTX1060, 已安装Nvidia驱动

    • 查看你的NVIDIA显卡驱动是否支持cuda10.1版本。
      查看显卡驱动命令: nvidia-smi
      在这里插入图片描述
      CUDA Version: 这里的版本号大于等于10.1,就可以安装cuda10.1。

    • 为什么安装 cuda10.1
      本人主要用于深度学习,而目前主流的深度学习框架为Tensorflow和Pytorch, 比较下来感觉10.1还是挺适合的版本

      表二:CUDA Toolkit版本及可用PyTorch对应关系
      CUDAToolkit版本可用PyTorch版本
      7.50.4.1 ,0.3.0, 0.2.0,0.1.12-0.1.6
      8.01.1.0,1.0.0 ,0.4.1
      9.01.1.0,1.0.1, 1.0.0,0.4.1
      9.21.7.1,1.7.0,1.6.0,1.5.1,1.5.0,1.4.0,1.2.0,0.4.1
      10.01.2.0,1.1.0,1.0.1 ,1.0.0
      10.11.8.x,1.7.1,1.7.0,1.6.0,1.5.1,1.5.0, 1.4.0,1.3.0
      10.21.11.0,1.9.0,1.8.1,1.8.0,1.7.1,1.7.0,1.6.0,1.5.1,1.5.0
      11.01.7.1,1.7.0
      11.11.10.x, 1.9.x,1.8.x
      11.31.11.x,1.10.x,1.9.x,1.8.1
      11.51.11.x

    step1:GCC降级

    • Ubuntu20.04自带的GCC是9.3.0版本的,而cuda 10.1要求GCC版本为gcc-7
      # 查看当前GCC和g++的版本
      gcc --version
      g++ --version
      
      #安装gcc-7
      sudo apt-get install gcc-7 g++-7
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 安装完之后,系统中会存在两个或以上的gcc,因此需要设置一下gcc优先级。
      #查看gcc版本
      ls /usr/bin/gcc*
      
      • 1
      • 2
      可以看到这里有多个版本
      在这里插入图片描述
    • 进行gcc和g++版本的切换
      #进行gcc版本的切换
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 2
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
      #后面的数字为优先级,数字越大优先级越高
      #查看设置的优先级
      sudo update-alternatives --config gcc
      #或者
      sudo update-alternatives --display gcc
      #同理g++也需要设置
      sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 2
      sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1
      #显示g++优先级
      sudo update-alternatives --display g++
      #最后确保成功查看一下gcc版本
      gcc -v
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      在这里插入图片描述
    • 看到这里gcc版本已经是7.5.0代表成功。

    step2:安装CUDA

    去官网下载CUDA: https://developer.nvidia.com/cuda-10.1-download-archive-base
    在这里插入图片描述
    选择18.04是因为nvidia官网没有ubuntu20的选项,cuda官方支持的系统最高到Ubuntu18

    • 进入到你下好的文件夹内,打开终端:sudo sh cuda_10.1.105_418.39_linux.run
      如果中途报错信息为:Installation failed. See log at /var/log/cuda-installer.log for details.
      将指令改为sudo sh cuda_10.1.243_418.87.00_linux.run --librarypath=/usr/local/cuda-10.1,重新运行。操作和上面的相同。
    • 当安装界面启动,选择continue。
    • 然后输入accept,回车。在这里插入图片描述
    • CUDA安装包是自带显卡驱动的,由于你已经有了NVIDIA显卡驱动,如果不想安装CUDA 10.1中附带的驱动,移动到Driver选项上,按空格键将该项取消。然后,移动到Install选项,回车,等待安装完成。
      在这里插入图片描述
    • 等待安装完成
      在这里插入图片描述
      查看你的目录:ls /usr/local, 会多出来两个文件夹,cuda和cuda-10.1, 且cuda是cuda-10.1的一个软连接
      在这里插入图片描述
    • 配置CUDA的环境变量
      CUDA安装完成后,需要配置变量环境才能正常使用。首先在终端输入sudo gedit ~/.bashrc打开如下图所示的.bashrc文件。
      export PATH=$PATH:/usr/local/cuda/bin  
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
      export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
      
      # 或者
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
      export PATH=$PATH:/usr/local/cuda/bin
      export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      注意:上面的CUDA环境变量配置方法有很多,本文的配置方法中的cuda不要指定具体的版本,主要是为了电脑中多个CUDA版本的切换。
      最后,在终端输入source ~/.bashrc或者重新启终端使之生效。
    • 查看是否安装好
      这时,我们就可以在终端输入nvcc -V查看CUDA的安装信息,如下图所示,至此CUDA安装成功。
      在这里插入图片描述
      或者:cat /usr/local/cuda/version.txt # 查看cuda版本号

    step3:安装cudnn

    • 下载
      先去官网下载对应的CUDNN7.6.5,如果没有账号注册一下。

    • 对下载的cudnn-10.1-linux-x64-v7.6.5.32.tgz进行解压操作,得到一个文件夹cuda,命令为:

      tar zxvf ./cudnn-10.1-linux-x64-v7.6.5.32.tgz -C ./ 
      
      • 1
    • 输入下面命令

      #建议先获取root权限
      sudo su
      #输入密码
      #之后输入以下命令,可以带sudo也可以不带
      sudo cp cuda/include/cudnn.h /usr/local/cuda/include
      sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
      sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
      
      #最后输入下面命令,看看是否安装成功
      cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
    • 查看cudnn版本号:
      cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
      按照结果顺序读取出版本号(如果没有,那么可能没有安装 cuDNN)

    参考博客:

  • 相关阅读:
    css:grid布局子元素被撑开导致没有按比例均分
    28岁转行软件测试真的很难吗?按照我整理出的这份3000字学习指南就没问题...
    MNIST手写数字辨识-cnn网路 (机器学习中的hello world,加油)
    篇15:QT编写代码时函数名和括号之间有空白
    QT创建子目录项目,可以让项目组织成树形结构的示例:在项目中同时创建Application和第三方动态库(内部)
    通过事件绑定实现动画效果
    使用Spring AI让你的Spring Boot应用快速拥有生成式AI能力
    Python【英雄购买界面】
    【项目记录/vue移动端】仿京东到家登录页
    QT day3
  • 原文地址:https://blog.csdn.net/qq_42887760/article/details/126906423