苹果官方详解:A17 Pro和M3芯片如何增强GPU功能

image.png

使用 Metal API 的应用程序和游戏以 Apple Silicon GPU 的特定功能为目标,M3 和 A17 Pro 的平行处理能力得到了显著提升,使其性能更上一层楼。 苹果公司发布了关于这些新的 Apple Silicon GPU 功能的开发者讲座,详细介绍了实现改进效果的具体过程。 介绍了大量技术细节,但也提供了足够的基本解释。

使用 Metal API 构建应用程序的开发者无需对其应用程序做任何修改,就能看到 M3 和 A17 Pro 的性能提升。 这些芯片组利用动态快存、硬件加速光线追踪和硬件加速网格对应技术,使GPU的性能空前提高。

动态着色器核心内存

image.png

▲ 虚线表示浪费的寄存器内存

通常情况下,GPU 只能根据一个已执行动作中带宽最高的处理程序来分配暂存器内存,并持续该动作。 因此,如果一个动作的某个部分比其他部分需要更多的寄存器内存,那么该动作的某个处理程序就会占用更多的暂存器内存。

动态缓存允许 GPU 为其正在执行的每个操作精确分配适量的寄存器内存。 以前不可用的暂存器内存被释放出来,从而可以平行执行更多的着色器任务。

灵活的on-chip memory

以前,on-chip memory会为寄存器、线程组和带有缓冲快取的磁贴内存分配固定的内存。 这意味着,如果某项操作使用的内存类型多于另一种,就会有很大一部分内存被闲置。

image.png

▲ 整个芯片内存都可用作快取内存

有了灵活的on-chip memory,所有内存都是快取,可用于任何内存类型。 因此,严重依赖执行绪组内存的操作可以利用整个片上内存,甚至溢出到主内存中。

着色器核心可动态调整内存占用率,以最大限度地提高性能。 这意味着开发人员可以花更少的时间来优化占用率。

着色器核心的高性能 ALU 管线

Apple 建议开发人员在程序中执行FP16数学运算,但高性能ALU可平行执行整数、FP32和FP16的不同组合。 指令在平行执行的不同操作中执行,这意味着 ALU 利用率会随着占用率的提高而提高。

image.png

▲ 利用高性能 ALU 流水线增加平行操作

基本上,如果不同的操作包含相同的FP32或FP16指令,而这些指令将在不同的时间点执行,则可以重叠执行以提高平行性。

硬件加速图形流水线

硬件加速的光线追踪可将重要的交点计算从 GPU 功能中移除,从而大大加快处理速度。 由于部分计算由硬件完成,因此可以平行进行更多操作,从而通过硬件元件加速光线追踪。

image.png

▲ 硬件加速取代片上处理程序

硬件加速网格着色采用了类似的方法。 它将几何计算流水线的中间部分交给一个专用单元,从而实现更多平行操作。

这些都是复杂的系统,不是几段文字就能说清楚的。 建议大家观看官方视频《Explore GPU advancements in M3 and A17 Pro》了解所有细节,并牢记一点–A17 Pro 和 M3 专注于计算平行性,以加快任务执行速度。

M3 可用于 MacBook Pro 和 24 英寸 iMac。 A17 Pro 可用于iPhone 15 Pro。

(0)
打赏 微信扫一扫 微信扫一扫

相关推荐

发表评论

登录后才能评论