RDNA 3 代表了 AMD RDNA 架构的第三次迭代,它在其消费类图形产品线中取代了 GCN。
在较高层面上,与 RDNA 2 相比,RDNA 3 的目标是大规模扩展。缓存设置在各个层面进行了调整,以提供更高的带宽。为了扩展计算吞吐量而不仅仅是添加更多 WGP,AMD 为通用指令的子集实现了双重发布功能。
在本文中,我们将对 7900XTX 进行一些微基准测试,看看与 AMD 的 RDNA 2 架构相比的差异。我们还将结合Nemes 的 GPU 微基准测试套件的结果。
虽然我对 CPU 微基准测试有相当多的了解,但我无法将几乎那么多的时间投入到我的 OpenCL bsaed 测试中。Nemes 在她基于 Vulkan 的 GPU 测试套件上取得了很好的进展,她的测试在某些领域提供了更好的覆盖。
内存延迟
测试缓存和内存延迟让我们可以很好地了解 RDNA 3 的缓存和内存设置。延迟测试在后 GCN AMD 图形架构上也很复杂,因为全局内存层次结构可以通过标量或矢量数据路径访问,它们具有不同的一级缓存。
如果编译器确定加载的值在整个波前(wavefront)是恒定的,它可以告诉 GPU 使用标量数据路径。
因为标量路径用于延迟敏感的东西,比如计算波前负载的内存地址,延迟是相当不错的(对于 GPU)。
在访问全局内存时,AMD 大量使用矢量和标量端。确切的比例会因工作量而异,但通常两者都很重要。
Radeon GPU Profiler 的统计数据显示了在 RDNA 2 上运行的几个工作负载上执行的指令混合。SMEM(标量路径)和 VMEM(矢量路径)都用于命中全局内存。
让我们从标量方面开始。与 RDNA 2 一样,RDNA 3 具有 16 KB、4 路组关联标量缓存。
此缓存的加载到使用延迟非常好,RDNA 3 为 15.4 ns,RDNA 2 为 17.4 ns。RDNA 3 的延迟优势至少部分归功于更高的时钟速度。
Nvidia 的 Ada Lovelace 在到达 SM 的 L1 时的延迟稍好一些,考虑到 Nvidia 缓存的大小,这令人印象深刻。我们在这里看到 64 KB 的 L1 缓存容量,但 Ada Lovelace 实际上有一个 128 KB 的 SRAM 块,可以在 L1 和共享内存 (LDS) 使用之间灵活分区。
AMD 还增加了 L1 和 L2 中级缓存的容量,以便更好地处理更大 GPU 的带宽需求。RDNA 2 有一个 128 KB、16 路集关联 L1,在着色器阵列中共享。
RDNA 3 将容量翻倍至 256 KB,同时保持 16 向结合性。L2 缓存容量增加到 6 MB,而 RDNA 2 上为 4 MB,同时还保持 16 路关联性。尽管容量有所增加,但 RDNA 3 在 L1 和 L2 上都提供了可测量的延迟改进。