没有人确切知道 M3 的动态缓存是如何工作的,但我有一个理论

Apple 演示文稿中的一张幻灯片,上面写着“动态缓存”。
苹果

苹果公司的“Scary Fast”活动期间,一项与众不同的功能引起了我的注意:动态缓存。可能像大多数观看演示的人一样,我的反应是:“内存分配如何提高性能?”

Apple的新款 M3 芯片的首次亮相基于一项“基石”功能,该功能被称为 GPU 动态缓存。苹果的简化解释并没有明确说明动态缓存的具体作用,更不用说它如何提高 M3 上 GPU 的性能了。

我深入研究了典型的 GPU 架构,并发送了一些直接问题来了解动态缓存到底是什么。这是我对苹果有史以来技术最密集的功能的最佳理解。

动态缓存到底是什么?

Apple 的 M3 芯片系列。
苹果

动态缓存是一项功能,允许 M3 芯片仅使用特定任务所需的精确内存量。苹果在官方新闻稿中是这样描述的:“动态缓存与传统 GPU 不同,它实时分配硬件中本地内存的使用。通过动态缓存,每个任务仅使用所需的确切内存量。这是业界首创,对开发人员透明,也是新 GPU 架构的基石。它极大地提高了 GPU 的平均利用率,从而显着提高了最苛刻的专业应用程序和游戏的性能。”

在典型的苹果风格中,许多技术方面都被故意掩盖以专注于结果。这些内容足以让您了解要点,而不会透露秘密或用技术术语让观众感到困惑。但总的结论似乎是动态缓存允许 GPU 进行更有效的内存分配。很简单,对吧?嗯,目前还不清楚内存分配如何“提高平均利用率”或“显着提高性能”。

为了尝试理解动态缓存,我们必须退后一步来研究 GPU 的工作原理。与 CPU 不同,GPU 擅长并行处理大量工作负载。这些工作负载称为着色器,它们是 GPU 执行的程序。为了有效利用 GPU,程序需要同时执行大量着色器。您希望使用尽可能多的可用核心。

这导致了英伟达称之为“尾巴”的效果。大量着色器会同时执行,然后当更多着色器被发送到线程(或更准确地说,GPU 上的线程块)上执行时,利用率就会下降。苹果在解释动态缓存时的演示中也反映了这种效果,因为 GPU 利用率在触底之前飙升。

两张图表并排显示 GPU 利用率。
图片经版权所有者许可使用

这是如何进入记忆的? GPU 上的函数从内存中读取指令并将函数的输出写入内存。许多函数在执行时还需要多次访问内存。 CPU 中,由于并行功能水平较低,RAM 和缓存的内存延迟极其重要,而 GPU 则不同,GPU 上的内存延迟更容易隐藏。这些是高度并行的处理器,因此如果某些函数在内存中挖掘,其他函数也可以执行。

当所有着色器都易于执行,但要求苛刻的工作负载将具有非常复杂的着色器时,这种方法有效。当这些着色器被安排执行时,执行它们所需的内存将被分配,即使不需要。 GPU 将大量资源分配给一项复杂的任务,即使这些资源会被浪费。动态缓存似乎是 Apple 尝试更有效地利用 GPU 可用的资源,确保这些复杂的任务获取它们需要的资源。

从理论上讲,这应该可以通过允许同时执行更多任务来提高 GPU 的平均利用率,而不是让一组较小的高要求任务吞噬 GPU 可用的所有资源。苹果的解释首先集中在内存上,看起来好像内存分配本身就可以提高性能。根据我的理解,有效的分配似乎允许更多的着色器同时执行,这将导致利用率和性能的提高。

已使用与已分配

理解我尝试解释动态缓存的关键的一个主要方面是着色器如何分支。 GPU 执行的程序并不总是静态的。它们可以根据不同的条件而变化,这在大型、复杂的着色器(例如光线追踪所需的着色器)中尤其如此。这些条件着色器需要为最坏的情况分配资源,这意味着一些资源可能会被浪费。

Unity 在其文档中对动态分支着色器的解释如下:“对于任何类型的动态分支,GPU 必须为最坏的情况分配寄存器空间。如果一个分支的成本比另一个分支高得多,则意味着 GPU 浪费了寄存器空间。这可能会导致着色器程序的并行调用次数减少,从而降低性能。”

苹果似乎正在通过动态缓存来瞄准这种类型的分支,允许 GPU 只使用它需要的资源,而不是浪费它们。该功能可能会对其他地方产生影响,但尚不清楚在 GPU 执行任务时动态缓存何时何地启动。

仍然是一个黑匣子

Apple 在一次活动中展示了新款 Mac。
苹果

当然,我需要指出的是,这一切只是我的理解,是根据 GPU 的传统功能和苹果官方声明拼凑而成的。苹果最终可能会发布更多有关其工作原理的信息,但最终,如果苹果确实能够提高 GPU 利用率和性能,动态缓存的技术细节并不重要。

最后,动态缓存是一个市场术语,指的是深入 GPU 架构的功能。如果不是 GPU 设计者,试图理解这一点将不可避免地导致误解和还原性解释。从理论上讲,苹果可以直接取消品牌推广,让架构自己说话。

如果您想更深入地了解动态缓存在 M3 GPU 中的作用,现在您已经有了一个可能的解释。不过,重要的是最终产品的性能如何,我们很快就会等到苹果首款 M3 设备向公众发售,让我们所有人都知道。但根据我们迄今为止看到的性能声明和演示,它看起来确实很有前途。


Posted

in

by

Tags: