苹果的自研GPU,究竟怎么样?
来源:内容由半导体行业观察(ID:icbank)编译自chipsandcheese,谢谢。
集成 GPU 通常是低端产品。即使图形性能很重要,成本、芯片空间、内存带宽和功率限制的综合作用也会阻碍 iGPU 的性能达到中档独立 GPU 的范围。但每条规则都有例外。Xbox Series X 和 PlayStation 5 等游戏机使用大型集成 GPU,以更小的占地面积节省主板空间。自从转向自研芯片以来,苹果一直在全力发展 iGPU,因此 M2 Pro 是大型 iGPU 的另一个例子。
M2 Pro 使用约 289 mm² die,比AMD Phoenix 的178 mm²芯片大得多。Apple 使用如此大量的硅来实现 19 核 iGPU。AWS 现在提供 M2 Pro 实例,这使我们能够进行一些有限的测试。特别是,iGPU 是可访问的。特别感谢泰坦尼克号租用了 M2 Pro 裸机实例。
缓存和 DRAM 延迟
M2 Pro的iGPU采用传统的两级缓存层次结构来加速GPU端内存访问。与 M1 一样,M2 Pro 的 iGPU 缓存层次结构从一个微小的 8 KB L1 缓存开始。它的速度大约与 Phoenix 上的 32 KB L1 矢量缓存一样快。然后,3 MB 二级缓存提供充足的容量。尽管比 Phoenix 的 2 MB L2 大 50%,但 Apple 实现了类似的延迟。与 M1 相比,M2 Pro 更大的 iGPU 大约增加了三倍 L2 缓存容量,但延迟略有增加。
在溢出二级缓存后,M2 Pro 的 iGPU 访问系统级缓存的延迟为 234 纳秒。在 128 MB 测试大小下,DRAM 访问需要超过 342 ns。进一步发送延迟超过 400 ns,可能是由于 TLB 未命中。因此,M2 Pro 的 DRAM 访问延迟比 AMD 的 Phoenix 更高,后者的内存访问延迟与最新的独立 GPU 相似。
M2 Pro 的 DRAM 延迟与较旧的英特尔 iGPU 最为相似。i5-6600K 的 HD 530 从具有 128 MB 测试阵列的 DRAM 获取数据需要 312 纳秒,略低于 M2 Pro 的 342 纳秒。
OpenCLimage1d_buffer_t允许访问容量为 24 KB 的不同一级缓存。M2 Pro 可能有一个单独的 24 KB 纹理缓存。访问此缓存的延迟与 NVIDIA Maxwell 架构上的延迟相似。
可以使用缓冲区或纹理访问的计算应用程序可以获得更多的一级缓存容量,但 8 KB 一级数据缓存小得令人失望。自 2011 年之前 AMD 的 Terascale 架构以来,我们还没有见过容量这么小的 GPU 一级缓存。除了计算应用程序之外,游戏也越来越多地使用计算着色器,即使光线追踪不在画面中也是如此。较大的 L1 缓存将有助于保持 L2 的带宽,从而降低功耗并提高性能。
带宽
M2 Pro 的 L2 也毫不逊色。iGPU 可以从 L2 拉取超过 1 TB/s,使其领先于 Radeon R9 390 等一些较旧的独立 GPU。大型 iGPU 需要更多的共享缓存带宽,M2 Pro 也不例外。
然而,AMD的Phoenix在L2带宽上有很大的领先优势。AMD 强调 RDNA 2 和 RDNA 3 的高带宽,有时它会带来回报(正如我们在 Starfield 中看到的那样)。由于 L1 缓存较小,M2 Pro 可能比 RDNA 3 或 Nvidia 的 Ada 架构更依赖于 L2 带宽。
对于溢出缓存的访问,情况会翻转。Radeon R9 390 现在凭借其庞大的 512 位 GDDR5 显存总线脱颖而出。M2 Pro 仍然不是开玩笑,凭借其 256 位 LPDDR5 设置,内存带宽达到了 200 GB/s 以上。AMD 的 Phoenix 使用 128 位内存总线,无法与之相媲美。
苹果最近发布的 M3 Pro 延续了 M2 Pro 的设计目标,但内存带宽已降至 150 GB/s。M3 Pro 可配置 18 GB 或 36 GB DRAM,而 M2 Pro 则配置 16 GB 或 32 GB。这个能被 3 整除的数字表明 Apple 已经改用 192 位内存总线。在独立 GPU 领域,RX 6500 XT 的带宽略低于 150 GB/s,FP32 吞吐量略低于 M2 Pro 的 iGPU。M2 Pro 非常高的 DRAM 带宽可能对大多数应用程序没有帮助。更窄、利用率更高的 DRAM 总线可以节省封装和电力成本。
就像Van Gogh和控制台芯片一样,M2 Pro 的大内存总线旨在为 GPU 供电。从 CPU 端实现相同的 200 GB/s 数字是不可能的,但 CPU 仍然从中受益。
125 GB/s 对于八个核心来说是很大的带宽,对于桌面平台来说是遥不可及的。正如 Digital Foundry 在游戏机芯片上看到的那样,M2 Pro 的内存延迟也较高,但程度不同。使用 macOS 默认的 16 KB 页面大小,在 1 GB 测试大小下,M2 Pro 的 CPU 延迟为 116.5 ns。
相比之下,AMD 的 7950X 在 1 GB 阵列上使用 4 KB 页时获得 84.06 ns。AMD 的 Phoenix 的延迟较高,在相同的 1 GB 测试大小下达到 126.7 ns。
本地内存延迟
GPU 程序可以分配快速暂存存储器,在 OpenCL 中称为本地存储器。M2 Pro 允许程序分配最多 32 KB 的本地内存。不过,每个 GPU 核心都可以有更多的暂存器存储空间。例如,GCN 具有相同的 32 KB 限制,但每个计算单元具有 64 KB 的暂存器存储。
本地内存是直接寻址的,因此通常比缓存访问更快,因为不需要标签比较。不过,M2 Pro 的本地内存访问时间比 8 KB 一级数据缓存稍长。AMD 和 NVIDIA 的最新独立 GPU 可以更快地访问其本地内存。
Atomics
奇怪的是,在本地内存上使用Atomics比使用一个线程进行指针追踪要快。Atomics用于确保对内存中的值进行复杂的操作而不受干扰地执行,即使其他线程正在竞争访问,这使得它们对于跨线程通信非常有用。在这里,我们使用 OpenCLatomic_cmpxchg通过本地内存在两个线程之间传递值。
Apple 在这方面表现非常出色,领先于 GTX 980 Ti,尽管 M2 Pro 的本地内存对于指针追踪访问速度较慢。但它仍然不如最新的独立 GPU 快。
我们还可以在全局内存上测试Atomics。这些访问与 CPU 上的核心到核心延迟测试相当,并且更难处理,因为这两个线程可以位于 GPU 上的任何位置。
M2 Pro 的 iGPU 可以很好地处理这一问题,延迟为 58.57 纳秒。它与 AMD 的 RDNA 2 相当,并且比英特尔和 AMD 的旧款 iGPU 快得多。
流体X3D
FluidX3D 使用格子玻尔兹曼方法 (LBM) 来模拟流体行为。它具有特殊的优化功能,使其可以使用 FP32,并且在“除极端边缘情况外的所有情况”下仍能提供准确的结果。LBM 对缓存不友好,因此内存带宽对 FluidX3D 结果有很大影响。
在这里,M2 Pro 的 iGPU 比 AMD 的 Phoenix 具有巨大优势。从 开始vkpeak,M2 Pro 提供 6.5 TFLOPs 的 FP32 性能。尽管 RDNA 3 通过难以满足的双发行机制实现了 8.6 TFLOPs 的理论数字,但这使其仅次于 AMD 的 Phoenix。无论如何,巨大的内存总线是无可争议的。
M2 Pro 的性能与旧版 Radeon R9 390 非常接近,后者也拥有海量内存总线。最近的独立 GPU 得分更高,因为它们具有更高带宽的 GDDR6 设置。但如果我们专注于 iGPU,M2 Pro 却独树一帜。
最后的话
大型 iGPU 尚未在 PC 领域取得成功。消费者希望分别选择 CPU 和 GPU。CPU端对DRAM容量要求较高,但对带宽不太敏感。相比之下,GPU 端需要每秒数百 GB 的 DRAM 带宽。独立GPU 将这两个池分开,允许 CPU 和 GPU 使用最合适的内存技术。最后,独立的散热器可以提供更大的总冷却能力,这对于非常大的 GPU 来说非常重要。
然而,游戏机为大型 iGPU 提供了一个利基市场。紧凑的外形和功效是控制台的首要任务。将 GPU 置于芯片上,无需主板上的 PCIe 接口和走线。通过单片芯片,CPU 到 GPU 的通信可以具有更高的带宽和更高效。共享内存控制器比两个独立的内存控制器更节能,面积也更小。当 CPU 端内存需求与 GPU 相比存在舍入误差时,它可以很好地工作。
苹果公司认为同样的优势证明这些牺牲是合理的。M2 Pro 获得了 M1 iGPU 的放大版。L2 缓存增至 3 MB,带宽从 M1 上的略低于 400 GB/秒增加到 M2 Pro 上的超过 1 TB/秒。但即使是更大的 L2 也无法通过典型的 128 位内存总线设置提供足够的内存带宽。因此,Apple 使用 256 位内存总线,使 M2 Pro 成为一款类似游戏机的芯片,可提供超过 200 GB/s 的内存带宽。但与控制台芯片不同的是,M2 Pro 具有高带宽且延迟损失最小。这是一个出色的折衷方案,让 M2 Pro 能够与具有独立 CPU 和 GPU 的设置竞争,无论工作负载是否对 CPU 或 GPU 造成压力。
但局限性仍然存在。M2 Pro 不能配置超过 32 GB 的内存。台式机 DDR5 系统可容纳 128 GB DRAM。封装内存和大量领先的硅也会推高成本。
就这一点而言,我对 AMD Strix Halo 传言持怀疑态度。Strix Halo 预计将结合 12 至 16 个 Zen 5 核心和多达 20 个“RDNA 3.5”核心,并为整个系统提供 256 位 LPDDR5X 内存控制器。感觉就像M2 Pro。但 AMD 迎合的是不同的市场。PC 爱好者往往看重低成本和灵活性。当可以用更少的成本构建更强大的系统时,1999 美元的价格标签可以节省每一点电力和面积,这是一个延伸。我怀疑 AMD 能否让 Strix Halo 变得更便宜。M2 Pro 看起来昂贵不是因为苹果税,而是因为尖端节点上的巨型单片芯片价格昂贵。由于来自更灵活和更具成本效益的选择的激烈竞争,并且没有固定的受众,Strix Halo 不太可能享受 M2 Pro 或控制台芯片所具有的规模经济。
因此,M2 Pro 的大型集成 GPU 是除了苹果之外很少有人能做到的。它符合他们在小外形尺寸中最大化 GPU 和 CPU 能力的目标,并且 Apple 在使其发挥作用方面做得很好。看看苹果公司在下一代产品上取得怎样的成绩将会很有趣。
原文链接
https://chipsandcheese.com/2023/10/31/a-brief-look-at-apples-m2-pro-igpu/
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3572期内容,欢迎关注。
推荐阅读
半导体行业观察
『半导体第一垂直媒体』
实时 专业 原创 深度
识别二维码,回复下方关键词,阅读更多
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装
回复 投稿,看《如何成为“半导体行业观察”的一员 》
回复 搜索,还能轻松找到其他你感兴趣的文章!
微信扫码关注该文公众号作者