作者:Eleanor Brash
Imagination 的PowerVR GPU由一个固件处理器驱动,该处理器负责工作负载的高级调度和优先级设置。它与固定功能单元的数据主控器协同工作。为了允许多种类型工作的并发处理,PowerVR GPU 为每种类型的工作分配了一个数据主控器,包括几何处理、3维、计算和2维(或数据移动)。
这些数据主控器负责这些工作的底层运行,包括设置工作。前几代产品采用了单任务数据主控器,这意味着数据主控器会执行特定的工作,而切换工作则需要固件处理器来设置下一个工作。
这种方法意味着大部分的设置工作发生在从一个渲染切换到下一个渲染时,这通常会导致空闲时间,期间固件处理器将设置下一个工作并重新编程寄存器。这种设置工作可能需要数据访问和其他复杂的同步任务,由于延迟问题,可能导致数千个周期的固件工作期间没有为特定的数据主控器安排任何工作。这通常会导致空闲时间,甚至导致 GPU 核心的电源门控,从而损失性能以及降低扩展效率。
随着 PowerVR GPU 的速度越来越快,具有更强大的 SPU、更多数量的SPU 和多核架构,GPU 的渲染/处理性能显著提升。这意味着处理计算内核和/或图形渲染所需的时间减少了(因为我们拥有了更大、更快的 GPU 核心),但是我们仍然只有一个固件处理器,这意味着设置阶段仍需相同的时间。
例如,比较AXT-16-512和 DXT-72-2304,理论上我们的处理速度提高了 4.5 倍,但是固件处理时间保持不变,因此如果不做改进,它占总时间的比例将会更大。
这一点如下图所示:
IMG D 系列 GPU 通过在数据主控器引入流水线技术来解决设置时间问题。流水线技术意味着固件可以在 GPU 仍在处理上一个工作的同时设置(流水线化)下一个工作。实际上,固件工作现在与GPU 工作重叠而不是在工作之间串行运行。这种方法使得同一级核心的性能提高了 5%,因为我们避免了空闲周期并提高了 GPU 处理硬件的利用率,这意味着芯片性能回报更好。
这一概念如下图所示:
上一代的空闲时间也可以通过我们的 PVRTune统计工具观察到:
欲了解IMG DXT 中 PowerVR 架构改进的更多细节,可以查阅白皮书《面向大众的光线追踪》(Ray Tracing for the Masses)。
英文链接:https://blog.imaginationtech.com/pipelined-data-masters-in-d-series-gpu
声明:本文为原创文章,转载需注明出处及原文链接,否则,我们将保留追究其法律责任的权利。