GPU设计中 Furian扩展性详解

处理器/DSP

870人已加入

描述

假设您已经设计了一个完整的GPU。您可能已经开始处理几何图形、通过光栅化将其转换成像素、纹理单元、从GPU输出完成的像素至最后的屏幕上,可能使用某种统一的计算内核来进行着色。

目前,这些着色部分至少涉及顶点、像素和计算。如果我们继续深入研究,会发现,由于每个顶点、像素和计算工作项在光谱中有部分完全独立,故而计算内核至少在某种程度上具有并行性。所以,我们有一个并行且统一的着色器内核,及其他一些使用该内核处理集中图像任务的项。想象一下,若需要扩展性能,您会怎么做?

最简单的做法是将整个GPU复制一次或多次,且将一些额外的逻辑分发到每一次复制中。在基础的GPU设计中,无论资源平衡与否,如果所做的工作只是多次复制,那在一个更大的设计中,实际的工作负载总会出现不平衡。这并不是说,这不是有效的方法,实际上,Series5XT一直是遵循着这个方法。若对SGX543MP4有所耳闻,那您可能了解,它有四个完整的SGX543 GPU及一些辅助逻辑进行粘合,并作为单一的GPU呈现在系统中。

但若想扩展总体性能达到某个点,这种做法对于实际的工作负载不太适合,且会影响占用面积和功效,因为额外的比特开始闲置。相反,对于什么数值会上升且什么数值会大体保持相同,需要更加了解,因为设计时要参考性能/内存占用曲线。

这意味着,从内部将GPU组织成块,或组块,这样在单个的GPU边界内便可以相互独立地进行扩展。目前,几乎所有的GPU都是这样设计的,以此将目标设计点的效率最大化,Furian也不例外。

不过,Furian与Rogue又有所不同。Furian在结构上的调整意味着,前端(几何图形和光栅)、内核(ALU和纹理)和后端(像素输出至内存)之间的平衡并非那么严格。使用顶级内核块的微架构,我们称之为SPU,或者说可扩展处理单元。

SPU包含一个几何图形管线、一个光栅管线、一个纹理管线(TPU)、一些USC及两个后端管线(PBE)。且目前,Furian已经扩展了一个SPU。还有一些关键的比特不在SPU中,且只出现一次。通常,最引人注目的SPU便是贴图器,但就计算而言,只用在SPU层面考虑Furian。

每个SPU包含的USC数量使我们能够平衡Furian设计的计算资源以满足市场需求。正如我们在2011年发布Rogue架构并在2012年投入产品一样,我们没有发布特定的Series8XT产品配置,但其微架构支持内部资源扩展。您可能会问,这如何与7XT-generation Rogue进行区分?

Rogue的前端资源(主要是几何图形和光栅)在7XT中可以扩展至4个USC。而Furian在设计这一部分时可以使每个SPU进行扩展。同样,Rogue的后端管线是每2个USC有2个PBE。而Furian的每个SPU都含有2个PBE。关于这一点,我们可以用以下清单进行列举。

* 2-USC Rogue (7XT): 1 front-end, 1 TPU, 2 PBEs

* 2-USC Furian (8XT): 1 front-end, 1 TPU, 2 PBEs

* 4-USC Rogue (7XT): 1 front-end, 2 TPUs, 4 PBEs

* 4-USC Furian (8XT): 2 front-ends, 2 TPUs, 4 PBEs

* 6-USC Rogue (7XT): 2 front-ends, 3 TPUs, 6 PBEs

* 6-USC Furian (8XT, 2 USCs per SPU): 3 front-ends, 3 TPUs, 6 PBEs

* 6-USC Furian (8XT, 3 USCs per SPU): 2 front-ends, 2 TPUs, 4 PBEs

以上展示了Furian中SPU的设计点,其依赖USC的数量。相比Rogue,Furian的可扩展性使我们可以设计一个更广泛的目标性能点。

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

全部0条评论

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

×
20
完善资料,
赚取积分