最近Imagination Technologies发布新一代IMG DXT架构GPU IP——这次发布的DXT产品主要是面向手机设备的。如果你对Imagination的GPU IP熟的话,应该知道2019年发布IMG A系列架构,属于这家公司产品和技术层面的一个分水岭,去年的PowerVR架构30周年回顾文章也谈到过。
AXT(A系列)的基本理念主要是超宽ALU设计,Imagination此前强调它在PPAB(power, performance, area, bandwidth)方面的贡献;而次年的BXT系列,则更多地开始采用去中心化的多核、模块化方案,通过弹性缩放达成了我们现在所说的覆盖从手机到数据中心的GPU设计,并且也开始支持chiplet的设计;CXT系列则带来了PowerVR Photon架构,也就是光追加速,在移动市场上正式提出硬件级光追加速方案。
D系列的发布基本也是符合预期的。其实2019年Imagination的GPU计划表上,D系列的发布时间是2022年——选在今年1月发布也差不多赶在了时间线上。最新发布的IMG DXT,除了性能提升外,从大方向来看应该是进一步提升可扩展性、弹性的一代架构,尤其表现在光追方面;而且通过某些特性(如FSR)达成了效率的进一步提升。本文重点谈谈D系列引入的一些新特性,和部分改进。
新一代DXT概览:更弹性的设计
有关Imagination GPU架构的常规构成及组成元素,这里不再多做着墨,比如说USC(Unified Shading Cluster)模块、TPU(Texture Processing Unit)单元、Raster/Geometry模块这些固定功能单元,和cache、固件处理器(firmware processor)。
总的来说,相比于C系列,这次的DXT一个核心单元内的ALU与TPU性能最多可以提升50%;更重要的是,额外搭配的光追模块(RAC,Ray Acceleration Cluster)在规模和位置方面有了更大的弹性——这一点后文也会详细提到。
按照弹性扩展方案,Imagination列举了三种配置示例,如上图所示。在Imagination的定位中,这三种配置分别面向主流机、高端机、旗舰机。每种配置有不同的FP32算力和纹理填充率,以及可选的光线追踪加速硬件。(如DXT 8-256,8表示纹理填充率 8 GTexels/s,256表示FP32算力256 GFLOPS)基础款DXT-8-256据说达成了超过20%的性能密度提升,也就是单位面积性能表现更好。
DXT的弹性扩展能力改进,主要体现在:SPU(Scalable Processing Unit)作为规模化扩展的基本单元,现在可以用上更多的ALU、TPU。所以这代产品能够用更高密度的SPU设计,如上图,可包含3个USC/TPU模块,加上其他共享单元。
比如说上一代CXT-48-1536,是三个SPU的设计,那么每个SPU搭配一个RAC(光追加速集群),也就构成了CXTP-48-1536 RT3。而到了这一代,除了三个SPU这样的设计(三个2x 8-256 SPU),现在还可以搭配两个SPU——但是每个SPU是3个USC/TPU单元(即两个3x 8-256 SPU)。则基于每个SPU搭配1个RAC,那么就可以组合为DXT-48-1536 RT2。而且还能用一半的RAC,做成DXT-48-1356-0.5RT2。
也就是说达成此前相同的浮点和纹理性能,现在可以搭配RT1、RT2、RT3不同的配置方案,最大规模单个核心可做RT4(单核最多4个SPU)。另外单个SPU规模做大,实则会比前代达成相同算力所需的面积更小,也就提升了性能密度。与此同时最高性能配置的算力也就提升了。
虽然发布会上,Imagination只提到了DXT-72-2304 RT3,但DXT技术白皮书上说单核能够从过去的CXT-64-2048,做到这一代的DXT-96-3072,性能也就提升了50%。具体的不同配置方案如下:
光线追踪与FSR
有关PowerVR Photon架构的光追实现,我们此前也写过不止一篇文章了,包括Imagination定义的光追等级。移动设备要用上光追GPU是手机AP SoC厂商的共识。不只是Imagination,Arm也在推自家的Immortalis GPU IP——这是Arm首次加入了光追加速单元的一代GPU;可见手机游戏的光追支持已经箭在弦上。
不过PowerVR Photon架构和Immortalis架构的思路还是很不一样。从大框架来看,后者是把RTU(Ray Tracing Unit)放在了shader核心里面,RTU内部有包围盒(bounding box)与三角形相交测试加速单元,没有BVH结构处理加速;而Imagination这边是把RAC作为单独和可选的光追加速单元,与SPU搭配。
Imagination公司技术产品管理高级总监Stephen Barton在采访中说:“我们把RAC单独作为一个IP剥离出来,意味着可以不影响GPU本身的性能,光线追踪可以独立运行,这对移动端的应用很重要。移动端刚开始做光线追踪技术,一定会从混合模式开始。刚开始是大量光线运算和少量光照,随着光线追踪技术越来越成熟,会走向更完整的光线追踪。我们的架构特别适合这样的发展模式,每个阶段都可以为客户提供需要的光线追踪性能。”
“我们的想法是,DXT可以更好地让具有硬件级别、开销真正能够在移动端被接受的光线追踪,铺开到更多的设备。”Imagination公司首席营销官David Harold说,“只有这样,那些针对光线追踪进行内容开发的开发者才会愿意做这方面的开发工作。”
这说的应该是RAC的灵活性好——我们认为,的确在移动领域都还没有像样的光追游戏的情况下,为光追加速耗费的晶体管会成为所谓的dark silicon。这代架构上,Imagination强调“可扩展的光线追踪”,芯片设计企业可选配的RAC单元规模有了更大的选择范围,包括半个RAC(216 MRay/s,8 GBoxTests/s)。David说,“哪怕先用0.5个RAC单元,也可以把更多光追能力尽可能地带给更多主流机型,增加市场覆盖率,让更多开发者加入进来,让这项技术成为真正意义上的主流技术。”
Imagination在DXT技术白皮书中说,以前架构的配置方案是2个ALU模块共享RAC,而这一代可以由更多的ALU模块共享一个RAC;而且RAC可以迁往GPU的不同层级——前文提及SPU模块的灵活设计,本身就在影响RAC的布局。
另外Stephen还说:“光线追踪等级L1和L2,是目前市面上大家能够看到的绝大多数光线追踪技术达到的等级。而我们提供的L4。”按照Imagination的光追分级,Arm Immortalis可能还真就处在L2,因为目前其光追加速单元甚至都没有BVH处理的硬件加速。但这可能是因为Arm不希望RTU面积过大,以及早期的光追加速支持相对保守。
而Imagination所说的L4,除了两个重要的硬件加速支持,还需要考虑到移动平台的功耗敏感性。所以L4是在L3的BVH遍历的基础上,将具备相干性的光线做分类和聚集(coherency sorting),比如对某些材质反射的同方向光线进行sorting,达成更高的数据复用,提升并行ALU管线利用率。
比较有趣的是,从这张图来看,Imagination还特别给Intel Arc光追和英伟达RTX安排了个L3.5。可能是去年新的Ada Lovelace架构新增了SER(Shader Execution Reordering,着色器执行重排序)。那就等着看看Imagination未来的光追实现,在具体性能和能效表现上是否真的有这么神奇了。
有关RAC的内部构成,我们此前也撰文谈过了,这里不再细数。其中达成L4的关键是其中的PCG(Packet Coherency Gather)(另外“再加上RS、RTS等”),就是将相干光线聚集起来做计算,“用相同的指令完成并行计算,节省了大量的功耗。”Imagination中国区技术总监艾克说。
伴随这次DXT架构更新而来的另一项重要特性更新是FSR(Fragment Shading Rate)。这个FSR不是AMD FSR,而类似于VRS可变速率着色。关注游戏和图形技术发展的同学对此应该不会陌生。简单来说,是对画面中不重要的区域(比如画面的背景部分),或者不需要高精度渲染的部分,不做原生分辨率级别的渲染,也就能起到降低功耗和负载的效果。
比如竞速游戏,在赛车高速行驶的时候,赛车周围的对象实际上只需要低画质绘制即可,因为这些对象后续会被运动效果做模糊处理。
覆盖两个或更多像素,来降低shader执行率,也就相当于做了更少的工作、需求更低的带宽和更少的功耗,带来帧率提升的同时,对游戏体验又不会有太大的影响。DXT支持不同比例的多像素shader执行复用。不同比例也就对应了不同的画质。据说如果以4x4阵列像素的shader执行复用,则达成大约“93%左右的fragment运算能力的节省”。
感觉Imagination引入FSR支持还是略晚了一些,高通Adreno似乎早两年就已经对VRS做出了支持,联发科现在做GPU宣传也都不忘去谈AI-VRS。而且FRS在游戏中的应用,也是需要开发者做支持的,则生态建设也就显得很重要。
不过Imagination表示,FSR能够和光追做很好的搭配。感觉和桌面GPU市场参与者说超分和光追做搭配是差不多的意思,大方向都是降低原生画面的渲染精度,将更多资源应用于光线追踪,则能有效提升最终呈现的画面帧率。不过这里还有个关键,FSR/VRS在整个流程里所处的位置,还是比DLSS这类超分技术靠前许多的。
应用FSR以后,也就意味着只需要更少的shader调用和光线发射,需要处理的光线也就更少,更大一片区域的像素结果可被复用。换句话说,就是shader处理和光线数减少了,则显著降低了整体开销。“没有开启FSR的话,可能需要每帧6.9MRays的算力;但如果配上FSR计算,哪些区域运算一次,哪些区域运算两次,哪些区域需要细节表现的,这样一帧画面只需要3.2MRays计算能力。”艾克说,“配合可扩展的RAC,用更小的RAC就能够实现该场景下的游戏光追效果。”
其他关键特性更新
IMG DXT新架构引入同时的其他特性主要还包括下图这些。
2D Dual-Rate Texturing强调的是提升TPU后处理效果的性能表现。Imagination说他们观察到许多游戏会花比较多的时间去执行后处理(post-processing)算法,包括实现浅景深、bloom、模糊之类的效果。其中很多负载的瓶颈在TPU吞吐上。但暴力增加TPU单元的硬件资源是不合理的。
基于Imagination发现的后处理负载与图像处理的一些典型特征,开发团队实施了一种新的TPU模式,在检测到这些特征以后达成后处理性能的翻番。具体的细节推荐去看DXT技术白皮书。据说在特定处理类型中,DXT-48-1536能够达成96-1536的效果,每时钟周期处理双倍数量的双线性过滤纹理采样,也就达成了双倍的执行率。实际上,前述DXT架构优化方案(如光追处理更少的光线)也对后处理效果提出了更高的要求,2D Dual-Rate TPU也就显得自然而然了。
Pipelined Data Masters - 此前解析IMG A系列的文章里就提到过,GPU内有个固件处理器(firmware processor)。这个固件处理器负责高层级调度和负载优先级安排,与Data Master固定功能单元一起实现。GPU内部有各种各样的Data Master,什么2D Data Master、3D Data Master、Compute Data Master、Geometry Data Master...
这些Data Master负责各类型的低层级工作。Imagination在技术白皮书中说,之前的几代架构用的都是single-tasking单任务Data Master。也就是说Data Master首先执行某个特定工作,如果要改换工作就需要固件处理器来做设定。那么在固件处理器设定下一项工作、对寄存器做编程时,就会有个空闲时间;设定工作本身还需要数据访问和其他同步任务。
在GPU规模大、SPU数量多的情况下,这带来的性能影响就会比较大,尤其在固件处理器规模不变的情况下。所以这一代新架构实现了Data Master的流水线化(pipelining)——在GPU的上一个工作还在处理执行的情况下,固件就可以设定下一个工作。从此前固件设定工作与渲染任务的串行化,到现在的并行化,提升了GPU的资源利用率。
以前firmware processor工作导致性能损失
现在,这部分工作实现了流水线化
此外这个RISC-V架构的固件处理器本身也有40%的性能提升。白皮书上说,DXT这代转向了基于RISC-V的固件处理器——似乎此前A系列发布时就有消息提到这部分就是基于RISC-V的。而Imagination现如今异构处理器策略中,做基于RISC-V的CPU IP其实也已经是众所周知的了。
上述PPT中列出最后一项是ASTC HDR支持——实际上Vulkan API之前就强制ASTC(Adaptive Scalable Texture Compression)LDR纹理了,Imagination也持续好几代架构做出了支持。而ASTC HDR一直是个可选项。Imagination认为,未来几年HDR会发展起来,则基于ASTC算法来支持HDR输入压缩纹理,也是自然而然的。于是DTX实现了这一类型的压缩纹理。HDR纹理不用多解释了,也就是画面暗部和亮部的光比可以做到很大。
至于TBDR、PVRIC图像压缩、去中心化的多核架构设计与模块化扩展等等都属于Imagination的常规项目了。有兴趣的读者可以去看看我们之前撰写有关Imagination GPU IP的技术文章。
最后谈谈生态。生态问题涉及的应该是整个Imagination的IP产品,而不仅限于这次的DXT。DXT架构具体变成芯片的未来计划,Imagination在发布会上并未提及。不过艾克给出了一些生态方面的成果:“2021年,我们把光线追踪技术应用到手机领域,同时也推广到O3DE(Open 3D Engine),让开源社区开发者感受到光线追踪技术的演进和发展。”
“我们也和Amazon发布了带有光线追踪效果的演示demo,可展示出全天候的光影变化效果,沉浸感很强。”艾克说,“除此之外,我们也和各大游戏开发者介绍新功能,新游戏发布时我们会去参与测试,让一些功能及时得到应用;产品新特性也介绍给他们,在游戏开发过程里能用起来,建立手机游戏开发生态。”
开发生态工具相关的部分,除了比较基本的对于Vulkan API等提供支持,Stephen提到如光追生态系统建设和储备方面的工作很早就开始了,“2021年CXT发布时也有发布相关的光线追踪工具。”包括分析工具,以及SDK开发包等。David则表示:“我们和包括完美世界、网易、腾讯、Unity,以及OPPO、vivo等在内的合作伙伴都有合作。
现阶段,Imagination要推广自家GPU IP,尤其是最新几代架构的优秀技术,难点仍然在生态扩展上。期待在新的一年其GPU IP在更多类型的设备形态上落地——比如产品之外,DXT架构的应用范围应该是不仅限于手机的,比如VR也会是其应用方向之一——还有像汽车之上的产品应用,能够持续带动Imagination新战略中四大应用领域:Mobile、Consumer、Automotive、Data Center方向的全面开花结果。