● 手机也能玩GP-GPU?
也许你并不熟悉Power VR曾经的图形构架,从惨烈的桌面GPU战争中撤退下来之后,卧薪尝胆的Imagination长期以来一直在移动及SoC领域发展着自己独特的构架,SGX Series5系列构架就是其中的代表作。
SGX Series5系列构架
SGX Series5系列构架分为SGX Series5以及SGX Series5XT部分,其中SGX Series5部分包含SGX 520、SGX530、SGX531、SGX535、SGX540及SGX545,而SGX Series5XT部分则包含SGX 543MP1-16、SGX544MP1-16、SGX554MP1-16等。SGX Series5系列构架支持的API非常广泛,不仅支持家用机及移动平台的Open GL ES,桌面平台的DirectX以及Open GL,甚至还提供了Open CL的完整支持。
SGX Series5系列构架从外观上来看与现代桌面GPU非常接近,由完整的前端几何部分,shader单元及后端组成流水线。其中包括Geometry部分,CGS(Coarse Grain Scheduler)线程块调度单元,USSE(Universal Scalable Shader Engine)通用shader单元以及完整的Rasterization阵列,整条流水线通过内部总线共享多级cache,并最终与64bit内存控制器与内存总线相连。这与桌面GPU常规的Geometry+Shader+Rasterization的流水线过程几乎是完全一样的,甚至在进行常规构架介绍时,我们可以直接将SGX Series5系列描述成“拥有1至4个US单元,2个TMU单元,64bit显存带宽的GPU”。此外,从SGX 543MP开始,Imagination在构架中引入了特殊的multi-core设计,多个SGX54xMP芯片可以近乎于无损的完成多核心并联,达到性能倍增的目的。
整个SGX Series5构架最引人瞩目的地方,在于USSE单元以及通过总线与cache相连的CGS。
USSE单元是Imagination为SGX Series5搭配的MIMD可编程浮点单元,透过USSE单元,SGX Series5可以实现对Vertex Shader和Pixel Shader的无差别吞吐。USSE单元内部被描述成多个并联的MTEU(Multi-Thread Execution Unit),但从本质角度来讲USSE单元更像是一个混合体,Imagination在其官方PDF中宣称USSE2在USSE的基础上添加了一组新的指令集,以协助单元完成向量吞吐及co-issue操作,因此我们认为它既有常规GPU的流处理器单元ALU/EU,又有类似larrabee中的Vector Unit,两者在不同吞吐场合共同完成特殊函数、shader及其他Vector指令的吞吐。在这种设计的帮助下,最新的SGX543MP芯片可以在200MHz的频率上取得6.4Gflops的吞吐能力,这个成绩已经达到了Geforce ULP理论性能的2倍。
CGS的作用则类似桌面级GPU的线程调度机制,如AMD的UTDP单元,它能够实现线程块级别的管理,吞吐及发放功能。CGS与可以任意吞吐的USSE结合的这种组合方式,及其特殊的操作方式不仅使得SGX Series5能够像桌面GPU一样轻松面对各种GLSL和HLSL所编写的shader指令,还使其在寄存器资源允许的前提下具备了吞吐通用计算指令的能力。
换句话说,从某种意义上来讲,在寄存器允许的条件下,SGX Series5构架甚至可以执行桌面高级GPU才能执行的通用计算任务,各种任务只要经过合适的通用计算优化,都可以利用USSE单元进行加速,这种在移动领域颇为超前的GPGPU设计,为SGX Series5系列的应用打开了一扇通向无限可能的大门。