新闻中心

EEPW首页 > 智能计算 > 市场分析 > AMD RDNA4 GPU架构,亮相

AMD RDNA4 GPU架构,亮相

作者:chips and cheese 时间:2025-09-16 来源:半导体产业纵横 收藏

是 AMD 最新的以图形为核心的架构,并用于打造其 RX 9000 系列独立 GPU。AMD 指出,打造一款优秀的游戏 GPU 需要理解当前的工作负载,同时也要考虑到未来五年工作负载可能呈现的样子。因此,AMD 一直致力于提升在光栅化、计算和光线追踪各方面的效率。机器学习(包括在游戏中的应用)的重要性日益凸显,所以 AMD 的新 GPU 架构也兼顾了机器学习工作负载。

从 AMD 的角度看, 代表了在光线追踪和机器学习效率上的巨大飞跃,同时在光栅化方面也有所改进。改进的压缩技术有助于持续为图形架构供给数据。除了 GPU 核心的图形加速职责外, 还带来了增强的媒体和显示功能,使产品更加完善。


媒体引擎

媒体引擎为多种编解码器提供硬件加速的视频编码和解码功能。高端 RDNA4 型号(如 RX 9070 XT)配备双媒体引擎。RDNA4 的媒体引擎具有更快的解码速度,通过「竞速至空闲」(racing to idle) 策略有助于节省视频播放时的功耗。在视频编码方面,AMD 致力于提升 H.264、H.265 和 AV1 编码质量,尤其是在低延迟编码方面。

低延迟编码模式主要对流媒体传输有益,媒体引擎造成的延迟最终会转化为延迟的流。降低延迟可能会使质量优化更具挑战性。视频编解码器致力于编码帧间差异以节省存储空间。缓冲更多帧能为编码器提供更多机会来寻找帧间的相似内容,并允许其为复杂序列分配更多的码率预算。但缓冲帧会引入延迟。另一个挑战是一些流行的流媒体平台主要使用 H.264,这是一种比 AV1 效率更低的老式编解码器。更新的编解码器正在测试中,随着未来几十年的发展,情况可能会开始改变。但目前,由于 H.264 的广泛支持,它仍然很重要。

使用《上古卷轴 Online》的老游戏片段进行测试显示,在使用受延迟约束的 VBR 模式 (-rc vbr_latency) 和针对低延迟编码调优的编码器 (-usage lowlatency) 时,RDNA4 的媒体引擎展现出明显优势。Netflix 的 VMAF 视频质量指标在整个码率范围内都给 RDNA4 打了更高的分数。仔细检查的结果通常与 VMAF 指标一致。

RDNA4 在保留高对比度轮廓方面做得更好。差异在文本周围尤其明显,RDNA4 以更低的码率处理文本的效果优于其前代产品。在如此近距离的审视下,两者的结果都不算完美,示例中的文本都有模糊现象,并且精细细节被视频编码伪影所破坏。但值得记住的是,受延迟约束的 VBR 模式使用的 VBV 缓冲区最多为三帧,而更高延迟的模式可以使用覆盖多秒视频的 VBV 缓冲区大小。编码速度也略有提高,从 RDNA3.5 到 RDNA4,速度从约 190 FPS 跃升至约 200 FPS。


显示引擎

显示引擎从内存中获取屏幕帧数据,将其合成为最终图像,并驱动到显示输出。这是一项大多数人都认为理所当然的基本任务,但显示引擎也是执行各种图像增强功能的好地方。一个传统的例子是使用查找表(LUT)进行色彩校正。显示引擎的增强对用户软件是不可见的,并且通常在硬件中执行,功耗成本极低。在 RDNA4 上,AMD 增加了一个「Radeon 图像锐化」(Radeon Image Sharpening) 过滤器,让显示引擎能够锐化最终图像。使用显示引擎的专用硬件而非 GPU 的可编程着色器意味着锐化过滤器不会影响性能,并且可以以更高的能效来执行。而且,AMD 无需依赖游戏开发者来实现该效果。锐化甚至可应用于桌面,虽然我不确定为什么会有人需要这样做。

功耗是显示引擎的另一个重要优化领域。传统上,这更多是移动产品关注的问题,因为在低负载下最大化电池寿命是首要任务。但 RDNA4 以其更新的显示引擎瞄准了多显示器空闲功耗。AMD 的演示指出,他们利用了 FreeSync 显示器上的可变刷新率 (VRR) 功能。他们没有透露更多细节,但不难想象 AMD 可能采取的做法。高分辨率和高刷新率显示器意味着高像素速率,这反过来又驱动了对更高内存带宽的需求。动态降低刷新率可以让 RDNA4 的内存子系统进入低功耗状态,同时仍能满足刷新截止期限。


(图表描述了不同刷新率组合下的功耗和 GDDR6 数据速率。当内存总线能够空闲时,AMD 的监控软件(及其他软件)会读出极低的内存时钟,因此未列出这些读数。)

我有一块 RX 9070,通过 HDMI 连接到 Viotek GN24CW 1080P 显示器,以及一台支持最高 360 Hz 刷新率的 MSI MAG271QX 1440P 显示器。后者通过 DisplayPort 连接。即使在高刷新率设置下,RX 9070 也能将内存保持在空闲时钟。移动鼠标会导致显卡提高内存时钟并消耗更多功率,这暗示 RDNA4 在屏幕内容不变时会降低刷新率。此外,RDNA4 获得了一个中间 GDDR6 功耗状态,使其能够处理 1080P 60 Hz + 1440P 240 Hz 的组合,而无需达到最大内存时钟。在 RDNA2 上,情况更倾向于「全有或全无」。老款显卡更容易为了提高以处理高像素速率而提高内存时钟,并且即使屏幕内容不变,功耗也保持高位。

计算单元变更

RDNA4 的工作组处理器(WGP)保持了与之前 RDNA 世代相同的高级布局。然而,它获得了针对光线追踪的重大改进,例如改进的光线追踪单元和更宽的 BVH 节点、动态寄存器分配模式,以及一个不再受波(wave)间错误内存依赖关系影响的调度器。我在之前的文章中介绍过这些。除了这些改进,AMD 的演示还讨论了一些其他值得关注的细节。


标量浮点指令

AMD 长期以来一直使用标量单元来卸载波内恒定的操作。标量卸载通过避免冗余计算来节省功耗,并释放向量单元以提高计算受限序列的性能。RDNA4 的标量单元增加了一些浮点指令,扩展了标量卸载的机会。此功能在 RDNA3.5 上首次亮相,但 RDNA4 将其带到了独立 GPU 上。

虽然 AMD 的演示中没有讨论,但标量卸载可以带来额外的性能优势,因为标量指令有时比对应的向量指令延迟更低。RDNA4 上的大多数基本向量指令具有 5 周期延迟。标量单元上的 FP32 加法和乘法具有 4 周期延迟。不过,最大的延迟优势仍然来自卸载整数操作。

分离屏障

GPU 使用屏障(barrier)来同步线程并强制执行内存排序。例如,在旧的 AMD GPU 上,一条`s_barrier`指令会导致一个线程等待,直到其工作组中的所有对等线程也都到达该`s_barrier`指令。屏障会降低性能,因为任何碰巧更快到达屏障的线程都必须停滞,直到其对等线程赶上。


RDNA4 将屏障分离为独立的「信号」(signal) 和「等待」(wait) 操作。RDNA4 没有`s_barrier`,而是有`s_barrier_signal`和`s_barrier_wait`。一个线程一旦产生其他线程可能需要的数据,就可以「发出」屏障信号。然后它可以进行独立的工作,并且只有在需要使用其他线程产生的数据时才等待屏障。随后,`s_barrier_wait`将使该线程停滞,直到工作组中的所有其他线程都已发出屏障信号。

内存子系统

最大的 RDNA4 变体拥有 8 MB 的 L2 缓存,与之前的 RDNA 世代相比,L2 容量显著增加。RDNA3 和 RDNA2 的最大 L2 容量分别为 6 MB 和 4 MB。AMD 发现,像光线追踪这样的繁重工作负载受益于更大的 L2。光线追踪涉及在 BVH 遍历期间进行指针追逐,因此它对访问由较慢的 Infinity Cache(无限缓存)而非 L2 提供服务更为敏感也就不足为奇了。在 3DMark 的 DXR 功能测试的初始场景中(在 Explorer 模式下运行),RDNA4 大幅减少了必须从 L2 之外获取的数据量。

就绝对值而言,RDNA2 在将数据保留在 L2 方面仍然表现良好。但值得注意的是,在两个平台上,命中 InfinityCache 相比命中 L2 都会增加超过 50 ns 的额外延迟。这远超过 100 个周期,因为 RDNA2 和 RDNA4 的运行频率都高于 2 GHz。虽然 AMD 的图形战略已转向增大更快的缓存,但这仍然与 Nvidia 将更多资源投入 L2 缓存的策略形成对比。Blackwell 的 L2 缓存同时承担了 AMD 的 L2 和 Infinity Cache 的功能,并且其延迟介于这两个缓存级别之间。Nvidia 还有一个灵活的 L1/共享内存分配方案,根据工作负载请求的本地存储(共享内存)容量,可以在 L2 前面提供更多的低延迟缓存容量。

中层 L1 缓存是之前 RDNA 世代的常见配置。它在 RDNA4 以及 AMD 的演示中明显缺失。一种可能性是 L1 缓存命中率不够高,不足以证明增加额外缓存层复杂性的合理性。也许 AMD 认为其芯片面积和晶体管预算更好地用于增加 L2 容量。为了支持这一理论,RDNA1 上的 L1 命中率通常低于 50%。同时,RDNA 系列一直享有高带宽和低延迟的 L2。为了减少 L2 未命中而给 L2 施加更大压力可能是一个诱人的权衡。另一种可能性是 AMD 在 L1 缓存方面遇到了验证问题,并决定在这一代跳过它。当然,无法验证这两种可能性,但我认为前者的理由更合理。

除了调整缓存层次结构,RDNA4 还带来了对透明压缩(transparent compression)的改进。AMD 强调他们在整个 SoC 中使用压缩技术,包括在显示引擎和媒体引擎等节点。压缩数据可以存储在缓存中,并在写回内存之前解压缩。压缩减少了数据传输,从而降低了带宽需求并提高了能效。

透明压缩并非新功能。它作为 GPU 工具箱中减少内存带宽使用的工具之一已有很长历史,很难找到没有任何压缩功能的现代 GPU。即使在显示引擎等其他模块中的压缩也有先例。例如,英特尔的显示引擎使用帧缓冲区压缩(FBC),它可以写入帧数据的压缩副本,并持续获取该压缩副本来降低数据传输功耗,只要数据不发生变化。之前的 RDNA 世代也具备压缩功能,AMD 的文档总结了一些压缩目标。虽然 AMD 没有讨论压缩效率,但我尝试在 RDNA1 和 RDNA4 上使用 RGP(Radeon GPU Profiler)捕获相似的帧,以查看每帧内存访问是否存在巨大差异。结果并不完全符合我的预期,但我还是会将它们放在这里,并讨论评估压缩效能为何具有挑战性。


第一个挑战是两种架构都能从 L0 或 L1 满足大多数内存请求。AMD 关于 RDNA1 的幻灯片表明 L0 和 L1 只保存解压缩后的数据,至少对于增量颜色压缩(DCC)是如此。压缩确实适用于 L2。对于 RDNA4,AMD 的幻灯片表明它也适用于 Infinity Cache。然而,由于这些 RDNA 世代之间存在巨大的缓存层次结构差异,专注于 L2 的数据传输是行不通的。

(图示表明压缩/解压缩发生在 L2 之前)

DCC(增量颜色压缩)并非唯一的压缩形式。但这张幻灯片展示了压缩/解压缩发生在 L2 前方的一个例子。

另一个问题是,很容易想象一种不改变所涉及缓存请求数量的压缩方案。例如,数据可能被压缩到只占用缓存行的一部分。一个请求只导致缓存行的子集被读出,然后由解压缩模块扩展为完整的 128B。较早的 RDNA1 幻灯片对此表述模糊,指出 DCC 以 256B 粒度(两个缓存行)操作,但没有提供更多细节。

无论如何,压缩可能是 RDNA4 在仅配备 256 位 GDDR6 显存设置的情况下,能够使用比前代更小的 Infinity Cache 却实现更好性能的一个因素。

SoC 功能

AMD 概述了 RDNA4 中的 RAS(可靠性、可用性和可服务性)功能。现代芯片使用奇偶校验和 ECC(纠错码)来检测和纠正错误,显然 RDNA4 也是如此。不可恢复的错误通过驱动程序干预来处理,「重新初始化 SoC 的相关部分,从而防止平台关闭」。对这种说法有两种解读方式。一种是 GPU 可以被重新初始化以从硬件错误中恢复,这显然会影响任何依赖 GPU 加速的软件。另一种是 GPU 的某些部分可以在 GPU 继续处理工作的同时被重新初始化。我认为前者更可能,尽管我也能想象后者在有限形式下是可能的。例如,如果从 GDDR6 读取数据时发生不可恢复的错误,假设该数据在系统内存中有备份,则理论上可以修复。驱动程序可以将已知良好的数据从主机传输过来以替换损坏的副本。但是,涉及已修改数据的错误将难以恢复,因为系统中其他地方可能没有最新的副本。

在安全方面,微处理器拥有通往「关键模块」的私有总线和受保护的寄存器访问机制。这里的安全功能针对 HDCP 和其他 DRM 功能,我个人觉得这并不特别有趣。但幻灯片上显示的术语很有趣,因为 MP0 和 MP1 在 AMD 的 CPU 端文档中也有涉及。在 CPU 端,MP0(微处理器 0)处理一些安全加密虚拟化(SEV)功能,有时也称为平台安全处理器(PSP)。CPU 上的 MP1 称为系统管理单元(SMU),负责电源控制功能。奇怪的是,AMD 的幻灯片在 RDNA4 上分别标注了 MP1 和 SMU。当然,MP0/MP1 在 GPU 上可能具有完全不同的功能。但共同的术语提高了 CPU 和 GPU SoC 设计之间存在大量共享工作的可能性。RAS 也是非常传统的 CPU 功能,尽管随着 GPU 计算的兴起,GPU 也逐渐具备了 RAS 功能。

Infinity Fabric

CPU 和 GPU 方面共享努力的最明显例子之一是 Infinity Fabric 进入图形设计。这始于多年前的 Vega,尽管当时使用 Infinity Fabric 更像是一个实现细节。但多年后,Infinity Fabric 组件提供了一种优雅的方式来实现大型末级缓存,或具有巨型 iGPU(如 MI300A)的多插槽一致性系统。

(来自 Hot Chips 29 的幻灯片,涉及 AMD 旧款 Vega GPU 中使用的 Infinity Fabric)

RDNA4 上的 Infinity Fabric 内存端子系统由 16 个 CS(一致性站)模块组成,每个模块与一个统一内存控制器(UMC)配对。一致性站接收来自图形 L2 和其他客户端的请求。它们通过从 UMC 获取数据,或者如果另一个模块拥有所请求缓存行的更新副本则发送探测(probe),来确保一致性内存访问。CS 是实现内存端缓存的逻辑位置,在 RDNA4 中,每个 CS 实例拥有 4 MB 缓存。

为了节省功耗,Infinity Fabric 支持 DVFS(动态电压和频率缩放),时钟频率在 1.5 至 2.5 GHz 之间。Infinity Fabric 的带宽为每时钟周期 1024 位,这表明 Infinity Cache 可以提供 2.5 TB/s 的理论带宽。这与 Nemes 基于 Vulkan 的 GPU 缓存和内存带宽微基准测试的结果大致吻合。

AMD 还概述了其禁用各种 SoC 组件以筛选晶圆(harvest dies)并创建不同 SKU 的能力。着色器引擎(SE)、工作组处理器(WGP)和内存控制器通道都可以被禁用。AMD 和其他制造商过去曾使用过类似的筛选能力。我不确定这里有什么新内容。很可能,AMD 希望重新强调他们的筛选选项。

最后,AMD 提到他们为 RDNA4 选择了单片(monolithic)设计,因为这对于其规模的图形引擎来说是合理的。他们考虑了性能目标、封装组装和周转时间以及成本。在评估这些因素后,他们认为单片设计是正确的选择。这并不令人惊讶。毕竟,AMD 在图形引擎较小的低端 RDNA3 产品上使用了单片设计,仅在最顶级的 SKU 上使用了小芯片(chiplet)设计。这反而提醒我们,没有放之四海而皆准的解决方案。是单片还是基于小芯片的设计更合理,很大程度上取决于设计目标。


结语

RDNA4 带来了许多令人兴奋的改进,同时放弃了任何试图攻克顶级性能领域的尝试。与其追求极致性能,RDNA4 看起来更侧重于优化以提高相对于前几代的效率。尽管 RX 9070 的功耗预算更低、内存带宽更少、末级缓存更小,但其在光栅化工作负载中提供了与 RX 7900 XT 相似的性能。Techspot 的数据也显示 RX 9070 在光线追踪工作负载中领先,这与 AMD 提升光线追踪性能的目标一致。

(来自 RDNA4 发布演示的幻灯片,非 Hot Chips 2025)

AMD 通过压缩技术、更好的光线追踪结构和更大的 L2 缓存实现了这种效率。因此,RDNA4 能够将其性能封装在相对较小的 356.5 mm²芯片中,并使用适度的 256 位 GDDR6 显存配置。显示和媒体引擎的改进也备受欢迎。多显示器空闲功耗感觉是独立 GPU 的一个被忽视的领域,尽管我知道许多人使用多显示器进行生产力工作。在这些设置中降低空闲功耗非常值得赞赏。在媒体引擎方面,AMD 的视频编码能力常常落后于竞争对手。RDNA4 的进步至少防止了 AMD 像以前那样落后太多。



关键词: RDNA4

评论


技术专区

关闭