处理器/DSP
昨日,《深度好文,详解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 +。
全部0条评论
快来发表一下你的评论吧 !