【GPU】深入理解GPU硬件架构及运行机制

本文详细解析了GPU的硬件架构,比较了CPU和GPU在计算单元、内存、控制单元以及核心协作方式上的差异,强调了GPU的并行处理优势,特别提到了FMA指令、tensorcores和raytracingcores在GPU中的作用,以及GPU编程模型SIMD的应用和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深入理解GPU硬件架构及运行机制

作者:Tim在路上​

曾看到有一篇名为《The evolution of a GPU: from gaming to computing》的文章。

这篇文章非常热烈的讨论了这些年GPU的进步,这引发了我们的一些思考:

为什么我们总说GPU比CPU要强大,既然GPU强大,为什么不能取代CPU呢?

答案:CPU工作方式和GPU的工作方式截然不同,下面的两张图有助于帮助我们理解CPU和GPU的工作方式的不同。

上图有几个重点的元素,也是我们下文重点要阐述的概念,

  • 绿色代表的是computational units(可计算单元) 或者称之为 cores(核心),
  • 橙色代表memories(内存) ,
  • 黄色代表的是control units(控制单元)。

因此想要理解GPU的底层核心构成,就必须明确这几个元素的作用,下文会逐一讲解每个元素的作用。

1. 计算单元 (cores)

总的来看,我们可以这样说:CPU的计算单元是“大”而“少”的然而GPU的计算单元是“小”而“多”的

这里的大小是指的计算能力,多少指的是设备中的数量。

通过观察上图,显然可以看出,计算单元(绿色的部分),CPU“大少”,GPU“小多”的特点。

CPU的cores 比GPU的cores要更加聪明(smarter),这也是所谓“大”的特点。

在过去的很长时间里,CPU的core计算能力增长是得益于主频时钟最大的频率增长

相反,GPU不仅没有主频时钟的提升,而且还经历过主频下降的情况,因为GPU需要适应嵌入式应用环境,在这个环境下对功耗的要求是比较高的,不能容忍超高主频的存在。

例如英伟达的Jetson NANO, 安装在室内导航机器人身上,就是一个很好的嵌入式环境应用示例,安装在机器人身上,就意味着使用电池供电,GPU的功耗不可以过高。

CPU比GPU聪明,很大一个原因就是CPU拥有"out-of-order exectutions"(乱序执行)功能

出于优化的目的,CPU可以用不同于输入指令的顺序执行指令,当遇到分支的时候,它可以预测在不久的将来哪一个指令最有可能被执行到(multiple branch prediction 多重分支预测)。

通过这种方式,它可以预先准备好操作数,并且提前执行他们(soeculative execution 预测执行),通过上述的几种方式节省了程序运行时间

显然现代CPU拥有如此多的提升性能的机制,这是比GPU聪明的地方。相比之下,GPU的core不能做任何类似out-of-order exectutions那样复杂的事情。

总的来说,GPU的core只能做一些最简单的浮点运算,例如 multiply-add(MAD)或者 fused multiply-add(FMA)指令。

Fused Multiply-Add (FMA) 指令是一种在许多现代处理器上可用的特殊指令,用于执行浮点数乘法和加法操作。它结合了两个操作数(通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值