寻觅移动技术新篇章
大家好,今天来为大家解答探索移动技术新篇章:PowerVR第九代图形与神经网络产品深度解析这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
PowerVR 9——可灵活配置的高效能架构
架构:Rogue继续征战
在2015年《微型计算机》第一期中,我们曾刊登了名为《全面升级,功能加强—解析Imagination PowerVR 7》的文章。在那篇文章中,我们曾提到Imagination从PowerVR 6系列开始引入了一个新的名为“Rogue”的图形架构,借由这个图形架构,Imagination相继研发、推出了PowerVR 6和PowerVR 7两代产品。实际上,由于Rogue架构设计非常优秀,其能耗比和整体性能表现即使在今天来看依旧有可圈可点之处,因此Imagination将其继续使用在了PowerVR 8和PowerVR 9系列产品上。
需要指出的是,PowerVR 8中的PowerVR 8XE是PowerVR 7XE的小幅升级版本,主要优势在于同等性能面积减少了25%,并且每平方毫米性能得到了显著提升。但另一款面向更高端市场的PowerVR 8XT,则采用了全新设计的Furian架构,这个架构主要是为下一代工艺下的高性能移动图形计算设计,主要优势在于针对7nm或者更先进的工艺,能够实现更高的性能功耗比,而目前的Rogue是为28nm以及更新的工艺设计的。
从市场角度来看,PowerVR 8XT更像是Imagination为未来市场的发展埋下的伏笔,而目前真正的市场,还是由Rouge架构来实现。从Rouge架构本身来看,这个架构还是继承了PowerVR一贯以来的三大优势,那就是TBDR渲染方式、USC通用着色器群集和高效能的内核架构,在此之上,PowerVR还设计了比较灵活、可配置的架构和独特的压缩算法,用于加强整个架构的市场竞争力和效率。
▲PowerVR在移动端的优势在于平铺算法的延迟渲染模式,也就是TBDR。
▲PowerVR 9提供了多种成熟内核可供选择。
所谓TBDR,是指基于平铺算法的延迟渲染模式,PowerVR的平铺算法是一种专门为移动设备和高性能功耗比需求的场合设计的算法,它通过将画面分成很多个平铺的区片并送入GPU核心进行并行的计算,由于GPU只需要在任何给定时间处理完成单独的区片数据,因此大大降低了GPU和存储系统沟通的压力,甚至可以将这些区片的数据存储在GPU中而不需要反复和外部存储器沟通。这种设计带来了极高的性能功耗比,不过由于这种设计在面对大规模和高密度、高性能计算下整体效率表现不佳,因此一直以来没有在桌面得到很好的应用。
所谓延迟渲染模式,是指渲染完成时间延迟到画面剔除完成后,画面剔除会消除那些被遮挡、看不到的信息,GPU只需要对能够看到的数据进行计算即可,这包括了纹理和着色器计算,因此也提高了效能。在计算模块方面,PowerVR采用的是USC,也就是通用着色器群集,USC的基本功能类似于英伟达架构的CUAD Core。通过USC这样的标量处理单元,PowerVR的核心面对几乎所有的图形任务都可以以极高的效率进行处理,并且灵活的扩展性和对多线程、多任务的支持也使得USC在面对不同的任务计算时能够游刃有余。
由于PowerVR的产品在基本的计算方法上和传统的桌面GPU大相径庭,再加上移动端对性能功耗比的极端要求,因此其整体架构的延续性是比较出色的,比如Rouge架构先后用于PowerVR第6、7、8、9四代产品。
从Rouge架构本身来说,包括曲面细分协处理器、USC设计、架构的几何处理能力、指令排序能力、计算吞吐量、精简的指令、双指令支持、原生支持Android Extension Pack等功能的设计和支持都非常到位,尤其是曲面细分功能采用了固定功能设计,它可以和顶点数据管理单元(Vertex Data Master)配合完成曲面细分操作,都不可编程,虽然这在一栋程度上限制了其灵活性,但是考虑性能功耗比,这样做还是非常恰当的。
总的来看,Rouge架构虽然延续多代,看起来没有更革命性的进步,但是每代不断提升的性能功耗比和计算密度,还是给其带来了非常不错的性能提升,堪称目前移动市场上性能功耗比、性能密度最出色的移动GPU架构之一。
XE和XM系列:瞄准不同用户精确配置
PowerVR 9系列目前有两个产品,分别是PowerVR 9XM和PowerVR 9XE,其中前者面向高性能设备,后者面向对成本敏感的设备,分别用于替换上一代的PowerVR 8XEP和PowerVR 8XE系列。
▲PowerVR 9分为XM和XE两个系列。
根据Imagination的资料,PowerVR 9XM系列相比PowerVR 8XEP,在设计灵活性大幅度提升的基础上,性能密度提高了50%,带宽占用降低了25%。PowerVR 9XE对比PowerVR 8XE,内核可以扩展至8PPC,同时性能提高了20%,带宽占用也降低了25%。另外,PowerVR 9系列还加入了对10位YUV、36位MMU的支持,能够实现更好的画质和更丰富的色彩。
▲PowerVR 8XE架构图,9系列相对8系列在架构方面改动不大。
▲PowerVR 9XM的性能密度更为优秀。
▲PowerVR 9系列在带宽方面的优势。
在功能支持上,PowerVR 9全系列提供了对OpenGL ES 3.2和Vulkan 1.0的支持,另外还能够实现对RenderScript、OpenVX 1以及OpenCL 1.2EP的支持。其中前者是两大主流通用标准,后者则是针对通用计算加速的一些规范。
此外,PowerVR 9全系列都支持硬件虚拟化和相应的安全性设计,这使不同的应用程序和系统能够在一个平台上安全、可靠的运行。在图形显示方面,PowerVR 9能够支持PVRIC3压缩算法,PVRIC3是一个由PowerVR提出来的无损影像压缩算法,能够在节省带宽的情况下实现数据的无损传输,提高系统效能。
▲PowerVR 9系列关键特性。
目前Imagination分别推出了4款PowerVR 9XE家族的产品和3款PowerVR 9XM家族的产品,其具体型号分别是PowerVR 9 GE9000、PowerVR 9 GE9100、PowerVR 9 GE9210、PowerVR 9 GE9420以及PowerVR 9 GM9220、PowerVR 9 GM9240、PowerVR 9 GM9440,在表1中,我们列出了这些产品的主要规格。
▲根据用户用途差异,PowerVR 9还可以实现不同的搭配。
表1中出现了PPC的概念。所谓PPC是指Pixel per Clock,也就是每个模块中所拥有的纹理单元数量,而USC引擎中所拥有的是能够计算FP32浮点的ALU,PowerVR用PPC+USC的方式简单指代了不同产品型号的基础规格。比如PowerVR 9 GE9000只有1个纹理单元,但是搭配了16个USC。PowerVR 9 GM9200则有4个纹理单元搭配64个USC。
单纯从数据来看,GM系列要比GE系列的规模大很多,比如纹理单元最大有8个,USC也就是ALU单元最多可配置128个,规模已经相当恐怖了。从这里也可以看出Imagination对XE和XM两个产品的性能区分,XE系列除了最低端的GE9000外,其余产品的纹理单元和USC单元之比要比XM系列高得多,这是因为XE主要面向中低端用户,保证其最基本的UI界面流畅显然更为重要,对一些重3D应用则不是这个类型所擅长的。XM系列则面向高端手机、平板等,因此用户更有可能运行重3D应用,因此该系列必须要保证更多的ALU计算和3D计算能力。
此外,PowerVR 9系列在扩展能力上也堪称一绝。除了官方公布的七款型号外,终端厂商还可以根据自己的需求来进行更多的搭配。比如它可以使用2个PPC搭配64个USC,或者使用8个PPC搭配32个USC,以组成更多具有差异化的产品来满足不同消费者对计算密度、计算/填充密度以及填充密度的需求。其中高计算密度的用户往往来自于中高端手机、平板、游戏掌机、计算核心等;两者均衡的用户主要面向中低端手机和平板、车载电脑等;偏重于填充密度的用户则面向入门级手机、车载电脑、HDTV、IoT、工业用户以及部分掌机用户等。面向不同的用户,提供精细的颗粒度和极为充分的产品选择自由,是PowerVR 9系列最重要的特点之一。
在性能方面,PowerVR 9 XE系列主要是保证填充率领先,这也和其架构配置时纹理填充单元数量紧密相关。官方宣称在4K@60Hz的应用场合,如大尺寸的电视机或高端平板上,8 PPC的配置方案是能够满足需求的,比如PowerVR 9 GE9420。性能方面PowerVR 9 XE相比前一代同档次产品平均领先25%。对PowerVR 9 XM来说,更强的3D计算能力是必要的,Imagination宣称旗下产品在性能密度方面领先竞争对手70%,并给出了表格展示,不过具体如何比较,暂时没有更多细节信息。
▲PowerVR 9XE适合填充率高的场合。
PowerVR 2NX NNA——首次进入人工智能领域
▲2NX NNA神经网络芯片的特性和基本架构。
从市场情况来看,目前人工智能技术和相关产品已经渐渐从大型企业、学校、科研院所等部门逐渐向个人用户和家庭用户渗透,比如华为、苹果都在其新产品中加入了人工智能和深度学习的相关加速模块。从计算角度来看,深度学习这类超大规模并行计算在桌面应用中如果可以用GPU来完成的话,那么在移动应用中就最好使用专门的加速引擎。
▲2NX NNA内部数据完全可调,效率表现更出色。
道理也很简单,对移动应用来说,并不需要这么高的计算精度,因为移动端往往已经到了模型的推理阶段,一些要求不高的应用甚至允许使用INT8进行推理计算。传统GPU计算精度比较高,耗能也比较大,并且GPU本身在移动端的计算负荷就比较重。综合考虑下使用专用的神经网络计算芯片就显得非常有必要了。
Imagination宣称其推出的神经网络加速器拥有业内领先的出色功耗和性能功耗比,同时在带宽占用以及性能表现方面也处于业界前列。根据Imagination的官方建议,一个典型SoC中配置的模块除了传统的CPU、内存、缓存、GPU、总线、ISP、视频编解码器、外部存储器以及I/O模块外,还需要加入神经网络加速器和相应的驱动单元,这样才能够在移动设备上实现AI计算能力。
计算能力方面,2NX NNA采用可扩展设计,16位计算支持从128到1024MAC/clk,8位支持从256到2048MAC/clk。如果用户认为这样的计算能力不够,还可以使用多核心扩展,支持更复杂的计算。在数据支持上,2NX NNA支持16、12、10、8、7、6、5、4等不同位的计算数据,并且对低精度计算也给出了良好的支持方案,不同计算和判断的精度、权重等都可以通过软件对每层进行调节,内部格式数据也采用了完全可变的模式,高低精度的计算都可以根据需要实现。特别是可调精度方案,使得用户可以在推理的过程中根据需求使用不同精度的计算模型,在不影响结果输出的情况下实现更出色的性能。
▲2NX NNA的适用场合主要在“在线”推理方面。
从架构方面,2NX NNA挂接在SoC的系统总线上,但是拥有自己独立的存储接口,采用DDR方案。内部总线控制着权重处理、卷积神经网络计算内核和输出格式三大部件,卷积神经网络计算引擎又通过累加缓冲、单元引擎、规范化、数据池等和共享缓冲区连接,最终将数据统一输出至数据输出格式化接口,再回归到内部总线并交给系统总线。整体结构明确而清晰,并且为推断部分所有的步骤都提供了硬件加速支持,大大解放了CPU处理的负载,并且还可以做到和ISP、GPU以及CPU的数据格式兼容,能够降低数据格式转换带来的能源消耗和性能耗费。
▲2NX NNA的典型应用场景。
根据PowerVR的性能对比数据来看,2NX NNA在性能方面相比目前其他同类方案,在性能上排名第一,芯片面积则属于极低占用。2NX NNA的性能要领先于业内常见的DSP+硬件、DSP、VPU+硬件、神经网络DSP、CPU以及GPU方案,但是面积和DPS方案相当,因此拥有目前业内最高的每平方毫米性能。具体到应用的性能数据上,Imagination举例,手机上如果有1000张照片需要处理分类,使用传统的运行神经网络的GPU的话,60秒可以完成1000张照片的识别,但是2NX NNA只需要2秒就可以完成。
在功耗方面,GPU大概使用1%的电池电量处理2400张照片,但是2NX NNA可以使用同样的电量处理42800张照片,每瓦特神经网络处理能力大概是GPU的200倍。目前Imagination在研发阶段使用的2NX NNA模块的频率为800MHz,可以提供大约2048MAC/cycle的性能,大约是每秒3.2万亿次推断处理。
▲在功耗和性能方面,2NX NNA优势明显。
最后再来看看它在软件和环境支持方面的特质。2NX NNA目前可以支持多种人工智能模型,比如CNN卷积神经网络、MLP多层感知网络、RNN递归神经网络、SSD单次探测器等,在框架方面支持最主流的Caffe和TensorFlow。为了更好地满足计算需求,Imagination还推出了一套软件API,被称为Imagination Deep Neural Network API,这个API允许开发人员选择自己的框架,并转化至2NX NNA上运行。另外,2NX NNA目前已经实现了对Android的支持,毕竟这是他们最大的目标市场。
开启移动AI计算大门
Imagination虽然在去年面临了多次变故,但是其研发和产品似乎并没有受到多大影响,无论是灵活可配置的PowerVR 9系列GPU还是全新的PowerVR 2NX NNA神经网络引擎,从其宣称的性能来看,都属于业内首屈一指的程度,尤其是全新的2NX NNA神经网络引擎,可算是目前性能、性能面积比都名列前茅的移动端神经网络加速器。
不过,优秀的技术和出色的产品并不意味着市场的成功。目前在ARM、高通、苹果等主要移动芯片厂商都在全力打造齐全的知识产权链的情况下,Imagination的产品究竟卖给谁就变成了很重要的问题。根据Imagination披露的一些信息来看,它的客户除了MTK外,其余的大多数都是一些行业客户,和普通的用户距离较远。未来我们究竟会在哪些产品上看到Imagination的创意和技术,还是一个需要观察的问题。