公众号记得加星标⭐️,第一时间看推送不会错过。
来源 : 内容来自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.