公众号记得加星标⭐️,第一时间看推送不会错过。
来源 : 内容来自chipsandcheese,谢谢 。
RDNA4 是 AMD 最新的图形架构,并补充了其 RX 9000 系列独立 GPU。AMD 指出,打造一款优秀的游戏 GPU 不仅需要了解当前的工作负载,还需要考虑未来五年的工作负载情况。因此,AMD 一直在努力提高光栅化、计算和光线追踪的效率。机器学习在游戏领域等重要领域日益重要,因此 AMD 的新 GPU 架构也适用于机器学习工作负载。
![]()
从 AMD 的角度来看,RDNA4 代表着光线追踪和机器学习方面的巨大效率飞跃,同时在光栅化方面也得到了改进。改进的压缩功能有助于保持图形架构的正常运行。除了 GPU 的核心图形加速功能外,RDNA4 还带来了改进的媒体和显示功能,使整个系统更加完善。
Media Engine
媒体引擎为各种编解码器提供硬件加速的视频编码和解码。高端 RDNA4 部件(例如 RX 9070XT)配备两个媒体引擎。RDNA4 的媒体引擎具有更快的解码速度,通过加速到空闲模式,有助于在视频播放期间节省电量。对于视频编码,AMD 致力于提高 H.265、H.265 和 AV1 的质量,尤其是在低延迟编码方面。
![]()
低延迟编码器模式对流媒体最为有利,因为媒体引擎造成的延迟最终会导致流媒体延迟。降低延迟会使质量优化更具挑战性。视频编解码器努力对帧之间的差异进行编码以节省存储空间。缓冲更多帧使编码器有更多机会跨帧查找相似内容,并让其为困难的序列分配更多比特率预算。但缓冲帧会带来延迟。另一个挑战是一些流行的流媒体平台主要使用 H.264 ,这是一种效率低于 AV1 的较旧编解码器。较新的编解码器正在测试中,因此随着未来几十年的过去,情况可能会开始发生变化。但就目前而言,H.264 因其广泛的支持而仍然很重要。
![]()
使用《上古卷轴OL》的一段旧游戏片段进行测试,结果表明,在使用延迟受限的VBR模式和针对低延迟编码进行调优的编码器(-usage lowlatency -rc vbr_latency)进行测试时,RDNA4的媒体引擎具有明显优势。Netflix的VMAF视频质量指标在整个比特率范围内都为RDNA4提供了更高的分数。仔细观察后,结果总体上与VMAF指标一致。
![]()
RDNA4 在保留高对比度轮廓方面做得更好。差异在文本周围尤其明显,RDNA4 在较低比特率下处理文本的效果比其前代产品更好。近距离观察,两个结果看起来都不太好,两个示例上的文本都模糊不清,视频编码伪影中的细节被压缩。但值得记住的是,延迟受限的 VBR 模式使用最多三帧的 VBV 缓冲区,而更高延迟模式可以使用覆盖数秒视频的 VBV 缓冲区大小。编码速度也略有提升,从 RDNA3.5 到 RDNA4 的约 190 FPS 跃升至约 200 FPS。
Display Engine
显示引擎从内存中获取屏幕上的帧数据,将其合成为最终图像,然后将其驱动到显示输出。这是大多数人认为理所当然的基本任务,但显示引擎也是执行各种图像增强功能的理想场所。一个传统示例是使用查找表来应用色彩校正。显示引擎的增强功能对用户软件不可见,并且通常由功耗最低的硬件执行。在 RDNA4 上,AMD 添加了“Radeon 图像锐化”滤镜,让显示引擎锐化最终图像。在显示引擎上使用专用硬件而不是 GPU 的可编程着色器意味着锐化滤镜不会影响性能,并且可以以更高的能效执行。而且,AMD 不需要依赖游戏开发者来实现这种效果。锐化甚至可以应用于桌面,尽管我不确定为什么有人会想要这样做。
功耗是显示引擎另一个重要的优化领域。传统上,这更受移动产品的关注,因为在低负载下最大限度地延长电池寿命是首要任务。但 RDNA4 凭借其更新的显示引擎,瞄准了多显示器空闲功耗。AMD 的演示中表示,他们利用了 FreeSync 显示器上的可变刷新率。他们没有更详细地说明,但很容易想象 AMD 可能会做什么。高分辨率和高刷新率的显示器意味着高像素率。这反过来又推动了更高的内存带宽需求。动态降低刷新率可以让 RDNA4 的内存子系统进入低功耗状态,同时仍然满足刷新期限。
![]()
我有一台 RX 9070,通过 HDMI 连接到 Viotek GN24CW 1080P 显示器,还有一台刷新率高达 360 Hz 的 MSI MAG271QX 1440P。后者通过 DisplayPort 连接。即使在高刷新率设置下,RX 9070 也能将内存保持在空闲时钟频率。移动鼠标会导致显卡提高内存时钟频率并消耗更多电量,这暗示 RDNA4 在屏幕内容不变的情况下会降低刷新率。此外,RDNA4 会获得中等 GDDR6 功率状态,使其能够处理 1080P 60 Hz + 1440P 240 Hz 的组合,而无需达到最大内存时钟频率。在 RDNA2 上,情况更像是全有或全无。旧款显卡更容易提高内存时钟频率来处理高像素率,即使屏幕内容不变,功耗仍然很高。
Compute Changes
RDNA4 的工作组处理器保留了与前几代 RDNA 相同的高级布局。然而,它针对光线追踪进行了重大改进,例如改进的光线追踪单元和更宽的 BVH 节点、动态寄存器分配模式,以及不再受波间虚假内存依赖影响的调度程序。我在之前的文章中介绍过这些内容。除了这些改进之外,AMD 的演示还涉及了一些其他值得讨论的细节。
![]()
Scalar Floating Point Instructions
AMD 长期以来一直使用标量单元来卸载 Wave 中恒定不变的运算。标量卸载通过避免冗余计算来节省功耗,并释放矢量单元以提升计算密集型序列的性能。RDNA4 的标量单元增加了一些浮点指令,从而扩展了标量卸载的机会。此功能最初在 RDNA3.5 上首次亮相,但 RDNA4 将其扩展到了独立 GPU。
![]()
虽然 AMD 的演示中没有讨论,但标量卸载可以带来额外的性能优势,因为标量指令有时比矢量指令延迟更低。RDNA4 上的大多数基本矢量指令延迟为 5 个周期。标量单元上的 FP32 加法和乘法延迟为 4 个周期。不过,最大的延迟优势仍然来自于卸载整数运算。
Split Barriers
GPU 使用屏障来同步线程并强制执行内存排序。例如,在较旧的 AMD GPU 上,s_barrier 指令会导致线程等待,直到工作组中所有对等线程也到达 s_barrier 指令。屏障会降低性能,因为任何碰巧更快到达屏障的线程都必须暂停,直到其对等线程赶上来。
![]()
RDNA4 将屏障拆分为独立的“信号”和“等待”操作。RDNA4 使用了 s_barrier_signal 和 s_barrier_wait 操作,而非 s_barrier。一个线程可以在生成其他线程可能需要的数据时“向屏障发出信号”。之后,它可以独立工作,并且仅在需要使用其他线程生成的数据时才在屏障上等待。之后,s_barrier_wait 操作将暂停该线程,直到工作组中所有其他线程都向屏障发出信号。
Memory Subsystem
最大的 RDNA4 版本配备 8 MB 二级缓存,与前几代 RDNA 相比,二级缓存容量大幅提升。RDNA3 和 RDNA2 的二级缓存容量分别达到 6 MB 和 4 MB。AMD 发现,像光线追踪这样高难度的工作负载受益于更大的二级缓存容量。光线追踪在 BVH 遍历过程中涉及指针追踪,因此它对从速度较慢的 Infinity Cache 而非二级缓存获取的访问更为敏感也就不足为奇了。在 3DMark DXR 功能测试的初始场景中,在资源管理器模式下运行,RDNA4 显著减少了必须从二级缓存以外获取的数据量。
![]()
从绝对值来看,RDNA2 在将数据保存在 L2 方面仍然表现出色。但值得注意的是,在两个平台上使用 Infinity Cache 都会比使用 L2 增加 50 纳秒以上的额外延迟。由于 RDNA2 和 RDNA4 都运行在 2 GHz 以上,所以这个数字远远超过 100 个周期。虽然 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 还改进了透明压缩。AMD 强调,他们正在整个 SoC 中使用压缩技术,包括显示引擎和媒体引擎等环节。压缩数据可以存储在缓存中,并在写回内存之前进行解压缩。压缩可以减少数据传输,从而降低带宽需求并提高能效。
![]()
透明压缩并非新功能。它长期以来一直是 GPU 工具箱中用于降低内存带宽占用的工具之一,很难找到没有某种压缩功能的现代 GPU。甚至显示引擎等其他模块中的压缩也已有先例。例如,英特尔的显示引擎使用帧缓冲区压缩 (FBC),它可以写入帧数据的压缩副本,并在数据不变的情况下持续获取压缩副本以降低数据传输功耗。之前的 RDNA 版本也具有压缩功能,AMD 的文档总结了一些压缩目标。虽然 AMD 没有谈论压缩效率,但我尝试在 RDNA1 和 RDNA4 上使用 RGP 进行类似的帧捕获,以查看每帧的内存访问是否存在很大差异。结果并不像我预期的那样,但我还是会把它们放在这里,并讨论为什么评估压缩效率具有挑战性。
![]()
第一个挑战是,两种架构都能满足 L0 或 L1 的大多数内存请求。AMD 关于 RDNA1 的幻灯片显示,L0 和 L1 仅保存解压缩的数据,至少对于增量颜色压缩而言是如此。压缩确实适用于 L2。对于 RDNA4,AMD 的幻灯片显示它也适用于 Infinity Cache。然而,由于不同 RDNA 代之间的缓存层次结构差异很大,因此专注于 L2 之间的数据传输是行不通的。
![]()
另一个问题是,很容易想象一种不会改变所涉及的缓存请求数量的压缩方案。例如,数据可能被压缩为仅占用缓存行的一部分。一个请求仅会导致读出缓存行的一个子集,解压缩模块会将其扩展为完整的 128B。较旧的 RDNA1 幻灯片对此含糊不清,仅指出 DCC 以 256B 的粒度(两个缓存行)运行,但没有提供更多细节。
![]()
无论如何,尽管只有 256 位 GDDR6 DRAM 设置,但压缩可能是 RDNA4 能够在使用比前几代更小的 Infinity Cache 时实现更好性能的一个因素。
SoC Features
AMD 在 RDNA4 中重点介绍了 RAS(可靠性、可用性和可服务性)功能。现代芯片使用奇偶校验和 ECC 来检测并纠正错误,RDNA4 显然也采用了同样的方法。不可恢复的错误可以通过驱动程序干预来处理,即“重新初始化 SoC 的相关部分,从而防止平台关闭”。这句话有两种解读方式。一种是 GPU 可以重新初始化以从硬件错误中恢复,这显然会影响任何依赖 GPU 加速的软件。另一种是 GPU 的某些部分可以在 GPU 继续处理工作的同时重新初始化。我认为前者更有可能,但我可以想象后者在有限的几种情况下也有可能实现。例如,如果从 GDDR6 读取的数据有系统内存中的副本作为后备,那么从 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)构建多路一致性系统。
![]()
RDNA4 上的 Infinity Fabric 内存端子系统由 16 个 CS(相干站)块组成,每个块都与一个统一内存控制器 (UMC) 配对。相干站接收来自图形 L2 和其他客户端的请求。它们通过从 UMC 获取数据,或者在另一个块拥有所请求缓存行的更新副本时发送探测,来确保内存访问的一致性。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 组件以收集芯片并创建不同 SKU 的能力。着色器引擎、WGP 和内存控制器通道都可以禁用。AMD 和其他制造商过去也曾使用过类似的收集功能。我不确定这里有什么新东西。AMD 很可能想再次强调他们的收集选项。
最后,AMD 提到,他们为 RDNA4 选择了单片设计,因为这对于其尺寸的图形引擎来说非常合理。他们考虑了性能目标、封装组装和周转时间以及成本。在评估了这些因素之后,他们决定单片设计是正确的选择。这并不令人意外。毕竟,AMD 在图形引擎较小的低端 RDNA3 产品中采用了单片设计,并且只在最大的 SKU 中使用了 Chiplet。相反,这提醒我们,没有一种万能的解决方案。单片设计还是基于 Chiplet 的设计更合理,很大程度上取决于设计目标。
最后的话
RDNA4 带来了许多激动人心的改进,同时又摆脱了任何试图攻占高端性能领域的尝试。RDNA4 并非追求极致性能,而是针对前几代产品进行了优化,以提高效率。尽管 RX 9070 的功耗预算、内存带宽和末级缓存都更低,但在光栅化工作负载方面,其性能与 RX 7900XT 相似。Techspot 还显示 RX 9070 在光线追踪工作负载方面处于领先地位,这与 AMD 提升光线追踪性能的目标一致。
![]()
AMD 通过压缩、更好的光线追踪结构和更大的 L2 缓存实现了这种效率。因此,RDNA4 可以将其性能封装到相对较小的 356.5 平方毫米芯片中,并使用适中的 256 位 GDDR6 内存配置。显示和媒体引擎的改进也值得欢迎。尽管我知道很多人使用多台显示器来提高工作效率,但多显示器的空闲功耗似乎对独立显卡来说是一个被忽视的领域。降低这些配置中的空闲功耗非常值得赞赏。在媒体引擎方面,AMD 的视频编码能力经常落后于竞争对手。RDNA4 的进步至少可以防止 AMD 像以前那样落后。
https://chipsandcheese.com/p/amds-rdna4-gpu-architecture-at-hot
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4156期内容,欢迎关注。
加星标⭐️第一时间看推送,小号防走丢
求推荐
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.