前言:
如今小伙伴们对“什么是光流法hs算法的特点和应用”大概比较着重,各位老铁们都需要学习一些“什么是光流法hs算法的特点和应用”的相关资讯。那么小编同时在网络上网罗了一些对于“什么是光流法hs算法的特点和应用””的相关内容,希望你们能喜欢,我们快快来了解一下吧!在GPU的世界中,2022年将成为其历史上的一个里程碑。英特尔兑现了重新进入独立显卡市场的承诺,英伟达将显卡的尺寸和价格推到了天价,AMD则将CPU技术引入了显卡领域。新闻头条充斥着令人失望的性能、熔化的电缆和伪造的框架的故事。
GPU 的狂热涌入论坛,PC 爱好者对显卡市场的发展同样感到惊讶和震惊。因此,人们很容易忘记,最新的产品所使用的芯片是有史以来最复杂、最强大的家用电脑芯片。
接下来让我们深入研究下所有的供应商的架构,剥去层,看看什么是新的,他们有什么共同点,以及这些对普通用户意味着什么。
文章将主要从以下几方面进行剖析对此:
整体GPU架构着色器核心结构光线追踪单元和功能内存层次结构(高速缓存和 DRAM)芯片封装和工艺节点显示和媒体引擎GPU 的下一步是什么?
整体 GPU 结构:从顶部开始
让我们从本文的一个重要方面开始——这不是一个性能比较。相反,我们将着眼于GPU内部的所有内容是如何安排的,通过查看统计数据和数字来理解AMD、英特尔和英伟达在设计图形处理器时的方法差异。
我们将从查看使用我们正在研究的架构的可用最大芯片的整体 GPU 组成开始。需要强调的是,英特尔的产品与 AMD 或 Nvidia 的目标市场不同,因为它在很大程度上是一款中档图形处理器。
这三种芯片不仅彼此之间,而且与使用以前架构的类似芯片在大小上都有很大不同。所有这些分析纯粹是为了理解这三个处理器的底层到底是什么。在分解每个GPU的基本部分之前,我们将检查总体结构——着色器核心、光线跟踪能力、内存层次结构以及显示和媒体引擎。
AMD Navi 31
按字母顺序排列,第一名是AMD的Navi 31,这是他们迄今公布的最大的RDNA 3驱动芯片。与Navi 21相比,我们可以看到他们之前的高端GPU的组件数量有了明显的增长。
AMD Navi 31 框图
着色器引擎 (SE) 包含更少的计算单元 (CU),从 200 个减少到 16 个,但现在总共有 6 个 SE——比以前多了两个。这意味着 Navi 31 拥有多达 96 个 CU,总共部署了 6144 个流处理器(SP)。AMD 已经对 RDNA 3 的 SP 进行了全面升级,我们将在本文后面介绍这个问题。
每个着色引擎还包含一个专门处理栅格化的单元,一个用于三角形设置的原始引擎,32个渲染输出单元(rop)和两个256kB L1缓存。最后一个,现在是两倍的规模,但ROP本身仍然保持不变。
AMD 也没有对光栅化器和原始引擎进行太多更改——所述 50% 的改进是针对整个芯片的,因为它的 SE 比 Navi 21 芯片多 50%。然而,SE 处理指令的方式发生了变化,例如更快地处理多个绘图命令和更好地管理流水线阶段,这应该会减少 CU 在继续执行另一项任务之前需要等待的时间。
最明显的变化是在11月发布之前获得最多谣言和八卦的——GPU封装的Chiplet方式。凭借在该领域多年的经验,AMD选择这样做是合乎逻辑的,但这完全是出于成本/制造的原因,而不是性能。
我们将在本文后面对此进行更详细的研究,所以现在,让我们只关注哪些部分在哪里。在 Navi 31 中,内存控制器及其相关的最终层缓存分区位于主处理器(GCD,图形计算芯片)周围的独立小芯片(称为 MCD 或内存缓存芯片)中。
由于需要提供更多 SE,AMD 也将 MC 数量增加了 50%,因此 GDDR6 全局内存的总总线宽度现在为 384 位。这次的 Infinity Cache 总量较少(96MB 对 128MB),但更大的内存带宽抵消了这一点。
英特尔 ACM-G10
接下来是英特尔和ACM-G10芯片(以前称为DG2-512)。虽然这不是英特尔生产的最大的图形处理器,但却是英特尔最大的消费图形处理器。
ACM-G10芯片的框图是一个相当标准的安排,它看起来更像是Nvidia而不是AMD的。它共有8个渲染片,每个包含4个x核,共计512个向量引擎(英特尔ACM-G10芯片相当于AMD的流处理器和英伟达的CUDA核心)。
英特尔 ACM-G10 框图
每个渲染切片中还包含一个基本单元、光栅化器、深度缓冲处理器、32个纹理单元和16个ROP。乍一看,这个GPU看起来相当大,因为 256 个 TMU 和 128 个 ROP 比 Radeon RX 6800 或 GeForce RTX 2080 中的要多。
然而,AMD 的 RNDA 3 芯片包含 96 个计算单元,每个计算单元有 128 个 ALU,而 ACM-G10 的总共有 32 个 Xe 核心,每个核心有 128 个 ALU。因此,仅就 ALU 数量而言,英特尔的 Alchemist GPU 是 AMD 的三分之一。但正如我们稍后将看到的,ACM-G10 的大量芯片被交给了不同的数字运算单元。
与英特尔通过 OEM 供应商发布的第一款 Alchemist GPU相比,该芯片在组件数量和结构安排方面具有成熟架构的所有特征。
英伟达AD102
我们用英伟达的AD102完成了对不同布局的开场概述,这是他们第一个使用Ada Lovelace架构的GPU。与它的前身安培GA102相比,它似乎没有那么大的不同,只是大了很多。不管怎么说,的确如此。
英伟达使用图形处理集群(GPU)的组件层次结构,其中包含6个纹理处理集群(tpc),每个集群包含2个流多处理器(SMs)。这种安排并没有随着Ada而改变,但总数肯定有......
英伟达AD102框图
在完整的 AD102 芯片中,GPC 数量从 7 个增加到 12 个,因此现在总共有 144 个 SM,总共有 18432 个 CUDA 内核。与 Navi 31 中的 6144 个 SP 相比,这似乎是一个高得离谱的数字,但 AMD 和 Nvidia 对它们的组件进行了不同的计算。
尽管这大大简化了问题,一个Nvidia SM相当于一个AMD CU——都包含128个ALU。因此,Navi 31是英特尔ACM-G10的两倍(只计算ALU), AD102则是3.5倍。
这就是为什么在芯片的规模如此明显不同的情况下,对它们进行任何直接的性能比较都是不公平的。然而,一旦它们进入显卡,定价和销售,情况就完全不同了。
但是我们可以比较的是三款处理器中最小的重复部分。
着色器核心:进入 GPU 的大脑
从整个处理器的概览,现在让我们深入芯片的核心,看看处理器的基本数字运算部分:着色器核心。
这三家制造商在描述他们的芯片时使用了不同的术语和短语,特别是在谈到他们的概述图时。所以在这篇文章中,我们将使用我们自己的图像,使用共同的颜色和结构,这样就更容易看出什么是相同的,什么是不同的。
AMD RDNA 3
AMD 在 GPU 的着色部分中最小的统一结构称为双计算单元(DCU)。在某些文档中,它仍称为工作组处理器 (WGP),而其他文档则将其称为计算单元对。
请注意,如果这些图表中没有显示某些内容(例如常量缓存、双精度单元),这并不意味着它们不存在于体系结构中。
在很多方面,整体布局和结构元素与 RDNA 2 没有太大变化。两个计算单元共享一些缓存和内存,每个计算单元包含两组 32 个流处理器 (SP)。
第 3 版的新功能是每个 SP 现在包含的算术逻辑单元 (ALU) 是以前的两倍。现在每个 CU 有两组 SIMD64 单元,每组有两个数据端口——一个用于浮点、整数和矩阵运算,另一个仅用于浮点数和矩阵。
AMD 确实为不同的数据格式使用单独的 SP——RDNA 3 中的计算单元支持使用 FP16、BF16、FP32、FP64、INT4、INT8、INT16 和 INT32 值的操作。
另一个重要的新功能是 AMD 所谓的 AI 矩阵加速器的出现。
与我们很快就会看到的英特尔和 Nvidia 的架构不同,它们不作为单独的单元——所有矩阵运算都使用 SIMD 单元,任何此类计算(称为 Wave Matrix Multiply Accumulate,WMMA)将使用整组 64 ALU。
在撰写本文时,AI 加速器的确切性质尚不清楚,但它可能只是与处理指令和所涉及的大量数据相关的电路,以确保最大吞吐量。在他们的Hopper 架构中,它可能具有与 Nvidia 的 Tensor Memory Accelerator 类似的功能。
与 RDNA 2 相比,变化相对较小——旧架构也可以处理 64 线程波前(又名 Wave64),但这些是在两个周期内发布的,并且在每个计算单元中都使用了两个 SIMD32 块。现在,这一切都可以在一个周期内完成,并且只使用一个 SIMD 块。
在之前的文档中,AMD 表示 Wave32 通常用于计算和顶点着色器(也可能是光线着色器),而 Wave 64 主要用于像素着色器,驱动程序相应地编译着色器。因此,转向单周期 Wave64 指令问题将为严重依赖像素着色器的游戏提供推动力。
然而,所有这些额外的电力需要正确利用,以充分利用它。这是所有GPU架构的真实情况,为了做到这一点,它们都需要大量的线程负载(这也有助于隐藏与DRAM相关的固有延迟)。
因此,随着ALU的加倍,AMD推动了程序员尽可能多地使用指令级并行的需求。这在图形领域并不新鲜,但RDNA相对于AMD的老GCN架构的一个显著优势是,它不需要那么多线程来达到充分利用。考虑到现代渲染在游戏中的复杂程度,开发者在编写着色器代码时将有更多的工作要做。
英特尔Alchemist
现在让我们转向英特尔,看看 Alchemist 架构中的 DCU 等效项,称为Xe Core(我们将其缩写为 XEC)。乍一看,与 AMD 的结构相比,这些看起来绝对庞大。
RDNA 3中的单个DCU包含4个SIMD64块,而Intel的XEC包含16个SIMD8单元,每个单元由自己的线程调度器和调度系统管理。和AMD的流处理器一样,在《炼金师》中所谓的向量引擎可以处理整数和浮点数据格式。虽然不支持FP64,但这在游戏中并不是什么大问题。
英特尔一直使用相对较窄的 SIMD——在 Gen11 之类的产品中使用的 SIMD 只有 4 个宽度(即同时处理 4 个线程),而在第 12 代中宽度仅翻了一番(例如,在他们的 Rocket Lake CPU 中使用)。
但考虑到游戏行业多年来一直习惯使用 SIMD32 GPU,因此游戏也相应地进行了编码,因此保留窄执行块的决定似乎适得其反。
AMD 的 RDNA 3 和 Nvidia 的 Ada Lovelace 的处理块可以在一个周期内发出 64 或 32 个线程,而英特尔的架构需要 4 个周期才能在一个 VE 上实现相同的结果——因此每个 XEC 有 16 个 SIMD 单元。
然而,这意味着如果游戏没有以确保 VE 被完全占用的方式进行编码,则 SIMD 和相关资源(缓存、带宽等)将处于闲置状态。英特尔Arc 系列显卡基准测试结果的一个共同主题是,它们往往在更高的分辨率和/或具有许多复杂的现代着色器例程的游戏中表现更好。
这部分是由于高度的单位细分和资源共享所造成的。Chips and Cheese网站的微基准分析显示,尽管有大量的ALU,但该架构仍难以实现适当的利用。
再来看看XEC的其他方面,目前还不清楚0级指令缓存有多大,但AMD的是4路指令缓存(因为它服务于4个SIMD块),英特尔的必须是16路指令缓存,这增加了缓存系统的复杂性。
英特尔还选择为处理器提供专用的矩阵运算单元,每个向量引擎一个单元。有这么多单位意味着裸片的一个重要部分是专用于处理矩阵数学。
AMD使用DCU的SIMD单元来做到这一点,而Nvidia每SM有四个相对较大的张量/矩阵单元,英特尔的方法似乎有点过分,因为他们有一个单独的架构,称为Xe-HP,用于计算应用。
另一个奇怪的设计似乎是处理块中的加载/存储(LD/ST)单元。在我们的图中没有显示,它们管理来自线程的内存指令,在寄存器文件和L1缓存之间移动数据。Ada Lovelace和安培一样,每个SM分区有四个,总共有16个。RDNA 3也和它的前身一样,每个CU都有专门的LD/ST电路作为纹理单元的一部分。
英特尔的Xe-HPG演示显示,每个XEC只有一个LD/ST,但实际上,它可能由内部更多的独立单元组成。然而,在OneAPI的优化指南中,有一个图表表明LD/ST每次循环一个注册文件。如果是这种情况,那么Alchemist将始终努力实现最大的缓存带宽效率,因为不是所有文件都在同一时间被服务。
英伟达 Ada Lovelace
最后一个需要关注的处理块是英伟达的流媒体多处理器(SM)——DCU/XEC的GeForce版本。这个结构与2018年的图灵架构相比并没有太大的变化。事实上,它和安培几乎一模一样。
一些单元已经被调整以提高它们的性能或功能集,但在大多数情况下,没有太多的新东西可以谈论。实际上,可能会有,但众所周知,英伟达不愿透露太多其芯片的内部操作和规格。英特尔提供了更多的细节,但这些信息通常隐藏在其他文档中。
但是为了总结结构,SM被分成四个分区。每个处理器都有自己的L0指令缓存、线程调度器和调度单元,以及与SIMD32处理器配对的64 kB寄存器文件部分。
就像在AMD的RDNA 3中一样,SM支持双发出指令,每个分区可以并发处理两个线程,一个使用FP32指令,另一个使用FP32或INT32指令。
Nvidia 的 H100 GPU 使用他们的 Hopper 架构
英伟达的张量内核现在是在他们的第四次修订,但这一次,唯一值得注意的变化是包括FP8变压器引擎从他们的Hopper芯片-原始吞吐量数据保持不变。
加入低精度浮点格式意味着GPU应该更适合AI训练模型。张量核心仍然提供了安培的稀疏特性,这可以提供高达两倍的吞吐量。
另一个改进在于光流加速器(OFA)引擎(没有在我们的图表中显示)。该电路产生光流场,用作DLSS算法的一部分。在安培中,OFA的性能是OFA的两倍,额外的吞吐量被用于他们的最新版本的临时抗锯齿升频器DLSS 3。
DLSS 3已经面临了相当多的批评,主要围绕两个方面:DLSS生成的帧不是“真实的”,该过程增加了额外的渲染链延迟。第一种方法并非完全无效,因为该系统首先让GPU渲染两个连续帧,将它们存储在内存中,然后使用神经网络算法确定中间帧的样子。
然后,当前链返回到第一个呈现的帧并显示该帧,然后是dss帧,然后是呈现的第二个帧。因为游戏引擎还没有为中间帧循环,所以屏幕会在没有任何潜在输入的情况下刷新。因为两个连续的帧需要被暂停,而不是被呈现,任何已经为那些帧轮询的输入也将被暂停。
DLSS 3 是否会变得流行或司空见惯还有待观察。
虽然Ada的SM和安培非常相似,但RT核心有明显的变化,我们将很快解决这些问题。现在,让我们总结一下AMD、Intel和Nvidia的GPU重复结构的计算能力。
处理块比较
对于标准数据格式,我们可以通过查看每个时钟周期的操作数量来比较SM、XEC和DCU功能。请注意,这些都是峰值数据,在现实中不一定能实现。
英伟达的数据在安培之后并没有改变,而RDNA 3的数据在某些领域翻了一番。尽管《炼金术士》是在另一个层面上的矩阵操作,但这些都是峰值理论值的事实应该再次强调。
考虑到英特尔的图形部门严重依赖于数据中心和计算,就像英伟达一样,看到架构将如此多的die空间用于矩阵运算就不足为奇了。缺少FP64功能并不是问题,因为这种数据格式在游戏中并没有真正使用过,并且功能呈现在他们的Xe-HP架构中。
在矩阵/张量运算方面,Ada Lovelace和Alchemist理论上比RDNA 3更强,但由于我们关注的是主要用于游戏工作负载的GPU,这些专用单元主要只是为涉及DLSS和XeSS的算法提供加速——这些算法使用卷积自编码器神经网络(CAENN),扫描图像寻找工件并纠正它们。
AMD的时间上标器(FidelityFX超分辨率,FSR)不使用CAENN,因为它主要基于Lanczos重采样方法,然后通过DCUs处理一些图像校正例程。然而,在RDNA 3发布中,简要介绍了下一个版本的FSR,引用了一个名为流体运动帧的新功能。由于FSR 2.0的性能提升高达两倍,普遍的共识是,这可能涉及到帧生成,就像DLSS 3一样,但这是否涉及到任何矩阵操作尚不清楚。
现在每个人都可以进行光线追踪
随着他们的Arc显卡系列的推出,使用了Alchemist架构,英特尔加入了AMD和英伟达的行列,为图形中使用射线追踪的各种算法提供专用加速器。Ada和RNDA 3都包含了显著更新的RT单元,所以有必要看看有什么新的和不同的。
从AMD开始,他们的射线加速器最大的变化是增加硬件来改善边界卷层次结构(BVH)的遍历。在3D世界中,这些数据结构用于加速确定光线击中的表面。
在RDNA 2中,所有这些工作都是通过计算单元处理的,并且在一定程度上仍然如此。但是,对于DXR(微软的射线跟踪API),有对射线标志管理的硬件支持。
使用这些可以大大减少BVH需要被遍历的次数,减少缓存带宽和计算单元的总体负载。从本质上说,AMD一直专注于提高他们在之前架构中引入的系统的整体效率。
此外,硬件已经更新,以改进框排序(使遍历更快)和剔除算法(跳过测试空盒)。加上缓存系统的改进,AMD表示,在相同的时钟速度下,与RDNA 2相比,射线跟踪性能提高了80%。
然而,在使用光线追踪的游戏中,此类改进并没有转化为每秒增加 80% 的帧数——这些情况下的性能受许多因素影响,RT 单元的功能只是其中之一。
由于英特尔是光线追踪游戏的新手,因此没有任何改进。相反,我们只是被告知他们的 RT 单元处理射线和三角形之间的 BVH 遍历和相交计算。这使得它们更类似于 Nvidia 的系统而不是 AMD 的系统,但是关于它们的可用信息并不多。
但我们知道每个 RT 单元都有一个未指定大小的缓存用于存储 BVH 数据和一个单独的单元用于分析和排序光线着色器线程,以提高 SIMD 利用率。
每个 XEC 与一个 RT 单元配对,每个渲染切片总共有四个。在游戏中启用光线追踪的 A770 的一些早期测试表明,无论英特尔采用何种结构,Alchemist 在光线追踪方面的整体能力至少与 Ampere 芯片一样好,并且比 RDNA 2 型号好一点。
但让我们再次重申,光线追踪也对着色核心、缓存系统和内存带宽施加了沉重压力,因此无法从此类基准测试中提取 RT 单元性能。
对于 Ada Lovelace 架构,Nvidia 进行了许多更改,与 Ampere 相比,Nvidia 对性能提升提出了相当大的要求。用于光线-三角形相交计算的加速器据称具有两倍的吞吐量,并且非不透明表面的 BVH 遍历现在据说速度是原来的两倍。后者对于使用带有 alpha 通道(透明度)的纹理的对象很重要,例如,树上的叶子。
当射线击中这种表面的全透明部分时,不应该产生撞击的结果——射线应该直接穿过。然而,在当前的游戏中,为了精确地确定这一点,需要处理多个其他着色器。英伟达的新不透明度微地图引擎将这些表面分解成更多的三角形,然后确定到底发生了什么,减少了所需的光线着色器的数量。
Ada的射线跟踪能力的两个进一步增加是BVHs的构建时间和内存占用的减少(分别声称快了10倍和小了20倍),以及为射线着色器重新排序线程的结构,提供了更好的效率。然而,前者不需要开发者改变软件,后者目前只能通过Nvidia的API访问,所以它对目前的DirectX 12游戏没有好处。
当我们测试 GeForce RTX 4090 的光线追踪性能时,启用光线追踪后帧率的平均下降略低于 45%。使用 Ampere 驱动的 GeForce RTX 3090 Ti,下降了 56%。然而,这种改进不能完全归因于 RT 内核的改进,因为 4090 的着色吞吐量和缓存比以前的型号大得多。
我们还没有看到 RDNA 3 的光线追踪改进有何不同,但值得注意的是,没有一家 GPU 制造商期望 RT 被孤立地使用——即仍然需要使用升级来实现高帧费率。
光线追踪的粉丝可能会有些失望,因为新一轮的图形处理器在这一领域没有取得任何重大进展,但自 2018 年 Nvidia 的 Turing 架构首次出现以来已经取得了很大进展.
内存:推动数据高速公路
GPU 处理数据的方式与其他芯片不同,让 ALU 接收数据对其性能至关重要。在 PC 图形处理器的早期,内部几乎没有缓存,全局内存(整个芯片使用的 RAM)是非常慢的 DRAM。即使就在 10 年前,情况也没有那么好。
因此,让我们深入了解当前的情况,从 AMD 在其新架构中的内存层次结构开始。自第一次迭代以来,RDNA 使用了复杂的多级内存层次结构。最大的变化发生在去年,当时在 GPU 中添加了大量的 L3 缓存,在某些型号中高达 128MB。
第三轮的情况仍然如此,但有一些细微的变化。
寄存器文件现在增大了50%(为了应对alu的增加,它们必须这样做),前三层缓存现在都变大了。L0和L1的大小增加了一倍,L2缓存高达2MB,在Navi 31中总共为6MB。
L3 缓存实际上已缩小到 96MB,但这是有充分理由的——它不再位于 GPU 芯片中。我们将在本文的后面部分详细讨论这个方面。
由于不同高速缓存级别之间的总线宽度更宽,整体内部带宽也更高。逐个时钟,L0 和 L1 之间多出 50%,L1 和 L2 之间增加相同。但最大的改进是在 L2 和外部 L3 之间——它现在总共宽了 2.25 倍。
Radeon RX 6900 XT中使用的 Navi 21的 L2 到 L3 总峰值带宽为 2.3 TB/s;由于使用了 AMD 的 Infinity 扇出链接, Radeon RX 7900 XT中的 Navi 31 将其提高到 5.3 TB/s。
将 L3 缓存与主芯片分开确实会增加延迟,但这被 Infinity Fabric 系统使用更高时钟所抵消——总体而言,与 RDNA 2 相比,L3 延迟时间减少了 10%。
RDNA 3 仍然设计为使用 GDDR6,而不是速度稍快的 GDDR6X,但高端的 Navi 31 芯片多了两个内存控制器,将全局内存总线宽度增加到 384 位。
AMD 的缓存系统肯定比英特尔和 Nvidia 的更复杂,但Chips and Cheese对 RDNA 2 的微基准测试表明它是一个非常高效的系统。延迟很低,它提供了 CU 达到高利用率所需的后台支持,因此我们可以期待 RDNA 3 中使用的系统也是如此。
英特尔的内存层次结构稍微简单一些,主要是一个两层系统(忽略较小的缓存,例如常量缓存)。没有 L0 数据缓存,只有 192kB 的 L1 数据和共享内存。
与 Nvidia 一样,此缓存可以动态分配,其中最多 128kB 可用作共享内存。此外,还有一个单独的 64kB 纹理缓存(图中未显示)。
对于设计用于中端市场显卡的芯片(A770 中使用的 DG2-512 ) ,L2 缓存非常大,总共有 16MB。数据宽度也适当大,每个时钟总共 2048 字节,位于 L1 和 L2 之间。该缓存包含八个分区,每个分区服务于一个 32 位 GDDR6 内存控制器。
然而,分析表明,尽管有丰富的缓存和可用带宽,但 Alchemist 架构并不是特别擅长充分利用它们,它需要具有高线程数的工作负载来掩盖其相对较差的延迟。
Nvidia 保留了与 Ampere 相同的内存结构,每个 SM 都有 128kB 的缓存,充当 L1 数据存储、共享内存和纹理缓存。可用于不同角色的数量是动态分配的。目前还没有关于 L1 带宽的任何变化的消息,但在 Ampere 中,它是每个 SM 每个时钟 128 字节。Nvidia 从未明确说明这个数字是累积的、结合读写的,还是仅针对一个方向的。
如果 Ada 至少与 Ampere 相同,那么所有 SM 的总 L1 带宽是每个时钟 18 kB 的巨大带宽——远远大于 RDNA 2 和 Alchemist。
但必须再次强调,这些芯片不能直接比较,因为英特尔的定价和营销是作为中档产品进行的,而 AMD明确表示 Navi 31 从未设计用于与 Nvidia 的 AD102 竞争。它的竞争对手是 AD103,它比 AD102 小得多。
内存层次结构的最大变化是二级缓存在一个完整的 AD102 裸片中膨胀到 96MB——是其前身 GA102 的 16 倍。与英特尔的系统一样,L2 被分区并与 32 位 GDDR6X 内存控制器配对,以实现高达 384 位的 DRAM 总线宽度。
AD102 的 L2 缓存大小在数据中心 GPU 中名列前茅
较大的缓存大小通常比较小的缓存具有更长的延迟,但由于时钟速度的提高和总线的一些改进,Ada Lovelace 显示出比 Ampere更好的缓存性能。
如果我们比较这三个系统,英特尔和 Nvidia 对 L1 缓存采用相同的方法——它可以用作只读数据缓存或计算共享内存。在后者的情况下,需要通过软件明确指示 GPU 以这种格式使用它,并且数据仅在使用它的线程处于活动状态时保留。这增加了系统的复杂性,但它对计算性能产生了有用的提升。
在 RDNA 3 中,“L1”数据缓存和共享内存被分成两个 32kB L0 向量缓存和一个 128kB 本地数据共享。AMD 所说的 L1 缓存实际上是一组四个 DCU 和 L2 缓存之间的共享垫脚石,用于只读数据。
虽然缓存带宽都没有 Nvidia 的那么高,但多层方法有助于解决这个问题,尤其是当 DCU 未得到充分利用时。
高端卡有很多 DRAM,但速度仍然相对较慢
巨大的处理器级缓存系统通常不是 GPU 的最佳选择,这就是为什么我们在以前的架构中没有看到超过 4 或 6MB,但 AMD、英特尔和 Nvidia 在 GPU 中都有大量缓存的原因最后一层是为了应对 DRAM 速度相对缺乏增长的情况。
向 GPU 添加大量内存控制器可以提供充足的带宽,但代价是芯片尺寸和制造开销增加,而且 HBM3 等替代方案的使用成本要高得多。
我们还没有看到 AMD 的系统最终表现如何,但他们在 RDNA 2 中的四层方法与 Ampere 相比表现良好,并且比英特尔的好得多。然而,随着 Ada 封装更多的 L2,竞争不再那么简单。
芯片封装和工艺节点:构建发电厂的不同方式
AMD、英特尔和英伟达都有一个共同点——它们都使用台积电来制造它们的 GPU。
AMD在Navi 31中的GCD和MCD使用了两种不同的节点,前者使用N5节点制作,后者使用N6(N7的增强版)制作。英特尔还在其所有 Alchemist 芯片中使用 N6。对于 Ampere,Nvidia 使用三星的旧 8nm 工艺,但对于 Ada,他们又切换回台积电及其 N4 工艺,这是 N5 的变体。
N4 拥有所有节点中最高的晶体管密度和最佳的性能功率比,但当 AMD 推出 RDNA 3 时,他们强调只有逻辑电路的密度有显着增加。
SRAM(用于高速缓存)和模拟系统(用于内存、系统和其他信号电路)的缩小幅度相对较小。再加上新工艺节点的每片晶圆价格上涨,AMD 决定使用稍旧且更便宜的 N6 来制造 MCD,因为这些小芯片主要是 SRAM 和 I/O。
就裸片尺寸而言,GCD 比 Navi 21 小 42%,为 300 mm2。每个 MCD 仅为 37mm2,因此 Navi 31 的组合裸片面积与其前身大致相同。AMD 只公布了所有小芯片的合并晶体管数量,但这款新 GPU 的数量为 580 亿,是他们有史以来“最大的”消费类图形处理器。
为了将每个 MCD 连接到 GCD,AMD 使用了他们所谓的高性能扇出——密集的走线,占用的空间非常小。Infinity Links——AMD 专有的互连和信号系统——运行速度高达 9.2Gb/s,每个 MCD 的链路宽度为 384 位,MCD 到 GCD 的带宽达到 883GB/s(双向)。
对于单个 MCD,这相当于高端显卡的全局内存带宽。Navi 31 中有全部六个,L2 到 MCD 的总带宽达到 5.3TB/s。
与传统的单片芯片相比,使用复杂的扇出意味着裸片封装的成本会更高,但该过程是可扩展的——不同的 SKU 可以使用相同的 GCD,但使用不同数量的 MCD。较小尺寸的单个小芯片芯片应该会提高晶圆良率,但没有迹象表明 AMD 是否在 MCD 的设计中加入了任何冗余。
如果没有,则意味着任何小芯片在 SRAM 中存在缺陷,这会阻止内存阵列的该部分被使用,那么它们将不得不为低端型号 SKU 装箱或根本不使用。
到目前为止,AMD 只发布了两款 RDNA 3 显卡(Radeon RX 7900 XT 和 XTX),但在这两种型号中,MCD 各有 16MB 缓存。如果下一轮 Radeon 卡采用 256 位内存总线和 64MB 的 L3 缓存,那么它们也将需要使用“完美”的 16MB 芯片。
然而,由于它们的面积非常小,单个 300 毫米晶圆可能会产生超过 1500 个 MCD。即使其中的 50% 必须报废,这仍然足以提供 125 个 Navi 31 封装。
我们还需要一些时间才能确定 AMD 设计的实际成本效益如何,但该公司现在和将来都完全致力于使用这种方法,尽管仅限于更大的 GPU。Budget RNDA 3 型号的缓存数量要少得多,将继续使用单片制造方法,因为以这种方式制造它们更具成本效益。
英特尔的 ACM-G10 处理器为 406mm2,晶体管总数为 217 亿个,在组件数量和芯片面积方面介于 AMD 的 Navi 21 和 Nvidia 的 GA104 之间。
这实际上使它成为一个相当大的处理器,这就是为什么英特尔选择 GPU 的市场领域似乎有些奇怪。Arc A770显卡使用完整的 ACM-G10 芯片,与 Nvidia 的 GeForce RTX 3060等同类产品竞争,后者使用的芯片尺寸和晶体管数量只有英特尔的一半。
那么为什么这么大呢?有两个可能的原因:16MB 的 L2 缓存和每个 XEC 中的大量矩阵单元。拥有前者的决定是合乎逻辑的,因为它减轻了全球内存带宽的压力,但后者很容易被认为对于它所销售的部门来说过多。RTX 3060 有 112 个Tensor 核心,而 A770 有 512 个 XMX 单元。
英特尔的另一个奇怪选择是使用 TSMC N6 来制造 Alchemist 裸片,而不是他们自己的设施。关于此事的官方声明列举了成本、晶圆厂产能和芯片工作频率等因素。
这表明英特尔的同等生产设施(使用更名后的英特尔 7 节点)无法满足预期需求,其 Alder 和 Raptor Lake CPU 占据了大部分产能。
他们会将 CPU 输出的相对下降,以及这将如何影响收入,与他们使用 Alchemist 获得的收益进行比较。简而言之,最好是付钱给台积电来制造它的新 GPU。
在 AMD 利用其多芯片专业知识并开发新技术来制造大型 RDNA 3 GPU 的地方,Nvidia 坚持为 Ada 系列产品采用单片设计。这家 GPU 公司在制造超大型处理器方面拥有丰富的经验,尽管 608mm2的 AD102 并不是其发布的物理尺寸最大的芯片(该荣誉归于 826mm2的GA100 )。
然而,Nvidia 拥有 763 亿个晶体管,其组件数量远远领先于迄今为止所见的任何消费级 GPU。
相比之下,用于GeForce RTX 3080及以上的GA102似乎很轻,只有268亿。SM数量增长了71%,L2缓存数量增长了1500%。
像这样大而复杂的芯片总是难以实现完美的晶圆良率,这就是为什么以前的高端 Nvidia GPU 催生了大量的 SKU。通常,随着新架构的发布,他们的专业显卡系列(例如 A 系列、Tesla 等)会首先发布。
当安培发布时,GA102在发布时出现在两种消费级卡中,并最终在14种不同的产品中找到了归属。到目前为止,英伟达只在两款产品中使用了AD102: GeForce RTX 4090和RTX 6000。不过,后者自去年9月上市以来一直无法购买。
RTX 4090 使用的裸片朝向合并过程的最佳端,禁用了 16 个 SM 和 24MB 的二级缓存,而 RTX 6000 仅禁用了两个 SM。这让人不禁要问:其余的die在哪里?
但由于没有其他产品使用 AD102,我们只能假设 Nvidia 正在储备它们,尽管其他产品的用途尚不清楚。
该架构推出两个月后,仍然只有两张卡在使用它
GeForce RTX 4080使用AD103,它有 379mm2和 459 亿个晶体管,完全不像它的大哥——更小的裸片(80 个 SM,64MB L2 缓存)应该会带来更好的良率,但同样只有一个使用它的产品。
他们还发布了另一款 RTX 4080,一款使用更小的 AD104,但由于受到的批评太多,他们在发布时取消了。预计该 GPU 现在将用于启动RTX 4070 系列。
Nvidia 显然有大量基于 Ada 架构的 GPU,但似乎也不太愿意出货。原因之一可能是他们正在等待 Ampere 供电的显卡清空货架。另一个是它主导着一般用户和工作站市场,并且可能觉得它现在不需要提供任何其他东西。
但鉴于 AD102 和 103 提供的原始计算能力的显着提高,Ada 专业卡如此之少有点令人费解——该行业总是渴望获得更多的处理能力。
超级明星 DJ:显示和媒体引擎
当谈到 GPU 的媒体和显示引擎时,与 DirectX 12 功能或晶体管数量等方面相比,他们通常会采用后台营销方法。但随着游戏流媒体行业产生数十亿美元的收入,我们开始看到更多的努力来开发和推广新的显示功能。
对于 RDNA 3,AMD 更新了许多组件,最值得注意的是对 DisplayPort 2.1(以及 HDMI 2.1a)的支持。鉴于监督 DisplayPort 规范的组织 VESA 在几个月前才发布 2.1 版本,GPU 供应商如此迅速地采用该系统是一个不寻常的举动。
新显示引擎支持的最快 DP 传输模式是 UHBR13.5,最高 4 通道传输速率可达 54 Gbps。这对于 4K 分辨率、144Hz 刷新率、没有任何压缩、标准时序来说已经足够了。
使用 DSC(显示流压缩),DP2.1 连接允许高达 4K@480Hz 或 8K@165Hz——与 RDNA 2 中使用的 DP1.4a 相比有了显着改进。
英特尔的 Alchemist 架构具有带 DP 2.0(UHBR10,40 Gbps)和 HDMI 2.1 输出的显示引擎,但并非所有使用该芯片的 Arc 系列显卡都可以利用最大功能。
虽然 ACM-G10 并非针对高分辨率游戏,但使用最新的显示器连接规格意味着可以在没有任何压缩的情况下使用电竞显示器(例如 1080p、360Hz)。芯片可能无法在这类游戏中呈现如此高的帧率,但至少显示引擎可以。
随着刷新率的攀升,需要更快的显示连接
AMD 和英特尔对 DP 和 HDMI 中的快速传输模式的支持是您期望从全新架构中获得的那种东西,因此 Nvidia 选择不与 Ada Lovelace 这样做有点不协调。
AD102 的所有晶体管(几乎与 Navi 31 和 ACM-G10 加在一起相同)仅具有带 DP1.4a 和 HDMI 2.1 输出的显示引擎。对于 DSC,前者对于 4K@144Hz 来说已经足够好了,但是当竞争对手在没有压缩的情况下支持它时,这显然是一个错失的机会。
GPU 中的媒体引擎负责视频流的编码和解码,所有三个供应商在其最新架构中都具有丰富的功能集。
在 RDNA 3 中,AMD 为 AV1 格式添加了完整的同步编码/解码(仅在之前的 RDNA 2 中解码)。关于新媒体引擎的信息不多,除了它可以同时处理两个 H.264/H.265 流,AV1 的最大速率为 8K@60Hz。AMD 还简要提到了“AI 增强型”视频解码,但没有提供更多细节。
英特尔的 ACM-G10 具有类似的功能范围,可用于 AV1、H.264 和 H.265 的编码/解码,但与 RDNA 3 一样,细节非常少。对 Arc 台式机显卡中第一批 Alchemist 芯片的一些早期测试表明,媒体引擎至少与 AMD 和 Nvidia 在其先前架构中提供的媒体引擎一样好。
Ada Lovelace 效仿 AV1 编码和解码,Nvidia 声称新系统的编码效率比 H.264 高 40%——表面上看,使用新格式时视频质量提高 40%。
高端 GeForce RTX 40 系列显卡将配备带有两个 NVENC 编码器的 GPU,让您可以选择以 60Hz 编码 8K HDR 或改进视频导出的并行化,每个编码器同时处理半帧。
有了更多关于系统的信息,就可以进行更好的比较,但是由于媒体引擎仍然被视为与渲染和计算引擎的不良关系,我们将不得不等到每个供应商都将其最新架构的卡上架,在我们进一步审查问题之前。
GPU 的下一步是什么?
台式机 GPU 市场上已经有 3 家供应商了,很明显,每家都有自己的图形处理器设计方法,尽管英特尔和 Nvidia 的思维方式相似。
对他们来说,Ada 和 Alchemist 有点像万事通,可用于各种游戏、科学、媒体和数据工作负载。ACM-G10 对矩阵和张量计算的高度重视以及不愿完全重新设计其 GPU 布局表明英特尔更倾向于科学和数据,而不是游戏,但考虑到这些领域的潜在增长,这是可以理解的。
对于最后三种架构,Nvidia 专注于改进已经很好的东西,并减少整体设计中的各种瓶颈,例如内部带宽和延迟。但是,虽然 Ada 是 Ampere 的自然改进,这是 Nvidia 多年来一直遵循的主题,但当您查看晶体管数量的绝对规模时,AD102 脱颖而出,成为一种进化怪异。
与 GA102 相比,差异非常显着,但这种巨大的飞跃引发了许多问题。第一个问题是,对于 Nvidia 来说,AD103 对于他们最高端的消费产品来说会是一个更好的选择,而不是 AD102 吗?
正如在 RTX 4080 中所使用的那样,AD103 的性能相对于 RTX 3090 有了可观的改进,并且像它的大哥一样,64MB 的二级缓存有助于抵消相对较窄的 256 位全局内存总线宽度。
379mm²,比GeForce RTX 3070中使用的GA104要小,因此比AD102制造的利润要高得多。它也拥有与GA102相同数量的短信,该芯片最终在15种不同的产品中找到了一席之地。
另一个值得一问的问题是,Nvidia 在架构和制造方面将何去何从?他们能否实现类似水平的扩展,同时仍然坚持使用单片芯片?
AMD 对 RDNA 3 的选择突出了竞争的潜在途径。通过将规模最差(在新工艺节点中)的裸片部分转移到单独的小芯片中,AMD 已经能够成功地继续在 RDNA 和 RDNA 2 之间实现的大型制造和设计飞跃。
虽然它不如 AD102 大,但 Navi 31 仍然有 580 亿个晶体管的硅——是 Navi 21 的两倍多,是原始 RDNA GPU Navi 10 的 5 倍多(尽管那不是旨在成为光环产品)。
但 AMD 和 Nvidia 的成就并不是孤立完成的。由于台积电和三星之间为成为半导体设备主要制造商的激烈竞争,所以 GPU 晶体管数量的大幅增加才有可能。
两者都致力于提高逻辑电路的晶体管密度,同时继续降低功耗,三星今年早些时候开始量产其 3nm 工艺。台积电一直在做同样的事情,并且对当前的节点改进和他们的下一个主要过程有明确的路线图。
目前尚不清楚英伟达是否会照抄AMD的设计手册,在Ada的后继产品中采用Chiplet的布局,但未来14 - 16个月可能是决定性的。如果RDNA 3被证明在财务上取得了成功,无论是从收入还是总出货量来看,那么英伟达很有可能会效仿。
然而,第一款使用 Ampere 架构的芯片是 GA100——一款数据中心 GPU,尺寸为 829mm2,具有 542 亿个晶体管。它由台积电制造,使用他们的 N7 节点(与 RDNA 和大部分 RDNA 2 系列相同)。使用 N4 来制造 AD102,使 Nvidia 能够设计出晶体管密度几乎是其前身两倍的 GPU。
GPU 仍然是台式 PC 中最卓越的工程技术之一!
那么,在下一个架构中使用 N2 是否可以实现这一点?有可能,但高速缓存的大幅增长(扩展性非常差)表明,即使台积电在其未来节点上取得了一些惊人的数字,控制 GPU 大小也将变得越来越困难。英特尔已经在使用小芯片,但仅限于其巨大的Ponte Vecchio数据中心 GPU。由47块不同的tile组成,有的是台积电的,有的是intel自己代工的,参数偏高。
例如,完整的双 GPU 配置拥有超过 1000 亿个晶体管,这让 AMD 的 Navi 31 看起来很苗条。当然,它不适用于任何类型的台式 PC,严格来说也不仅仅是“GPU”——这是一个数据中心处理器,非常强调矩阵和张量工作负载。
在转向“Xe Next”之前,其 Xe-HPG 架构的目标是至少再进行两次修订(Battlemage 和 Celestial),我们很可能会在英特尔消费类显卡中看到平铺技术的使用。
不过,就目前而言,我们将让 Ada 和 Alchemist 使用传统的单片芯片至少一两年,而 AMD 将 chiplet 系统混合用于中上端和高端卡,并为他们的单芯片预算 SKU。
不过,到本世纪末,我们可能会看到几乎所有类型的图形处理器,它们都是由一系列不同的 tile/chiplet 构建而成,所有这些都是使用各种工艺节点制造的。GPU 仍然是台式 PC 中最显着的工程壮举之一——晶体管数量的增长没有放缓的迹象,而今天普通显卡的计算能力在大约 10 年前只能梦想。
开启下一场三向架构之战!
标签: #什么是光流法hs算法的特点和应用