更多架构变化
我们认为,这次GPU IP改进中的一个亮点应该就是前文多次提到的固件处理器(firmware processor)了(似乎还是RISC-V架构)。即GPU内部有个小型的微控制器,它位于全局最高层级,完全可编程,以实现GPU整体任务执行的灵活性。“相关数据流、执行、优先级等各种GPU内部的活动,任何事件、任何决策,都通过固件处理器来控制和决定。这样一来就大大减轻了CPU的工作,而且还更有弹性。”
一般来说,GPU的这部分工作是由CPU驱动执行的,而Imagination则把这个活儿揽到了自己手里。这项改进似乎在Imagination的宣传中成效还挺大。典型的就是它能够应用于GPU更好的DVFS调节(动态电压平率调整)——这项工作原本是由内核GPU驱动负责的(所以以后驱动更新都是写入到这枚处理器固件中?)。Beets提到:“固件处理器能够全面感知GPU核心中发生的一切,这对于调度机制很有帮助,它甚至可以用来帮助开发者理解,如何获得GPU的更多性能。”
“如果我们能够了解GPU的工作调度、优先级,查看所有的参数,那么就能够知道何时需要更高的频率,或者可以在某个时间点降低频率。为此,我们的固件中有大量直接的GPIO信号回写,针对功耗控制做同步。GPU直接写回给系统到底发生了什么,这比CPU快多了。这样一来就能实现更出色的DVFS算法,可了解工作负载甚至预测所需的频率。”
这枚小型处理器,还有一些特别的工作场景,比如说“如果GPU执行出现问题,我们可以通过固件记录有关GPU的信息,快速发现问题在哪里。控制获取信息,写回到内存,给予我们在GPU真实应用中debug的能力,而不是通过仿真去进行。这是分析问题非常出色的工具,如果应用在汽车系统中,还能进行错误分析。”
除此之外,A-Series在架构层面还有一些比较重要的变化,体现在纹理单元上(Texturing Unit),相关于将图像放到屏幕上的。比如说L0 cache的位置发生了变化,新架构的位置是在处理与线性过滤阶段之间。原本Rogue架构中,包括纹理解压(texture decompression)、gamma、YUV转换等操作都是在L0 cache之后进行的,这样一来某些相同的任务会被多次重复执行处理。而L0 cache位置调整后,可储存处理阶段时候的输出,数据可复用——多项异性过滤的时候,texel不需要再重复采样。
还有针对一些陈年旧算法的改进,比如说各项异性过滤(anisotropic filtering)以前一直是基于DirectX的——早年Imagination有参与过桌面GPU市场混战,当时这项特性自然是紧跟微软的参考算法的。所以这次“我们彻底重构了纹理采样方式”,“现在更加不依赖于角度(more angel-independent),采样更少但实际(各项异性过滤)质量更高。”这种算法的提升,实质也是减少带宽、增加能效的重要方案。”
此外,Rogue架构在合并(blending)操作上用的是shader。更早之前这种操作会有个专用单元去执行,Beets说Rogue采用软件的方式来执行合并操作虽然具备了很大弹性,而且节省空间,但这样一来系统会复杂化。“由于合并操作(shading a blending)越来越复杂,我们还是需要额外的指令来更高效地执行合并操作,所以A-Series又回归了专用合并单元。这样可以释放shader周期,减少数据搬运量。”
最后值得一提的是AI Synergy,实际也是本次Imagination技术发布的重点,不过它的实质是让A-Series GPU与Imagination的神经网络专核NX NNA产品做协同的,在GPU和AI专核之间实现AI负载的共享——GPU可以负责模型更多可编程层面的工作,NNA则针对全连接层处理的固定单元做任务处理。这部分不是我们针对图形计算要探讨的重点。
搭建生态是当务之急
实际上,还有一些特性是Imagination并没有着墨于A-Series的,比如当代GPU比较常见提升带宽效率的framebuffer图像压缩技术。Imagination的压缩方案名为PVRICv4,不过这套方案的最新版本实际已经在Series 9产品中得以应用。针对有损与无损压缩有单独的管线。Beets这次说Imagination持续加强了其HDR压缩率。
就这些技术来看,的确可以认为是Imagination近15年来“最重要的发布”,它已经充分凸显了Imagination做策略转变的决心,而且至少就Imagination自己的纸面数据来看,在能力上是优于竞争对手的。不过这并不能表明Imagination未来就可以在GPU市场上轻易获胜。
开发者生态此时变得极其重要,究竟有多少客户会采用A-Series GPU IP?这和生态的成熟度、市场价值有很大关联。
针对开发者软件部分,Imagination也下了一番功夫,包括跨操作系统,对各种行业标准API的支持,对各种游戏引擎的完整支持。
面向开发者的有一项特性值得一提,即如上图所示,Imagination为开发者构建了“heatmap”:“很多开发者都在苦苦进行性能优化,尤其是图形计算方面。或许性能计数器(performance counter)会告诉你ALU限制、纹理限制,但对你的帮助其实真的不大,所以我们增加了一个新特性,生成图形计算画面的热图(heatmap),它会告诉你GPU在屏幕上的某个tile上面花了多长时间做渲染。我们的工具要做到这一点很容易。开发者能够很方便地搞清楚某些tile的渲染开销很大,花了最多的shader周期、最多的带宽等等,这样一来就能真正帮助开发者获得性能上的优化。”这其中的实现似乎与硬件上的固件处理器也有关系。
Evans勾勒了来年的产品路线图,2020年是B-Series,2021年C-Series,包括2022年的D-Series,要比今年的A-Series性能提升90%。光线追踪架构也即将到来,“我们也在开发新领域的图形计算方案,围绕光线追踪(ray tracing),移动领域的光线追踪架构,作为技术做授权方案,未来我们很快在GPU中引入光线追踪。”
Imagination当前面临的局势并不算很好,尤其是在主流手机SoC制造商普遍倾向于采用自研GPU IP的情况下。Furian架构在推出后就没有在市场上激起火花,这可能是A-Series在较快的时间内出现的原因。至少A-Series的确比过去更理想,也是Imagination很重要的转型之作。
我们在活动现场看到了Imagination的一些合作伙伴前来站台,包括全志科技、睿悦信息、紫光展锐等,看起来Imagination现如今的重要市场已经放到了中国。尤其在获得中资背景以后,其中的合作自然水到渠成,也是在当前国际环境下一个双赢的局面。即便如今的手机市场已经不是当年Imagination叱咤风云的时代了,行业如今的发展重心本来就在偏移,面向更多应用领域的GPU、AI产品却也充满机遇。
更多现场及展品图集请点击欣赏
责编:Luffy Liu