苹果公司发布了关于这些新的 Apple Silicon GPU 功能的开发者讲座,详细介绍了实现改进效果的具体过程。该视频介绍了大量技术细节,但也提供了足够的基本解释。
使用 Metal API 构建应用程序的开发者无需对其应用程序做任何修改,就能看到 M3 和 A17 Pro 的性能提升。这些芯片组利用动态缓存、硬件加速光线追踪和硬件加速网格映射技术,使 GPU 的性能空前提高。
动态着色器核心内存
新一代着色器核心让动态缓存成为可能。利用 A17 Pro 和 M3 中的最新 GPU 内核,这些着色器可以比以前更高效地并行运行,从而大幅提高输出性能。
通常情况下,GPU 只能根据执行动作中带宽最高的进程来分配寄存器内存。因此,如果一个动作的某个部分比其他部分需要更多的寄存器内存,那么该动作的某个进程就会占用更多的寄存器内存。
动态缓存允许 GPU 为每一个正在执行的操作分配恰到好处的寄存器内存。之前不可用的寄存器内存被释放出来,从而允许更多着色器任务并行执行。
灵活的片上内存
以前,片上内存会为寄存器、线程组和带有缓冲缓存的磁贴内存分配固定的内存。这就意味着,如果一个操作使用的内存类型多于另一种,就会有很大一部分内存被闲置。
利用灵活的片上内存,所有片上内存都是缓存,可用于任何内存类型。因此,严重依赖线程组内存的操作可以利用整个片上内存,甚至溢出到主内存中。
着色器内核可动态调整片上内存占用率,以最大限度地提高性能。这意味着开发人员可以减少优化占用率的时间。
着色器内核的高性能 ALU 管线
Apple 建议开发人员在程序中执行 FP16 数学运算,但高性能 ALU 可并行执行整数、FP32 和 FP16 的不同组合。指令在并行执行的不同操作中执行,这意味着 ALU 占用率越高,利用率就越高。
基本上,如果不同的操作包含相同的 FP32 或 FP16 指令,而这些指令将在不同的时间点执行,则可以重叠执行以提高并行性。
硬件加速图形流水线
硬件加速的光线追踪可将重要的交点计算从 GPU 功能中移除,从而大大加快处理速度。由于部分计算由硬件完成,因此可以并行执行更多操作,从而通过硬件组件加速光线追踪。
硬件加速网格着色也采用了类似的方法。它将几何计算流水线的中间部分交给一个专用单元,从而实现更多并行操作。
这些都是复杂的系统,不是几段文字就能说清楚的。我们建议大家观看视频,了解所有细节,并牢记一点——A17 Pro 和 M3 专注于计算并行性,以加快任务执行速度。
M3 搭载于 MacBook Pro 和 24 英寸 iMac,A17 Pro 搭载于 iPhone 15 Pro。