深度好文,详解PowerVR Furian GPU架构的改变(二)

处理器/DSP

891人已加入

描述

昨日,《深度好文,详解PowerVR Furian GPU架构的改变(一)》一文展示了Furian中SPU的设计点其依赖USC的数量。相比Rogue,Furian的可扩展性使我们可以设计一个更广泛的目标性能点。接下来,本文将讨论USC、TPU 和PBE每块的性能。

 

USC

我们已经重新设计了Furian的USC。Rogue名义上是16位宽标量的SIMD机器,在2个周期内运行32位宽任务。Furian是 32位宽标量的SIMD机器,在单个周期内运行整个任务。我们还改变了Furian USC每时钟及每道所执行的内容。对于F32,Rogue可以每时钟每道并行执行一对FMA指令。Furian将并行FMA设置换成单个FMA,且并行相乘,故而与Rogue相同的USC,每时钟的运算量增加了50%。

自发布第一代Rogue,我们在GPU设计中一直保有相同的两倍速率的F16性能。近几年,F16的性能不断提升,图像相关的应用程序对于GPU供应商用户越来越重要。所以,目前,有相当多的GPU在售并不出奇,且通过微架构机制,F16性能更强。Furian也是如此,一直保有我们长期以来的性能。

如您所见,Furian延伸了Rogue专门管线的概念。这里,我们并非是将所有工作交由内核,并通过计算进入单个的管线,我们进行了简化,同时还尽可能进行分享,以控制独立的路径。决定运行哪种指令时,USC控制逻辑解码了传入的指令包,找出了即将运行的任务及运行数据的来源,并逐周期将它们分派至正确的管线集。在管线层,USC内还有协同问题,所以,顶级逻辑可以找出每时钟数据流及需要运行的数据。这意味着,每USC多管线可以同时工作,且主要目的是保持PIP总是处于工作的状态。

因此,从概念上讲,USC是一组内存、一个调度程序和相关的顶级控制逻辑,及一群专门的计算和数据流管线,在有需求时随时随地发挥作用。

TPU and PBE

关于Furian TPU不必细讲。不过有一点,它的过滤吞吐量是Rogue TPU的2倍。Furian纹理硬件的Peak INT8双线性采样率是每时钟8个。SPU中的USC之间是共享TPU的。USC需要数据时向TPU发出请求,并从那时起,TPU逻辑开始处理这些请求。TPU可以在每个USC之间自由地重新排序,但显然,数据返回至USC时则是按照USC提出需求时的顺序。

没错:由于TPU性能进行了提升,PBE的输出率也提升至Rogue PBE的两倍。每个SPU有2个PBE,每个SPU能发出每时钟8个像素的峰值(256bit)至内存结构中。有一组256-bit的ACE接口将每个Furian与外部世界相连,当然,这也需要今天的高端片上系统的设计。因此,相比您手中的设备或集成至汽车等事物,其GPU系统的峰值带宽要高一些,因此保持这样一个高性能的GPU很有必要。

内存和存储层次

谈到内存,USC内存完全重新进行了设计,以便可以读取和写入,使之更有效率。在USC内有一些独立的寄存器池,这里寄存器有不同的目的,但Furian专门设计了几个额外的寄存器。它没有在USC内建立完全统一的寄存器文件以用于所有的数据访问,保持专门的寄存器池可以更容易避免瓶颈,优化功率。

我们对Furian的总体内存层次结构也完全重新进行了设计,涉及到内存和ACE端口之间,从寄存器存储一直到最后的系统级缓存全部覆盖。这样做是因为Furian扩展的新方式,但也是为了让其更有效,以避免瓶颈,让设计更加自由。关于这一点还有许多细节尚未详尽,但TPU以及如何优化整体设计是这项工作的焦点。

这一方面的工作对于未来基于Furian来实现光线追踪的设计大有优势。我们可以在Furian开发过程中与架构团队谈论,甚至对于写入的内容进行最终的研究,不过清楚的是,在未来,将会有基于Furian的光线追踪微架构问世,敬请期待!

总结

想了解Furian主体微架构的亮点之处,有许多新的信息需要获悉。在举例说明之前,让我稍作总结,以便各位理清思路,了解每时钟性能改善之处及设计如何扩展。Furian和 Rogue在微架构方面的改变远不是一篇文章可以讲得清,我的寥寥数语也无法详述架构师和设计师所付出的努力。若要详细阐述,需要花一段时间来准备。

回到Furian:Furian采用新方式进行了扩展,即使用新的SPU作为构建块,以将特定的GPU资源集中在一起,并在概念上和物理上都在硅中进行分布。我们可以改变每SPU处理的资源,使我们能够根据客户的需求来保持内核的平衡,同时使整个系统的设计布局对于物理团队而言更加简单。关于前端、纹理和后端逻辑每SPU的性能,Furian也可以在USC计算之外将整个GPU性能扩展至新的层次。

USC每时钟功率至少增加了50%,在使用主要的运算管线和其他专门的管线时更有效率。并且,它的内部内存组织完全重新设计,与Furian新的存储层次形成一个整体。架构设计时已经优化了效率,且新SPU结构可以扩展至更高的GPU配置中。

Column1

 

Column2

 

Column3

 

Column1

 

Column2

 

Column3

 

per cycle performance

 

Furian (8XT)

 

Rogue (7XT)

 

scaling

 

Furian (8XT)

 

Rogue (7XT)

 

USC SIMD width

 

32-wide

 

16-wide

 

USCs

 

scalable

 

2

 

USC execution width

 

32-wide

 

32-wide

 

PBEs

 

2

 

2

 

USC F16 ops

 

192

 

128

 

TPUs

 

1

 

1

 

USC F32 ops

 

96

 

64

 

FEs

 

1 per 2 USCs

 

1 per 4 USCs

 

USC SFU ops

 

16

 

16

       

PBE pixels

 

4

 

2

       

TPU texels

 

8

 

4

       

FE triangles

 

0.5

 

0.5

       

所以,Furian是全新的微架构,可以处理最通用的运算内核的任务。它被一流的GPU特定的资源环绕,仍旧体现了PowerVR专有TBDR设计的理念,是对Rogue的一大突破。对我们来说,不管是USC或是TPU完全改变,或GPU在块级集成的方式与先前的完全不同,这都没有关系。如果TBDR执行是设计的关键,那便是PowerVR GPU。

很开心告诉大家,具体的产品待准备就绪,即将发布。

想了解PowerVR最新的资讯,请关注我们的Twitter@ImaginationTech @powervrinsider及LinkedIn、Facebook和Google +。

 

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

全部0条评论

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

×
20
完善资料,
赚取积分