​GPU, CUDA,cuDNN三者的关系总结​

GPU, CUDA,cuDNN三者的关系总结

CPU 和 GPU

在这里插入图片描述

cpu和gpu结构展示
GPU(图像处理器,Graphics Processing Unit)和CPU(中央处理器,Central Processing Unit)在设计上的主要差异在于GPU有更多的运算单元(如图中绿色的ALU),而Control和Cache单元不如CPU多,这是因为GPU在进行并行计算的时候每个运算单元都是执行相同的程序,而不需要太多的控制。Cache单元是用来做数据缓存的,CPU可以通过Cache来减少存取主内存的次数,也就是减少内存延迟(memory latency)。GPU中Cache很小或者没有,因为GPU可以通过并行计算的方式来减少内存延迟。因此CPU的Cahce设计主要是实现低延迟,Control主要是通用性,复杂的逻辑控制单元可以保证CPU高效分发任务和指令。所以CPU擅长逻辑控制,是串行计算,而GPU擅长高强度计算,是并行计算。打个比方,GPU就像成千上万的苦力,每个人干的都是类似的苦力活,相互之间没有依赖,都是独立的,简单的人多力量大;CPU就像包工头,虽然也能干苦力的活,但是人少,所以一般负责任务分配,人员调度等工作。
可以看出GPU加速是通过大量线程并行实现的,因此对于不能高度并行化的工作而言,GPU就没什么效果了。而CPU则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。

CUDA

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

cuDNN

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

总结

简单来说,CPU适合串行计算,擅长逻辑控制。GPU擅长并行高强度并行计算,适用于AI算法的训练学习
CUDA 是NVIDIA专门负责管理分配运算单元的框架
cuDNN是用于深层神经网络的gpu加速库

查询版本命令:

ubuntu:

cuda 版本 
nvcc -V
cat /usr/local/cuda/version.txt

cudnn 版本 
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

查看Nvidia GPU版本
nvidia-smi

//10s显示一次
watch -n 10 nvidia-smi

nvidia-smi -l

 

### CUDAcuDNN CUDA Toolkit 之间的关系 #### 关系概述 CUDA (Compute Unified Device Architecture) 是由 NVIDIA 开发的一种并行计算平台应用程序接口(API),它允许软件开发者通过使用NVIDIA显卡来进行通用目的的处理[^4]。 #### 组件定义 - **CUDA**: 提供了一种编程模型,使得开发人员可以编写能够在GPU上执行的程序。这包括编译器、库函数其他工具。 - **cuDNN**: 即 CUDA Deep Neural Network library, 这是一个针对深度神经网络优化过的高性能原语(primitives)库。该库提供了高度调优后的实现用于卷积运算、池化(pooling)操作以及其他常见的深层学习算法构建模块。因此,在训练或推理过程中涉及到大量矩阵乘法的地方,cuDNN 可以显著提高性能效率。 - **CUDA Toolkit**: 包含了完整的开发环境所需的一切资源——从驱动程序到调试工具再到文档资料等。它是安装其他依赖项如 cuDNN 的基础框架,并且包含了多个版本的支持以便于兼容不同的硬件配置与应用需求[^1][^2]. #### 联系说明 这三个组件紧密相连,共同作用以支持高效的 GPU 加速计算: - 当用户想要在其项目中加入 GPU 支持时,通常会先安装适合其系统的 CUDA Toolkit 版本; - 接着依据所使用的深度学习框架(比如 TensorFlow 或 PyTorch),选择相应版本的 cuDNN 库进行集成; - 最终,借助这些强大的底层设施,研究人员工程师们便可以在自己的工作中充分利用现代 GPU 所带来的巨大算力优势[^3]. ```bash # 示例命令展示如何验证已正确设置好环境变量指向正确的路径 echo $LD_LIBRARY_PATH # Linux/MacOS 下应包含 /usr/local/cuda/lib64/ where nvcc # Windows 上可通过此命令确认 NVCC 编译器的位置 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值