有多种方法可以优化 Metal 图形代码以获得最佳性能。以下是如何开始让您的代码更好地适应 Metal 框架。
苹果GPU架构
Apple GPU 是基于平铺的延迟渲染器- 这意味着它们使用两个主要通道:平铺和渲染。整体渲染管线如下图所示。
您可以将这两个阶段视为计算和创建几何体时的一个阶段,以及处理所有像素渲染时的另一个阶段。
现代 Apple GPU 在每个核心中都有特定的子部分,用于处理着色器、纹理、像素后端和专用图块内存。每个核心在渲染期间都使用这四个区域。
在每一帧渲染期间,使用多个通道,在多个 GPU 核心上运行,每个核心处理多个任务。一般来说,核心越多,性能越好。
为了测量该性能,使用了 GPU 计数器。
GPU 计数器跟踪每个 GPU 的负载并测量每个 GPU 是否有足够的工作。他们还发现性能瓶颈。
最后,GPU 计数器会优化耗时最长的命令,以提高性能。
Apple GPU 性能计数器有一百五十多种类型,涵盖所有类型超出了本文的范围。
存在理解所有性能计数器数据的问题。为此,您可以使用Xcode和 Instruments 内置的 Metal System Trace 和 Metal 调试器。