遥想90年代,手机这类移动设备的图形算力还弱得可怜,连智能手机操作系统UI的图形加速技术起步其实都比很多人预想得要晚。而到现如今,移动GPU支撑的手机游戏已经成长为年产值数千亿的产业。
基于Arm Mali GPU的历史跑分(GFXBench T-Rex),2011年Android机皇三星Galaxy S2图形性能差不多相当于去年谷歌Pixel 6手机的5%。这中间也不过10年时间。可能时间再往前拉一点,数据会更夸张——苹果当年就说iPhone 6(2014年)的图形性能达到了初代iPhone的84倍(2007年)。而联发科、Arm、Imagination这两年都已经开始宣传移动GPU的光追了,真是今时不同往日。
这两年联发科召开天玑旗舰技术沟通会,都会将GPU和图形相关技术当做重点去做分享。好像在天玑9000上市之后,联发科在手机AP SoC市场的话语权就已经被改写了——天玑9000刚刚发布之际,我就说这是联发科暌违多年、尝试重回旗舰与高端手机市场的开端。今年天玑芯片对高通骁龙系列的压力似乎也是前所未见的。话语权的进一步拿捏,也就让联发科的技术路线在行业内更为举足轻重;而联发科的技术分享,可能也让我们有机会把握新一年手机技术的走向。
而且似乎一般联发科召开这种技术沟通会不多久,很快就会见到手机SoC新品问世——这就让这种“沟通会”更像是下一代天玑旗舰芯片的技术预分享。那本文就主要来谈谈联发科这次分享的手机GPU技术路线,来窥见未来几个月可能会发布的天玑旗舰芯片GPU部分大致有哪些技术点。
“光线追踪”这个词在移动市场大概已经预热有3年了——虽然光追在PC和工作站领域逐步开始普及,但专门的光追加速单元在手机、平板之类的移动设备上还非常罕见。除了像Imagination这样的IP供应商时有谈起,“率先落地”的应该暂时也只有三星Exynos 2200了——用的是AMD RDNA 2架构——但恐怕其中光追加速单元暂时也没什么用,毕竟今年也还没怎么看到光追手机游戏的影子。
这两年联发科也频繁提到光追,包括去年提到生态方面与Arm、腾讯游戏等上下游合作伙伴之间的合作。虽然我那个时候都仍然不清楚在芯片设计的硬件实现层面,联发科究竟打算怎么做,但联发科的技术发言人彼时就提到虽然在那之前的天玑芯片都没有增加光追单元,但“这两代就已经在为光追做准备,包括渲染指令运算、缓存机制,现在是融入在了IP里面的”。
实际上天玑9000就已经开始支持基于软件的光线追踪了,所以天玑9000发布会上也多少听到联发科提到了光线追踪——但基本是蜻蜓点水式的。在光追游戏的“预备”和试水上,联发科于天玑9000发布之际“推出光追SDK产品,我们的客户也基于天玑系列产品,开发了一系列光追交互壁纸”。
这次的技术沟通会上,联发科再度提到“从GPU内容开发的进展来看,基于移动光追的需求可能会有更大更广的覆盖”。“从前年到去年,我们持续跟游戏引擎合作的这些移动光追方案,目前都变成了手游开发者的标杆”。与此同时,“基于VR/AR的需求,移动光追技术也已经陆续在萌芽。”所以“光追技术已经不是专属于高端游戏需求”...“已经越来越贴近用户需求”,“没有那么遥远”。
今年年中ARM 正式对外发布了新的GPU产品线Immortalis,以及首款支持光追硬件加速的GPU IP,Immortalis-G715(以及包括更低端型号)。在ARM发布G715当天,联发科就在推特上快速转发了Arm的发布信息、表示祝贺,ARM还特别回复了联发科。与此同时,ARM的Immortalis-G715的产品介绍页面特别列出了联发科的“合作伙伴证言”。这可能表明双方在光追硬件加速的实现上,已经合作良久了。
联发科这次也在会上提到“联发科与ARM的深度合作以及经验共创下,我们催生出新的GPU架构”;“我们这三年来一直在讲移动光追,也很开心我们即将看到开花结果”...这些信号都表明,基于Immortalis-G715的天玑芯片不远了。
有关Immortalis-G715的第四代Valhall架构,此前ARM的发布会上多少已经提及。此处只关注其中的光追部分——这的确应该是ARM的GPU IP首度加入专用的光追加速单元。
有关光追的基础知识就不作科普了,像英伟达于PC端做光追的思路,就是给GPU增加RT core——这代Ada Lovelace架构就是每4个SM配1个RT core。这种RT core光追核心的内部有用于BVH(Bounding Volume Hierarchy)盒子遍历,以及光线与三角形相交测试的专用硬件加速单元。
Imagination于移动端的Photon架构方案中RAC(Ray Acceleration Cluster)也有对应的光追加速单元。一个较大的差异在于,因为光追对算力需求大,像手机这类功耗敏感型设备不可能比照PC的方案。Imagination在RAC集群中增加了分析光线相干性——或者说将光线分组的Packet Coherency Gather。
ARM和联发科的方案与上述两者都有差异。Immortalis-G715自然也要开始用硬件加速单元,名为RTU(Ray Tracing Unit)——这对芯片设计企业而言似乎还是个可选项。而且值得一提的是,RTU是直接放进每个shader核心里面的,而不是像别家那样是个外部的加速器。
RTU内部也包含了包围盒与三角形相交测试加速单元。据ARM所说,这个RTU只占到shader核心不到4%的部分,但却达成了相比于没有光线追踪加速,超过300%的光追性能增长——其实这个值就加速计算的维度来看并不多惊艳。
从RTU的占地面积,以及它不作BVH结构处理加速,就能看出Immortalis先期的光追支持没有那么激进。这可能与Arm和联发科走更低功耗、更小面积之路有关。
另外基于每个shader核心都带RTU这一点,则更低阶定位的Immortalis-G615也能支持光追——应了联发科所说,不是高端游戏专属,而是越来越趋向于大众化的技术——只不过受限于G615所能堆的核心数目,光追性能自然也会显著弱于G715。
这种方案特性也能反映联发科在沟通会上反复强调的联发科对于GPU图形计算更专注在“能效导向”,“在能效导向的维度里,为了满足移动平台,需要考虑长效续航的需求,贴近终端用户的体验需求。在满足能效导向需求以后,才会去尝试堆叠出性能的部分。”
可能更多同学比较关注的并不是谁家的光追硬件实现如何,而是移动光追游戏什么时候来,以及堆像RTU这样的单元究竟有什么用。原本这两个问题大概需要等到Immortalis-715上线以后,生态被培养起来,我们才会了解。不过这次联发科提到的光追技术布局和要达成的最终效果,大概能够稍稍解答这两个问题。
首先是主流的移动光追游戏什么时候来的问题。我当然不知道确切的时间,无非也就是明年或后年。但这个问题更本质之处在于手机游戏的光追生态建设情况如何。联发科表示早在2020年12月就“提前布局Ray Query技术方案,启动生态合作”。
在Vulkan世界里,要做光追有两种选择,分别是用ray tracing pipeline和ray queries。后者可在任意shader阶段用于执行光线遍历并返回结果。网上能找到一些有关ray tracing pipeline和ray queries的比较。似乎SIGGRAPH 2019上,还有专家特别谈到过ray tracing pipeline的诸多问题,有兴趣的同学可以去找一找。
联发科表示:“我们采用Ray Query方案来缩小和开发者切入的困难点。这些经验可以反馈给硬件实作者,也就是GPU IP厂商,加速他们的光追硬件开发和驱动开发。今年初Khronos也发布了Vulkan 1.3标准——基于新标准的发布,联发科的自研方案也可以无痛切换到行业标准上继续推进。”这也是大范围生态培养的基础。
另外联发科也提到了Immortalis-G715硬件级光追。除了RTU以外,也包括GPU本身其他架构层面带来的性能提升,包括浮点算力的提升、三角形输出能力提升3倍、带宽需求优化。这些也都是实践移动光追游戏,以及其他更复杂游戏场景的基础。
再有就是生态布局上,“与评测工具联合推进光追生态”;以及“协助开发者和硬件厂商定位合理的性能目标”。不过这个部分联发科谈得并不多。其实移动光追生态能做起来的基础,关键仍然在于游戏开发者。想必到新一代手机AP SoC发布之际,像联发科这种企业应当也会找对应的游戏开发者来站台。
那么第二个问题:光追加速硬件单元究竟有什么用。尤其是像Immortalis-G715这种应用RTU方案所能达成的效果。联发科虽然没有说Immortalis-G715的光追硬件加速能带来什么,但他们也提到了自家布局移动光追期望达到的3个基础功能——差不多就等于回答了这第二个问题。
这3个基础功能分别是光追软阴影、光追反射效果、全局光照。全局光照是去年联发科在沟通会上提到的一个重点,当时主要是说开放世界游戏需求全局光照的优化方案,因为这类游戏场景与角色间互动很多,动态光源需求也多,而且部分游戏还有时间系统——则场景变化就很丰富,需要很细致的光照计算。这次谈得主要是间接光源对画面暗部处理加强,增加场景的真实感。
另外两个属于光追可达成的固有特性。有关阴影的呈现,“用光追得到的反射效果会更为真实”,这一点我前年就撰文探讨过。Imagination和英伟达早两年做光追效果宣传时都提到纯光栅管线计算,常规可获得的阴影都不够真实。其实要达成阴影边缘模糊效果(penumbra),依靠纯光栅也有可行的方案,但需要引入额外的特性或技术,不仅算力开销不小,而且得到的阴影还未必是正确的。光线追踪在解决这类问题上有天然的优势。
光追反射效果也大致相似,光追“可以比较真实地计算出这些物体相对应反射的角度和位置。”前两年好像大家更喜欢拿来形容光追带来反射效果真实性的,是处在画面外的部分也可以反映到画面中高反光材质的反射。当然目前还不清楚移动光追前期在这方面可达成的实际效果,但总的来说也都是让光影效果更贴近真实。
光线追踪当然只是GPU和移动图形技术加强的一部分,超分、补帧这种属于计算机视觉领域的技术现在也在GPU上大放异彩。主要是因为随硬件图形算力的增长,游戏开发者又大幅提升了画面刷新率、分辨率以及内容复杂度的下限。
计算机科学领域一个亘古不变的事实就是无论硬件厂商提供多少性能,软件开发者能立刻将这些资源吃干抹净。联发科也说现在游戏“内容复杂度是不可控的”,也就“多了对高画质的需求”,“所以在移动GPU能效和算力上,会增加很多压力”。
上面这张PPT给出了答案。为应对手机游戏内容复杂度的增长,联发科多层面布局移动GPU增效方案。自底层硬件绝对性能提升,到平台软件优化、算法布局,以及在图形渲染以外,借助AI、CV之类的技术来生成像素与帧,提升体验。
所以(1)首先是“芯片性能每年的提升与能效的进化”,CPU和GPU“每年维持10-15%的进步”。
(2)其次是“生态”,“我们看到64位生态的推进”——这个说的应该就是自Arm Cortex-X2/A710/A510及之后CPU逐渐放弃32位支持,更全方位地转向64位。这一点可能也预示着未来的天玑芯片对于Cortex-X3/A715的采用。ARM在前几个月的发布会上就着重谈到了“移动计算生态全面进入64位时代”,其中就包括游戏。联发科给的数据是,“搭配64位游戏引擎升级,帧率平均提升16%”。
生态相关的部分也包括“Vulkan的推广”。联发科解释说,“Vulkan本身就是为了达到内容本质上的降载目标”,深耕Vulkan生态是联发科如今的一大策略——联发科在此表达的应该是从芯片制造商的角度对Vulkan标准做出更快的响应和支持。据说联发科的天玑生态实验室“深度联调提升Vulkan性能”,让热门游戏Vulkan性能平均提升10%。
(3)系统调度、驱动优化。“比如温控稳帧算法,就是这个类型的增效技术”。这两年手机OEM厂商对此宣传还是比较积极地。
(4)自适应调度,或者说自适应框架的应用。“越来越多的软件框架能够达到系统平衡与内容开发的联动。”比如说Google ADPF、腾讯TGPA、Arm Adaptive Performance。借助这种自适应框架,开发者能够获取来自系统、芯片的实时信息,然后对内容做实时的负载调整,这对性能和效率发挥会大有益处。联发科认为这会成为未来的一大趋势。
(5)平台厂商的自研算法,如VRS(可变速率着色)、超分、补帧等。这些也是需要生态构建的。
当然,联发科的技术分享会并不只是探讨GPU与图形技术,一整个下午的分享还涵盖AI多媒体、5G 调制解调器、Wi-Fi无线网络、无线蓝牙音频和高精度定位技术的相关发展趋势——毕竟这些要么作为AP SoC的组成部分存在,要么有极大的关联性,而且也都是时下热点。
联发科带来的AI图像语义分割、5G新双通、Wi-Fi 7、高保真蓝牙音频、高精度导航等最新的前沿技术都还是挺有意思的——像是5G时代的“新双通”就谈到了联发科在双卡双通之类的问题上在5G实施过程中遭遇的挑战和做出的努力,后续有机会我可以单独撰文来谈一谈。
似乎基于这些技术热点的分享,大致也能勾勒出即将到来的下一代天玑旗舰芯片的大致样貌了(最近有消息说是天玑9200)。尤其GPU部分,以上探讨的所有内容都有大概率出现在天玑9000的后续手机AP SoC上。而“能玩移动光追手游”,有机会成为明后年智能手机的核心体验。临近年底,联发科即将发布新品的消息不胫而走,下一代天玑旗舰芯片将为行业带来哪些新的话题,让我们保持期待。