ubuntu20.04安装CUDA与cudnn

一、NVIDIA显卡驱动安装

我这里之前就装好了
使用命令

nvidia -smi //查看驱动型号

在这里插入图片描述
还需要知道Ubuntu的版本号
我是直接使用图形化界面打开了/etc/os-release文件
在这里插入图片描述
也可以直接使用命令查看

cat /etc/os-release

准备工作做好之后,就进行CUDA的安装

二、安装CUDA

官网找对应版本

官网上找到驱动和CUDA的对应关系
链接: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
在这里插入图片描述

下载安装文件

下载地址
链接: https://developer.nvidia.com/cuda-12-2-2-download-archive
在这里插入图片描述
顺着往下点,找到和你的系统一一对应的版本
在这里插入图片描述
有三种下载方式,根据自己系统情况选择相应选项,我三个都试了,都失败了,别人说最后一个选择runfile最不容易出问题,但是我也失败了
这里说一下遇到的问题,不敢兴趣的同学可以直接跳过:

首先使用的是deb(local)的安装,执行到第3句的时候,每次都需要70多分钟,最后99%的时候报错–段错误(核心已转储)
在这里插入图片描述
在这里插入图片描述
同样的使用runfile(local)时,出现了同样的问题,总之就是仓库包没有拉下来,报段错误(这个问题没有解决)
曲线救国–下载安装包
使用工具拉不下来,咱就自己下载安装包
仍旧选择deb(local)下载安装包到本地,然后继续执行后面的命令,直到最后一个命令,安装CUDA的时候报错
在这里插入图片描述
最后!成功的是使用本地下载的runfile文件,执行成功
在这里插入图片描述
直接复制这个地址到浏览器,就可以直接下载了https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run
在这里插入图片描述

安装

下载完成之后,还使用命令运行run文件

sudo sh cuda_12.2.2_535.104.05_linux.run

选择continue继续
在这里插入图片描述
输入accept,回车
在这里插入图片描述
使用回车取消第一个驱动,因为驱动已经安装好了了,接着移动到install安装
在这里插入图片描述
安装成功,出现下面的界面
在这里插入图片描述

配置环境变量

打开配置文件----在.bashrc文件里配置环境变量

sudo vim ~/.bashrc

在打开文件的最后一行之后追加下面内容:

export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.2/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-12.2/lib64

/usr/local/cuda-12.2/目录是CUDA的安装路径。如果你使用了不同的安装路径,需要相应地修改上述命令中的路径。
要应用上面这些更改,需要重新加载shell配置文件

source ~/.bashrc

检查 CUDA Toolkit是否安装成功

$nvcc -V 

三、安装cuDNN

选择版本

官网找到和CUDA的对应版本
链接: https://developer.nvidia.com/rdp/cudnn-archive
在这里插入图片描述
点开
在这里插入图片描述
下载压缩包,然后解压缩

tar zxvf 压缩文件名 .

将cuDNN库的文件安装或复制到指定的CUDA安装目录下,并确保这些文件对所有用户都是可读的。

sudo cp cuda/include/cudnn.h /usr/local/cuda-12.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-12.2/lib64
sudo chmod a+r /usr/local/cuda-11.2/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-11.2/lib64/libcudnn*

到此,cudnn安装配置完成了!

命令解释:(不想了解命令的作用的可以直接跳过这一段)
首先复制cuDNN头文件:
第一条命令将cudnn.h(cuDNN的头文件)从cuda/include/目录复制到/usr/local/cuda-11.2/include/目录。cudnn.h是cuDNN库的主要头文件,包含了调用cuDNN函数所需的声明和定义。复制到CUDA安装目录下的include子目录是为了确保在编译时能够找到这些头文件。

复制cuDNN库文件:
第二条命令将cuda/lib64/目录下所有以libcudnn开头的文件(通常是cuDNN的动态链接库文件)复制到/usr/local/cuda-11.2/lib64/目录。这些库文件包含了cuDNN函数的实现,对于在运行时使用cuDNN功能是必需的。

设置cuDNN头文件为可读:
第三条命令通过修改文件权限,使得所有用户(a表示所有用户)都能读取(+r表示添加读取权限)/usr/local/cuda-11.2/include/cudnn.h文件。这是为了确保在编译时,任何用户都能够访问到这个头文件。

设置cuDNN库文件为可读:
类似于上一步,第四条命令将所有以libcudnn开头的库文件在/usr/local/cuda-11.2/lib64/目录下的权限设置为对所有用户可读。这是为了确保在运行时,任何用户都能够访问到这些库文件。

另一种下载方式

官网
在这里插入图片描述
这里没有选择和CUDA版本对应的选项,所以安装之后,运行有问题,小伙伴可以自己试试,我这里没有成功。

四、cuDNN与CUDA关系

cuDNN(NVIDIA CUDA Deep Neural Network library)是一个专门为深度学习设计的GPU加速库,它依赖于CUDA平台来执行其优化操作。

CUDA

CUDA是NVIDIA推出的一个并行计算平台和编程模型,它允许开发者利用NVIDIA GPU的并行计算能力来加速计算密集型应用程序。CUDA提供了GPU编程的接口和工具,使得开发者能够编写在GPU上运行的程序。
● 底层硬件交互:CUDA负责直接与GPU硬件进行交互,管理GPU上的计算资源、内存资源等,为上层应用提供高效的并行计算能力。

cuDNN的依赖关系

● 基于CUDA的加速:cuDNN是建立在CUDA平台之上的,它利用CUDA提供的GPU并行计算能力来加速深度学习中的各种操作,如卷积、池化、激活函数等。cuDNN通过高度优化的算法和GPU加速技术,显著提高了深度学习模型的训练速度和推理速度。
● API与函数库:cuDNN提供了一套丰富的API和函数库,这些API和函数库都是基于CUDA编写的。开发者在编写深度学习应用时,可以通过调用cuDNN的API来利用GPU加速深度学习操作。这些API背后是cuDNN在CUDA平台上实现的优化算法和并行计算逻辑。

与CPU的交互

● CPU与GPU的协同工作:虽然cuDNN主要依赖于CUDA平台来执行GPU加速操作,但在深度学习应用中,CPU和GPU通常是协同工作的。CPU负责处理一些不适合并行计算的任务,如数据预处理、模型参数更新等,而GPU则负责执行大规模并行计算任务,如神经网络的前向传播和反向传播。
● 数据传输与同步:在CPU和GPU之间,需要频繁地进行数据传输和同步操作。CUDA提供了相应的机制来支持这些操作,如内存拷贝函数(如cudaMemcpy)和同步函数(如cudaDeviceSynchronize)。cuDNN在执行深度学习操作时,也会利用这些机制来确保数据的正确传输和同步。

开发编程角度

  1. 开发人员编程:
    开发人员编写深度学习应用时,会包含cuDNN的头文件(如cudnn.h),这些头文件提供了cuDNN库的类型定义、函数声明等接口信息。
    开发人员通过调用这些接口(即cuDNN提供的函数)来执行深度学习中的操作,如卷积、池化等。
  2. cuDNN调用CUDA:
    当开发人员调用cuDNN的某个函数时,该函数内部会进一步调用CUDA的接口(API)来实现具体的GPU加速操作。
    cuDNN作为一个高级别的库,它封装了底层的CUDA调用,使得开发人员可以更加专注于深度学习算法的实现,而不需要深入了解GPU的硬件细节和CUDA的编程细节。
  3. CUDA与GPU交互:
    CUDA的接口负责与GPU硬件进行交互,管理GPU上的计算资源、内存资源等。
    CUDA通过驱动程序与GPU硬件进行通信,将计算任务分配给GPU上的不同核心(或称为CUDA核心)来并行执行。
    CUDA还提供了内存管理、同步机制等功能,以确保GPU上的计算任务能够正确、高效地执行。

图示

总结起来就是我上一篇文章( AI服务器环境搭建-总结和思考)中画的图中的下边一部分
在这里插入图片描述

总结

为了构建一个高效、灵活且功能强大的深度学习开发环境,需要安装PyTorch、Miniconda、cuDNN、CUDA四款软件,它们共同构成了一个完整的深度学习开发环境,能够支持高效的模型训练、推理和部署。今天主要写了cuDNN,CUDA的安装,过几天我再写一下关于miniconda和pytorch的安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值