Kirin 970的NPU性能测试
为了完成这类开发工作,我们还需要一个基准测试,来测试不同的供应商提供的API能够利用到NPU多少性能。
不幸的是,在现阶段,我们还缺少类似的实现该基准测试的方法,目前只有中国的一个厂商推出了相关的软件:在中国比较流行的鲁大师基准测试软件在最近推出了一个基于人工智能测试的框架,用来测试NPU和高通SNPE框架。
据了解,目前该基准测试能够测试三种不同的神经网络,VGG16, InceptionV3和ResNet34。
这类软件不仅能够测试相关的处理器的性能,并给出相关的结果。同时也能够以图形化的方式,从平均功率,效率以及绝对性能等三个维度展示处理器的处理能力。
从这类软件呈现的图形数据我们能够观察到处理器的性能差异,CPU和NPU在进行相关运算时到底有多大的差距。
当使用CPU来进行运算的时候,通常情况下CPU只能以1-2fps的速率进行计算,而所需要的功耗也异常的高。比如骁龙835和麒麟960的CPU在运算的时候,都需要以超过平均负载的工作负载进行运算。
相比较而言,高通的Hexagon DSP能够实现相对于CPU5到8倍的性能。
而华为的NPU的性能则更加明显,相对于ResNet34,NPU能够实现4倍的性能提升。
不难发现,不同的处理器之所以在性能方面表现出如此巨大的差异,是因为这些处理器的设计不同,所针对的处理器应用场景也不同。
由于卷积神经网络在运算的过程中需要进行大量的并行计算,因此,像麒麟NPU这样的专门的处理器在执行的过程中往往能够实现更高的性能。
而在功耗方面,我们则发现,相对于其他的处理器,NPU能够实现50倍的改进,尤其是在卷积神经网络实际的运用当中,这种能耗的提升更加明显。
同时,我们也发现,高通的DSP也能够实现类似于华为NPU同等级的功耗水平。这似乎表明,高通推出的骁龙845处理器中应用的Hexagon 685能够在性能方面提升3倍。
在此,我想抱怨一下谷歌的Pixel 2:由于Pixel 2缺乏对于SNPE框架的支持,因此很难从真正意义上进行骁龙835的CPU基准测试。
不过从某种意义上来说,这也是理所当然的事情,毕竟谷歌在安卓8.1中才会引入NN API,未来谷歌将会推动安卓标准API在相关处理器方面的加速也是自然而然的。
但是,从另一方面来说,这也会限制传统的手机OEM厂商开发的能力。
这一决定往往会限制今后生态系统的发展,这也是为什么我们没有看到更多的手机GPU来进行相关的卷积神经网络加速工作。
此外,虽然目前iPhone并不支持相关的基准测试,但是我们也能够从海思发布的相关数据中看到一些端倪。
从一些数字上我们能够看到,苹果所提供的神经网络IP虽然在性能方面超越了骁龙835处理器,但是仍然远远落后于海思的NPU。但是,我们无法单独核实这些数字是否真的适合相关的基准。
当然,最重要的问题在于,这类处理器能够带来什么好处?
海思表示,一个比较明显的例子是,美国有线电视新闻网通过应用处理器来进行降噪处理,能够在交通繁忙的情况下,将语音识别的准确度从80%提高到92%。
此外,还有在摄像头应用方面,Mate 10的摄像头能够在NPU的帮助下,通过推理,来识别不同场景,再基于场景对相机的设置进行智能的优化。
同时,Mate 10中所应用的微软翻译程序也能够使用NPU的离线加速翻译功能,这些都是令我印象深刻的应用。
而在手机内置的图片应用中,也能够智能识别图片来进行分类。
除了NPU能够对卷积神经网络进行相应的视觉处理之外,Cadence 的Tensilica Vision P6 DSP 和高通的Hexagon 680 DSP也能够实现相同的功能,只是目前并没有对终端用户开放而已。
但是,这并不表明,采用NPU的Mate 10就能够为终端用户带来决定性的差异化体验。同样,手机中这类神经网络的应用并没有在汽车,安全摄像头领域出现相同的杀手级应用。另外,由于生态系统的限制性问题,我们只能够在Mate 10见到相关的应用,我们能否在更多的场景中见到,华为是否愿意开发,与开发商一起共同开发,都是值得商榷的事情,不过华为在这方面的创新还是值得肯定的。
正如之前所说,华为和微软共同开发的应用似乎是Mate 10上最吸引人的应用,因此我们可以在此基础之上进行更多的探索。
目前来看,该应用能够智能识别传统的外文文本,并进行翻译,那么在未来是否可以AR方面的应用呢?
联发科在CES上为我们展示了一个相关的识别的例子:使用神经网络的视频会议编码器能够对美国有线电视新闻网的图像和视频进行识别,并反馈给编码器,从而提升视频的质量。
在未来,可以想见,越来越多的设备将会采用这类IP,开发人员也能够更容易的开发相关应用。