打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PowerVR系列GPU架构的演进(一)
userphoto

2022.12.30 辽宁

关注
苹果A系列芯片的gpu性能,一直是移动端天花板的存在,得益于其延续了Imagination公司PowerVR系列gpu的优良基因。追根溯源,就想去探究下PowerVR系列GPU架构的演进历史,以便学习其为何能成为业界的庞然大物。
Imagination最风光的时候莫过于其5系、6系、7系的发布,那时候Apple还是license了他们IP的,但事实证明单一大客户是极具风险的,当apple自研gpu随着A11发布,imagination股价一泻千里,以致最后被中资收购,许多研发人员也直接被apple挖走,他们联袂上演了一出 IP vender和SoC customer之间的商业大戏。
PowerVR GPU 的演进历史
废话不多说,先整理了下PowerVR系列gpu的产品。
像ARM GPU以mali G7xx(高端),G5xx(中端),G3xx(低端)清晰的命名方式,而且确定了某个core型号,就能通过查表知道它里面有多少ALU,TU处理能力是怎样的,这个表在ARM官网上可以查到:
Graphics and Multimedia Processors | Mali GPUs – Arm Developerdeveloper.arm.com/ip-products/graphics-and-multimedia/mali-gpus
ARM Mali GPU 各型号参数
IMG首先在命名方式上就复杂很多。也顺便提一下,IP vender确实不容易,既要共架构减少开发工作量,又要满足多产品形态符合广大客户需求。首先,IMG以Series5,Series6,一直到目前的SeriesA,SeriesB,SeriesC等表示产品代差,以XT,XM,XE代表不同等级产品,其中:
XT(Top-level ) 代表高端旗舰,拥有最优的能效 (performance/mW )
XM (Medium-level) 代表中端产品
XE(Entry-level,也可以代表 efficiency)代表入门级产品,拥有最好的面效比 (performance/mm2)
有时候上面两个字母后面又追加了一个字母P,代表plus,加强版。后面有多了XS系列,这个后面再说。这里首先列举下历年来img历年来发布产品的一个汇总情况。显然也可以看到,6系/7系是其巅峰时刻,Apple最后一代license的型号是7系(GT7600)后就采用了自研架构。自此8系之后使用者极少,几乎到了无人问津的地步。
IMG PowerVR 系列GPU汇总
PowerVR GPU 演进路线在A系列以前,具体到某一款特定型号的gpu,我们在官网上看到很多不同的型号。这些字母和数字的组合表示了其主要的两个参数,即ALU的个数和pixel的输出能力。以下图为例。
(1)前面两个字母代表产品等级,前面介绍过了;
(2)第一个数字,9,代表架构代号;
(3)第二个数字代表pixel输出能力,最终的PPC(pixel per cycle)能力是该数字乘以2,例如GM92xx都是4PPC的能力;
(4)第三个数字代表ALU计算能力,4就代表64ALU/128 FP32 flops;
(5)最后一个数字,代表一些其他的feature,例如IMG特有的压缩技术等等。
series 9系不同系列处理能力不同的差异但也有些命名不符合上面的规范的,暂且不论吧。
PowerVR GPU 架构
接下来,我们再研究下其GPU架构。从series5开始讲起吧,因为这是苹果第一次使用了其GPU,那时候公开的资料也稍微多点。
Series 5 系列(SGX架构)
powerVR 最著名的技术就是其TBDR专利构成的技术壁垒,移动端渲染架构都是TBR架构,但TBDR仅此一家。所谓的D,是指deferred,对应到其硬件模块叫 ISP(image systhesis processor),主要作用就是为了降低overdraw。详见下面链接中的文档。
pvr-pi/SDKPackage_OGLES2/Documentation at master · anonymousjustice/pvr-pi · GitHubgithub.com/anonymousjustice/pvr-pi/tree/master/SDKPackage_OGLES2/Documentation
IMG关于Hardware 模块的数据流图如下所示。
可以看到,除了ISP模块,其他模块我们都能在ARM Mali GPU中找到原型。比如:
USSE (Universal Scalable Shader Engine), 对应到 Mali 的Execution Engine ;
TA (Tile Accelerater),对应到Mali的 Tiler;
TSP(Texture shading unit),对应到Mali 的 TU(texture unit);
Framebuffer (或称为 Pixel Backend),对应到 Mali 的 Blender & Tile memory;
ISP 其实也可以对应到 Mail 的 Z&stencil 单元,只是ISP效率更高。
再来看两个IMG 的架构图,其最早的架构就是统一的Shader 架构,无论是vertex 处理,还是Pixel 处理,亦或是通用的数据计算,除了前端处理模块不同(分别对应着 Vertex Data Master,Pixel data master,General data master),然后进入调度单元,最后进入shader engine进行计算。
这个shader engine 是通用的、可扩展的,Universal Scalable Shader Engine,USSE,每个USSE内是4个ALU,并且以vector形式执行。这个和ARM 早期架构也类似,以vector方式执行会有利用率问题,执行Vec4时可以100%利用率,但是vec3/vec2/vec1利用率就会相应降低。
PowerVR SGX 5系列主要有SGX 520、SGX 530、SGX 531、SGX 535、SGX 540以及SGX 545。Apple A4芯片就是采用的SGX 535。
Series 5XT 系列(SGX架构)
PowerVR SGX 5XT是SGX 5的升级版,主要有Power SGX 543、SGX 544、SGX 554三款,使用了USSE2引擎,峰值浮点性能是USSE引擎的2倍,强化了多核集成,这三者最多可以同时集成16个。苹果最新的A5、A5X、A6、A6X分别集成了SGX 543MP2、SGX 543MP4、SGX 543MP3及SGX 554MP4。
5XT使用的是第二代USSE,简称USSE2。提升点如下:
USSE2 delivers twice the peak floating point and instruction throughput of Series5 USSE.
A single USSE pipe can execute a two-component vector operation in a single clock, or a 2 or 4-way SIMD operation for scalars. The USSE2 pipes are upgraded that handle single clock 3 or 4 component vector operations, have wider SIMD and can co-issue vector and scalar ops.
我们从Anandtech提供的数据可以看到,每个USSE2 包含了4个Vec4计算单元,1个Vec4可以一次处理1个长度为4的矢量操作,而我们从上面的介绍能反推出,1个USSE只能处理4个Vec2单元,USSE2 相比USSE 计算能力是翻倍的。
iPad 4 GPU Performance Analyzed: PowerVR SGX 554MP4 Under the Hood (anandtech.com)www.anandtech.com/show/6426/ipad-4-gpu-performance-analyzed-powervr-sgx-554mp4-under-the-hood
Rogue架构
这代架构一直从6系延续到8系,是imagination最长寿的架构了。从这一代开始,IMG也开始摒弃了传统的USSE架构,而改名字叫做USC(unified Shader Cluster),最显著的差别就是不再按照vector 方式执行,而是按照scalar方式:
A key property of the USC’s execution is that it processes data in a scalar fashion. What that means is for a given work item, for example, a pixel, a USC doesn’t work on a vector of red, green, blue and alpha in the same cycle inside an individual pipeline. Instead, the USC works on the red component in one cycle, then the blue component in the next, and so on until all components are processed. In order to achieve the same peak throughput as a vector-based unit, a scalar SIMD unit processes multiple work items in parallel lanes. For example, a 4-wide vector unit that processes one pixel per clock would have a peak throughput equivalent to a 4-wide scalar SIMD unit that can process four pixels per clock.
从下面的架构图我们可以看到,1个USC内包含了16个pipe(16个ALU),每个pipe内,包含了2个FP32计算单元,2个FP16单元,还有1个Special function 单元。需要强调的是:
对于FP32来说,每个USC包含了16个lane,每个lane包含2个计算单元(FMA), 那每个USC的FP32能力是64 FLOPS/cycle。
对于FP16来说,每个USC包含了16个lane,每个lane包含2个计算单元,每个计算单元可以完成3次操作(1FMA + FMUL?),所以每个USC的FP16能力是96 FLOPS/cycle。
总结来说就是每个lane是:2 个 FP32 FMA + 2个 FP16 FMA + 2个 FP16 FMUL。
Series 6 USC
Apple A7 芯片正是用了PowerVR G6430型号(属于Series6系列),包含了4个USC单元。从上面的架构图我们也可以看到,2个USC公用了一个Texture单元,这个搭配在后面的几代中都延续了下来。
Apple A7 G6430 GPUSeries 6XT 相比6,USC又做了提升,如下图,每个lane内部是 2 个 FP32 FMA + 4个 FP16 FMA(经典的1:2模式)。
Apple A8 使用的型号是GX6450(属于6XT系列),依旧是4个USC设计。
Series 6XT USC
6到6XT官方总结Graphics cores: trying to compare apples to apples - Imagination (imaginationtech.com)
The complete guide to PowerVR Rogue GPUs: specifications, features, API support - Imagination (imaginationtech.com)
Anandtech中整理了6系不同型号的配置。
7系列基本保持了6系的架构特点,没有非常显著的变化。Apple A9和A10都是使用的GT7600型号,内部包含了6 cluster单元。这也是Apple使用IMG的最后一代系列,没有等到IMG再次更新架构,就已经切换到了自研的赛道。
Furian 架构
这一代架构总体来说是有非常大的变化的,主要有以下几个方面:
Rogue架构中,1个USC内包含16 ALU,每个ALU内有两个MAD,总共是32个MAD;Furian架构中,每个USC包含32个ALU,每个ALU内不再是两个相同的MAD,而是MAD+MUL,因为它发现MUL要比ADD和MAD都要多,两个MAD是比较浪费的。从这里也能推测出,SIMD宽度从16拓宽到32了,更宽的SIMD有助于提升利用率(控制逻辑可以复用)。
整体架构的优化,之前的架构我们看到多核的扩展,只是扩展了USC+TU这两部分,其他模块并没有复制,这个与Mali的架构是不同的,Mali的每个核内,都是五脏俱全的。Rogue架构开始将部分逻辑下沉到核内,让核的功能更完整,这样做的好处是,核与核之间的耦合会减少,顶层作为一个中心模块与每个core相连接,整体上对物理布局更友好,这也是下面第三点的优化特性。
Physical layout布局的优化,核和顶层的划分,减少长路径和congestion。
在顶层中增加了一个软核,也叫Firmware core,这个核心性能有多强暂不清楚,所完成的工作主要有:负责与CPU的交互,中断的处理;负责一些有优先级的渲染机制;data log 的处理;debug功能;提供GPIO以实现直接的功耗控制和管理。另外,这个软核也为将来的功能扩展提供了便捷的通道,只需要更新软核firmware就可能实现,而不需要再做硬件的适配。ARM 在去年的G710发布上,也提出了CSF(Command stream Frontend)的概念,也是一个软核,替代了原有的job manager模块,使软硬接口部分软化,更容易实现对当下API实现的支持。
Furian架构第一代产品是8XT。9XT也是furian架构,但9XTP出了一个奇葩的“优化”,即SIMD 宽度由32-wide拓宽到40-wide,业内也是只此一家有这样的SIMD宽度。因为缺少实际的使用数据,该优化是好是坏也不好判定。
最后再汇总下Apple历年使用过的IMG GPU IP的产品。
未完待续。
参考链接:
https://www.smmt.co.uk/wp-content/uploads/sites/2/IMG-Corp-Public-_june-2010.pdf
http://cdn.imgtec.com/sdk-presentations/IDC2015_UK_PowerVR_Graphics_Latest_Developments_and_Future_Plans.pdf
https://composter.com.ua/documents/PowerVR_SGX_Series5XT.pdf
Imagination's PowerVR Rogue Architecture Explored
Imagination Announces PowerVR Furian GPU Architecture: The Next Generation of PowerVR
Imagination Announces PowerVR Series9XTP, Series9XMP, and Series9XEP GPU Cores11
编辑于 2022-03-15 14:25
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
iPhone 6s的A9处理器应该是怎样的?
一代更比一代强 详解强悍SGX544图形处理器
一代比一代强!详解SGX544图形处理器
拒绝忽悠 移动GPU全解读(一)
苹果历代cpu性能对比
给大家深度剖析MT6589处理器的性能
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服