首页>>科技 >>内容

Nvidia的Ada,Lovelace架构深度解读!

发布时间:2023-12-01 17:15:44编辑:温柔的背包来源:

很多朋友对Nvidia的Ada,Lovelace架构深度解读!不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

Nvidia的Ada,Lovelace架构深度解读!

英伟达的RTX 4090采用了英伟达的最新架构,并以早期计算先驱阿达洛芙莱斯的名字命名。与之前的架构安培相比,阿达洛芙莱斯享有工艺节点的优势,并使用台积电为GPU定制的4 nm工艺。Nvidia还强调了光线跟踪性能,以及旨在弥补启用光线跟踪对性能的巨大影响的技术。但是光线追踪性能并不是唯一重要的,因为很多游戏根本不支持光线追踪。

另外,大部分使用光线追踪的游戏只是用它来渲染某些效果;传统的光栅化仍然负责渲染大多数场景。

我还认为对光线追踪的关注掩盖了英伟达工程师为提高其他领域的性能所做的工作。在本文中,我们将使用一组正在进行的微基准来研究Nvidia的阿达洛芙莱斯架构。我们将关注影响各种工作负载性能的领域,无论是否有光线跟踪,特别强调缓存和内存子系统。特别感谢Skyjuice在RTX 4090上运行测试。GPU概述

SM或流式多处理器构成了Nvidia GPU的基本构建模块。它们大致相当于AMD的RDNA和RDNA 2架构上的WGP或工作组处理器。SM和WGP都有128个FP32通道(或者着色器,如果你喜欢的话),并进一步分为四个块,每个块有32个通道。安培最大的客户端芯片GA102已经很大了。

GA102框图,Nvidia的白皮书阿达洛芙莱斯表面上和安培差不多,每个SM都有相似的计算特性。但是,它通过屋顶扩大了规模。AD102有144条短信,GA102有84条,也就是说短信数量增加了71%。RTX 4090仅启用了128个SM,但这仍然代表了52%的增长。结合更大的时钟速度增长,我们正在研究计算能力的巨大飞跃。

AD102框图,Nvidia的白皮书,但是扩展GPU的大小不仅仅是复制粘贴。GPU经常需要来自内存子系统的大量带宽,所有这些额外的SM必须以某种方式提供。让我们转向正在进行的微基准测试,看看阿达洛芙莱斯的记忆层次。缓存和内存延迟

我们正在启动一项缓存和内存延迟基准测试,因为这将让我们更好地了解缓存设置。像Ampere一样,阿达洛芙莱斯坚持一个经过验证的真正的两级缓存方案。Nvidia最近的两个架构都为每个SM提供了一个大的L1缓存,但阿达洛芙莱斯大大扩展了L2缓存。Ampere的传统尺寸为6 MB L2,但AD102包含96 MB L2。RTX 4090启用了72 MB L2高速缓存。

从安培到阿达洛芙莱斯,英伟达并没有享受到VRAM带宽的大幅提升,所以爱达的L2得到了巨大的容量提升,以防止随着计算能力的扩展出现内存带宽瓶颈。AMD的RDNA 2架构选择了复杂的四级缓存系统,三级共享缓存。每个着色器阵列中有一个128 KB的L1,用于吸收来自相对较小(16KB)的L0缓存的缓存未命中流量。

L2堪比安培的L2,大型无限高速缓存可以帮助AMD通过更便宜(和更低功耗)的VRAM子系统实现高性能。

有趣的是,英特尔A770的L2延迟与RTX 4090相似,阿达洛芙莱斯的高速缓存子系统具有令人印象深刻的延迟特性。一级SM专用缓存看起来与Ampere的相似,但阿达洛芙莱斯的时钟速度更高,这使它具有整体延迟优势。但是L2是乐趣的开始。虽然容量比Ampere的L2高12倍,但Nvidia设法将延迟减少了约30 ns。

安培的L2在延迟方面接近AMD的Infinity Cache,但阿达洛芙莱斯的L2现在在容量和延迟方面介于RDNA2的L2和Infinity Cache之间。与Ampere相比,RDNA 2的缓存子系统看起来很有竞争力。这两笔交易都受到测试规模小的打击,而AMD在L2规模及以上优势明显。阿达洛芙莱斯改变了这一点,随着测试规模从AMD的L2溢出,Nvidia现在享有明显的优势。

阿达洛芙莱斯的内存延迟也减少了,尽管这可能主要是由于更好的L2性能,因为L2必须在内存的路上检查。随着阿达洛芙莱斯改进L2,AMD发现自己处于一个不舒服的位置,Nvidia使用单级高速缓存来填补AMD的L2和无限高速缓存的角色。更少的高速缓存级别意味着更低的复杂性,以及每次存储器访问的更少的潜在标签和状态检查。

当然,更多的缓存级别意味着在容量、延迟和带宽权衡方面有更大的灵活性。与安培相比,RDNA 2无疑证明了这一点。它有一个更快的L2缓存和一个更大的无限缓存,几乎和安培的L2一样快。但是Ida lovelace是一个不同的故事。

带宽延迟是影响GPU性能的一个因素,但带宽也是一个因素,GPU往往比CPU更需要带宽。首先,我们将使用一个OpenCL工作组来测试带宽。属于同一工作组的线程可以共享本地内存,这意味着它们将被限制在单个WGP或SM上运行。这是我们能得到的最接近GPU单核带宽测试的结果。

一旦我们进入L2和更远的地方,RDNA 2 WGP享有比安培SM更好的带宽优势。阿达洛芙莱斯没有改变这一点,但L2的带宽确实比安培有所提高。第三,我们看到英伟达的工程师在L2上做得非常好。在AMD方面,我们开始看到RDNA 2非常擅长处理低占用率工作负载的迹象。让我们增加工作组的数量来测试扩展,看看这种优势能持续多久。带宽扩展

共享缓存的设计比较困难,尤其是在GPU中,因为缓存必须连接大量的客户端,并且满足它们的带宽要求。在这里,我们使用越来越多的工作组来测试带宽。和以前一样,每个工作组必须使用一个WGP或SM,所以我们看到共享缓存可以处理更多的WGP和SM,并开始要求带宽。阿达洛芙莱斯是对Ampere的一个明显改进,在匹配的工作组数下实现了更高的带宽。

当使用RTX 4090的所有短信时,我们看到——的惊人5 TB/s带宽,几乎是使用RTX 3090的84条短信时的两倍。Nvidia已经成功地扩展了L2容量和带宽,以支持大量的SM,这是一个了不起的成就。阿达洛芙莱斯能在低占用率上超越安培是锦上添花。

AMD在小工作负载方面还是有优势的。RDNA 2的L2在可伸缩性方面给人留下了特别深刻的印象。它可以处理40 WGPs,并且要求最大带宽而不发生争用。大容量无限高速缓存也表现不错,在占用率较低的情况下击败了安培和阿达洛芙莱斯。但与我们在英特尔Arc A770上看到的不同,Invista并没有落后太多。

更重要的是,阿达洛芙莱斯在低占用率下的性能提升,意味着RDNA 2失去优势的速度要比对阵安培快。由于有超过24个工作组在运行,阿达洛芙莱斯的SM从L2获得的带宽比RDNA 2的WGP从Infinity Cache获得的带宽还多。RDNA 2的L2带宽优势一直持续到Nvidia拥有超过50条短信。

但是RDNA 2号和阿达洛芙莱斯之间的L2比较不是那么简单,因为L2的容量不再与RDNA 2号和安培在同一范围内。在高占用率下,安培比RDNA 2有相当大的优势,但阿达洛芙莱斯更进一步。RDNA 2的L2和无限缓存明显不如洛夫莱斯的L2。接下来,让我们看看当测试规模大到足以溢出缓存时会发生什么。

我们测得的RTX 4090的理论带宽比高占用率下的理论带宽高,可能是因为一些重复的读数被合并广播到多个SM。我提到过GPU测试很难吗?阿达洛芙莱斯的扩展速度没有安培快,但这一优势并不特别重要,因为阿达洛芙莱斯应该比L2提供更多的内存访问。VRAM的带宽并没有比Ampere明显增加,但是两块Nvidia卡的绝对带宽还是很大的。

从角度来看,他们的理论内存带宽几乎和AMD的镭龙VII一样多,后者有一个基于HBM2的内存子系统。AMD的RDNA 2再次享受低占用率的带宽优势,但Nvidia最近的架构为大型工作负载提供了更多的VRAM带宽。AMD也更依赖他们的Infinity缓存,因为他们的VRAM带宽在加载十几个wgp后就停止扩展了。最后,我们测试一下高占用率下512个工作组的带宽。

这应该允许每个SM或WGP有多个可用的工作组,并且在每个工作组中有很多并行性。

RTX 3090通过使用内梅斯基于Vulkan的带宽测试获得的结果。这与OpenCL的结果没有直接的可比性,但是它提供了上下文。由于RTX 4090的高时钟速度和SM的疯狂数字,阿达洛芙莱斯的L1带宽突破了屋顶,破坏了图表上的刻度。L2缓存带宽不是开玩笑的,它大大提高了安培的带宽。即使RDNA 2可以提供L2或无限缓存的内存访问服务,RDNA 2也很难与之竞争。

AMD确实为他们做了这项工作。

本地存储延迟

在GPU上,本地内存是一小块临时内存,由工作组内的所有线程共享,不能在工作组外访问。软件必须显式地将数据加载到本地内存中,一旦工作组执行完毕,本地内存的内容就会消失。这使得本地内存更难使用,但作为交换,本地内存通常比普通的全局内存子系统提供更快、更一致的性能。本地存储器的一个目的是在光线跟踪期间存储BVH遍历堆栈。

Nvidia称本地内存为“共享内存”,AMD称之为“本地数据共享”或LDS。

*由于时钟斜坡非常慢,Nvidia Xavier的测量可能不准确。与Ampere相比,阿达洛芙莱斯在本地内存延迟方面提供了很好的改善,从而扩大了Nvidia在RDNA 2中的领先优势。这里应该注意的是,两种Nvidia架构都使用单个128 KB SRAM块作为L1缓存和本地存储器。该架构可以通过改变标签SRAM的数量来提供L1高速缓存和本地存储器大小的不同组合。

相比之下,AMD为每个Cu(WGP的一半)使用16 KB的专用L0向量缓存和128 KB的专用本地内存。这意味着Nvidia在实际中的本地内存容量会更少。

计算

试图确定每个周期和WGP的吞吐量数据是一项令人沮丧的工作,因为很难确定GPU的时钟速度。我们还需要调查Nvidia的安培和阿达洛芙莱斯架构是否在我们的指令速率测试中做了奇怪的事情,这很难,因为我也没有。至少就我们所知,阿达洛芙莱斯的行为像安培。常见的FP32运算(如加法和融合乘法加法)的延迟保持在4个周期。

用于比较的RDNA 2对这些操作有五个周期的延迟。总结各种操作的吞吐量特征:

RDNA 2也以双倍的速率执行FP16操作。根据Ada白皮书,安培和阿达洛芙莱斯可以以1:1的比例执行FP16,但我们无法验证这一点,因为Nvidia卡不支持OpenCL的FP16扩展。原子延迟

与CPU非常相似,现代GPU支持原子操作,以允许线程之间的同步。OpenCL通过atomic_cmpxchg内在函数公开这些原子操作。这是我们能够在GPU上进行的最接近内核间延迟测试的方法。和游戏有关系吗?可能没有,因为我从来没有见过这些指令用在游戏着色器代码中。但是测试有意思吗?是的,与CPU不同,GPU有不同的原子指令来处理本地和全局内存。

本地内存(共享内存或LDS)中的原子应该完全包含在SM或WGP中,所以它们应该比全局内存中的原子快得多。如果我们想稍微扩展一下,本地内存中的原子延迟大致相当于测量CPU核上兄弟SMT线程之间的核间延迟。

阿达洛芙莱斯在这里提供了对Ampere的增量改进,这可能主要是由于更高的时钟速度。AMD的RDNA 2在这次测试中表现非常出色。从绝对意义上来说,GPU上的“核心到核心”延迟与锐龙CPU上的跨CCX访问相当,这很有意思。最后的话是由李倩审查和编辑。

以上知识分享希望能够帮助到大家!