NPUbench测试结果–华为麒麟970芯片

图1华为麒麟970芯片
图1华为麒麟970芯片

麒麟970芯片是华为海思推出的一款使用台积电10nm工艺打造的芯片。在配置方面,这款芯片包含了8颗核心,其中4颗为高性能的ARM公版A73 架构,最高主频 2.4GHz,4颗位低功耗的ARM公版A53 架构,最高主频 1.8GHz。麒麟970集成NPU用于处理深度学习任务,并采用了HiAI移动计算架构。华为公司对HiAI移动计算架构的介绍是:

“HiAI是面向移动终端的AI计算平台。其中HiAI API是移动计算平台中的人工智能计算库,该计算库面向人工智能应用程序开发人员,让开发者便捷高效地编写在移动设备上运行的人工智能应用程序。”

为了测试麒麟970在处理深度学习任务时的表现,我们为Kirin970芯片开发了测试程序,该程序使用了HiAI移动计算平台(面向移动终端的AI计算平台)。该程序目前内置了11款神经网络的离线模型:LeNet、Network in Network、SqueezeNet、GooLeNet、AlexNet、Inception-BN、ResNet50、ResNet101、ResNet151、VGG16、VGG19。在后续的更新中我们还会支持更多的神经网络模型。

该程序提供了三种方法对麒麟970芯片进行测试:
模式一(Gallery):从图库中选择一张图片,测试处理一张图片的前向时间以及分类准确率。
模式二(Take Photo):使用摄像头拍摄一张照片,测试处理一张图片的前向时间以及分类准确率。
模式三(ImageNet Test):使用50张ImageNet图片来测试神经网络模型的平均前向时间。

测试结果:

测试平台:华为mate10手机。
测试平台配置:麒麟970芯片、4GB内存、64GB存储。
测试平台版本:Android8.0.0、EMUI8.0.0。

图2各神经网络模型在麒麟970上平均一次前向时间表现

图2是麒麟970芯片使用50张ImageNet图片测得的各个神经网络的平均前向时间。其中LeNet网络可以输出的分类数为10,Inception-BN输出分类数是21841,其余神经网络输出分类数都为1000。

从图2中可以看到,使用LeNet时平均执行一次前向推理时间最短,仅为6.865ms,而平均一次前向推理时间最长的是VGG19,达到了173.56ms,而在使用Network in Network、SqueezeNet和GooLeNet这些神经网络执行一次前向推理的时间都要少于使用AlexNet时所用的时间。

在不考虑功耗的情况下,相比较于其他神经网络处理器,在执行一次前向推理过程的时间方面,麒麟970的表现要优于英伟达Jetson Tegra x1和英特尔Movidius神经计算棒,当然它性能表现跟高性能GPU英伟达GeForce GTX 1080相比还有一定的差距。

测试结果截图:
图3NPUbench测试各神经网络运行50张ImageNet图片后的成绩
图4NPUbench测试各神经网络处理一张图片时的前向时间以及分类准确率