如何通过交替式几何处理实现更优的多核 GPU 扩展

描述

 

在理论上,通过增加更多 GPU 核心来提升性能似乎很简单:核心越多,性能越强。但在实践中,这是图形架构领域最棘手的挑战之一。虽然某些工作负载因其独立特性能实现良好扩展,但另一些工作负载(尤其是几何处理)会引入顺序依赖性,使得线性性能扩展成为业界所有GPU架构都难以攻克的难题。

 


为什么多核 GPU 性能扩展如此困难?

现代 GPU 的优势来自高度并行化,但并不是所有任务都能做到并行。以几何处理为例,它具有天然的顺序性。图形 API 要求按照提交顺序处理对象,因为可见性与渲染结果往往依赖这一顺序。这意味着几何工作负载通常只能在单一核心上运行,生成按顺序排列的 tile 列表供后续管线使用。当几何阶段成为瓶颈时,其他核心会处于闲置状态,从而导致扩展效率大幅下降。

 

这并非Imagination独有的困境。其他GPU架构同样面临类似挑战:它们同样难以在工作负载无法平均分配时保持高效扩展。虽然动态并行(dynamic parallelism)和硬件队列(hardware queues)等技术能够提供帮助,但在几何密集场景下问题依然突出。结果就是:增加核心数量并不一定能带来成比例的性能提升——无论使用的是哪种 GPU。

 

 

那么,我们的解决方案是什么?


走进 Imagination 的多核 GPU 架构

 

 

在讨论我们的几何扩展方案之前,我们先回顾一下 Imagination 的多核基础。

 

 

Imagination GPU具备高度可扩展的多核技术,可帮助系统设计者实现更高峰值性能或最大工作负载灵活性。Imagination 的方法是去中心化(decentralised)且松耦合(loosely-coupled),从而避免传统集中式多核架构所面临的拥塞和布局限制问题。

 

 

这些核心是松耦合的,仅通过内存共享命令列表和 tile 缓冲列表,共同分担工作负载。由于每个核心都被设计为一个独立、完整的 GPU,它包含所有必要的功能,能够根据优先级自行管理并执行任务。

 

 

imagination

 

 

Imagination GPU 多核网格的主–主(Primary-Primary)模式

 

 

imagination

 

 

Imagination GPU 多核网格的主–从(Primary-Secondary)模式

 

 

多核网格中的每个核心都可以独立运行(主–主模式,Primary-Primary),也可以协同运行(主–从模式,Primary-Secondary)。在主–从配置下,只有主 GPU 核心(Primary GPU Core)内的一个固件处理器处于激活状态,它负责驱动所有属于多核网格的从 GPU 核心(Secondary GPU Cores)中的工作负载。多个 GPU 实例共享命令流,并共同尽可能快速地完成任务。

 

 

通过让每个 GPU 核心在渲染目标(render target)的不同区域上工作,我们能够保持带宽效率,因为每个核心始终处理屏幕上连续且具一致性的区域,从而确保最大的缓存命中率(每个核心的数据根据自身处理的任务进行针对性缓存,避免核心之间不必要的数据迁移和重复,提高整体效率)。

 

 

多核网格中的寄存器设置和同步通过专用的XPU 总线来处理,它连接主 GPU 核心和所有从 GPU 核心,支持点对点及广播模式。该核间通信结构与内存层级经过优化,确保在核心数量增加时仍能降低延迟。该结构还能将 GPU 核心分布在多个 Chiplet、芯片甚至不同的板上。这为客户提供了更灵活的设计选择,并显著降低成本——客户只需设计一个单一 chiplet(或芯片),便可通过封装多个 chiplet 来构建不同性能档位,从而扩展 GPU 性能。


引入 Alternate Geometry Processing(AGP):交替式几何处理

 

 

现在我们回到如何在多核心环境中实现接近线性的性能扩展这一挑战上。

 

 

我们多核技术的一个关键特性——最早在B-Series中引入,并在后续几代中不断优化——这便是交替式几何处理(AGP)。AGP 并不是强制所有几何任务都由一个核心处理,而是将几何工作负载分布到多个核心,但保留一个关键原则:不破坏同一渲染目标内部的严格顺序要求

 

 

AGP 的方法是:将不同的渲染目标(render targets)或不同帧分配给不同 GPU 核心处理几何阶段。

 

 

例如:

 

 

  • 核心 #1 处理渲染目标 A 的几何任务;

 

  • 核心 #2 处理渲染目标 B 的几何任务;

 

  • 与此同时,像素处理和计算任务会被切片并分配到所有核心上并行执行。

 

这种方式既遵循了图形 API 的顺序规则,又能在多个渲染任务独立的情况下释放并行度。在多帧、多个渲染目标的场景中,AGP 能显著减少闲置时间,让负载分配更均衡。


交替式几何处理(AGP)的实际优势

 

 

1. 更高的扩展效率

 

 

通过在多个核心之间分配几何工作,AGP 避免了单核心成为瓶颈的问题。这在云游戏或汽车系统等同时处理多场景、多显示的多核配置中尤为重要。

 

 

2. 更佳的资源利用率

 

 

若没有 AGP,负责几何处理的核心还要承担其像素处理任务,从而拖慢整个多核系统。而 AGP 能平衡负载、减少倾斜(skew),保持所有核心都持续工作。


Imagination 的 AGP 与其他 GPU 厂商的比较

 

 

其他 GPU 厂商采用的方案不尽相同。

 

 

  • NVIDIA 多 GPU 架构多基于逐帧并行(Alternate Frame Rendering)。

 

  • AMD则采用命令处理器和硬件队列来分配工作负载。

 

但两种方案都面临类似的局限性:几何密集型场景仍可能阻碍扩展,因为在不破坏渲染正确性的前提下难以拆分这类场景。

 

 

Imagination的AGP技术之所以脱颖而出,在于其采用软件驱动模式并深度集成于我们的分块式(Tile-Based)架构,从而实现高效灵活的运行。结合去中心化、松耦合的多核设计,AGP能为原本可能陷入停滞的工作负载提供近乎线性的扩展能力。


对系统设计者意味着什么?

 

 

对系统设计者而言,结论非常清晰:

 

 

多核扩展的成功并不是简单地叠加更多核心,而是更智能合理地管理工作负载。

 

 

若您希望深入了解如何基于Imagination GPU IP构建高性能多核解决方案,以及如何高效分配工作负载,欢迎联系我们的团队。


英文链接:https://blog.imaginationtech.com/how-alternate-geometry-processing-enables-better-multi-core-gpu-scaling

声明:本文为原创文章,转载需注明作者、出处及原文链接。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分