NPUbench测试结果-苹果A10X Fusion、A11 Bionic

A10X Fusion、A11 Bionic是苹果公司所推出的两款芯片, A11 Bionic由于搭载了双核架构的神经网络处理引擎(Neural Engine),一经推出便引起了各界的广泛关注。在这篇文章中我们会对这两款芯片以及Core ML框架进行介绍,并对这两款芯片运行神经网络任务时的性能进行测试。

苹果A10X Fusion
图1 苹果A10X Fusion芯片

A10X Fusion是苹果公司设计的64位ARM架构SoC,首次搭载于2017年6月5日发布的iPad Pro系列产品。这款芯片采用了6核CPU:包括3个高频核心和3个低频核心,并搭载了12核GPU图形处理单元。

苹果A10X Fusion采用台积电的10nm FinFET工艺制造,晶片面积96.4平方毫米,其最大运行频率大约在2.36GHz,拥有8MB的L2缓存。

苹果A11 Bionic
图2 苹果A11Bionic芯片

A11 Bionic是苹果公司设计的64位ARM架构SoC,搭载于2017年9月12日发布的iPhone 8、iPhone 8 Plus及iPhone X三款智能手机中。这款芯片采用了6核CPU:包括2个高频核心和4个低频核心,六个核心可以同时运行。A11 Bionic 还用上了第一款苹果自主设计的3 核心 GPU。

A11Bionic采用了台积电10nm FinFET工艺制造,晶片尺寸为89.23平方毫米,其最大运行频率大约在2.4GHz,共包含43亿个晶体管,并拥有8MB的L2缓存。
A11Bionic还搭载了了被苹果公司称之为Neural Engine的神经网络专用加速电路模块,据苹果公司官方提供的信息:

“A11 Bionic神经引擎采用多核设计,实时处理速度最高每秒可以达到6000亿次。A11 Bionic神经引擎主要是面向特定机器学习算法、Face ID、Animoji及其它一些特定的功能设计的。”

不过在移动端芯片上集成神经网络加速引擎,苹果并不是第一家,此前高通曾在自家的骁龙820进行过尝试,华为早前推出的麒麟970芯片也宣称内置了自家开发的神经网络加速引擎。

苹果Core ML机器学习框架
图3 苹果CoreML框架

Core ML是苹果公司为开发者提供的机器学习框架,通过使用Core ML框架可以将已经训练好的神经网络模型整合到自己的应用中,从而在应用中实现机器学习的功能,Core ML目前支持的平台有iOS, MacOS,tvOS和 watchOS。据苹果公司官方提供的信息:

“Core ML 允许您将众多机器学习模型类别集成到您的 app 中。 它不但有 30 多种层来支持广泛的深度学习,而且还支持诸如树集成, SVM 和广义线性模型等标准模型。 由于它构建在 Metal 和 Accelerate 等低阶技术之上,Core ML 能无缝地利用 CPU 和 GPU 来提供最大化的性能和效率。 您可以在设备上运行机器学习模型,让数据在过程中无需离开准备接受分析的设备。”

图4 Core ML框架的四层结构

Core ML是一个四层结构的框架,从底向上分别是:

性能框架层:最底层的这一层由Acccelerate and BNNS 以及Metal Performance Shaders两部分组成,前者用于大规模数学计算,后者用于加速GPU、图像渲染。
Core ML层:这一层主要用于导入转换后的神经网络模型,并根据导入的模型自动生成相应的高级代码。
专用机器学习框架层:这一层由三部分组成, Vision 框架主要用于图像视觉分析,NLP 框架用于自然语义分析,GamePlayKit 框架用于评估已经学习到的决策树。
应用层:最上面这一层是基于上述框架所构建起来的应用,在应用层中国可以实现类似于图像分类、语音识别,手写文字理解等功能。

测试结果

为了对这两款芯片运行深度学习任务时的性能进行测试,我们为搭载这两款芯片的设备iPhone 8 Plus以及iPad Pro 10.5寸开发了专门的测试程序,该程序使用了苹果提供的CoreML框架,程序目前内置了11款神经网络的离线模型:LeNet、Network in Network、SqueezeNet、GooLeNet、AlexNet、Inception-BN、ResNet50、ResNet101、ResNet151、VGG16、VGG19,在后续的更新中我们会支持更多的网络模型。这一程序使用50组ImageNet测试集数据来分别测试两款设备使用各神经网络模型时的平均前向推理时间。

测试平台:iPhone 8 Plus(苹果A11 Bionic),iPad Pro 10.5(苹果A10X Fusion)
系统版本:iOS 11.3
开发平台:macOS High Sierra 10.13.4,Xcode 9.3
开发语言:Swift 4.1

图5 iPhone 8 Plus(A11 Bionic),iPad Pro 10.5(A10X Fusion)使用各神经网络时的平均前向推理时间

图5是iPhone 8 Plus(A11 Bionic),iPad Pro 10.5(A10X Fusion)使用50张ImageNet测试集图片来测试各神经网络的平均前向推理时间。在这些网络模型中LeNet网络输出的分类数为10,Inception-BN输出分类数是21841,其余神经网络输出分类数都为1000。

从图中可以看出,这两种设备在使用LeNet时平均执行一次前向推理的时间最短,平均前向推理时间都在2.5ms左右,而在使用Inception-BN这一网络模型时前向推理时间都是最长,其中iPad Pro 10.5(苹果A10X Fusion)平均一次前向推理时间为624.775ms,iPad Pro 10.5(苹果A10X Fusion)平均一次前向推理时间更是达到了753.314ms,执行前向推理过程的时间仅次于Inception-BN的是ResNet-152,ResNet-152的网络结构中包含了大量的卷积层,而Inception-BN网络模型包含了69个卷积层,可见两种设备在运行卷积运算时的性能还有待提高。所以,如果你的应用对图像识别的实时性有需求的时候,针对这两款设备,你可能需要选择那些规模比较小的神经网络模型,如SqueezeNet,Network in Network等,才能使图像的识别速度达到每秒30帧左右的这样一个比较流畅的水平。

不难发现,在使用同一测试程序的情况下,iPad Pro 10.5(A10X Fusion)运行深度学习任务的性能要始终好于iPhone 8 Plus(A11 Bionic),而值得注意的是A11 Bionic是内置神经网络加速引擎的一款芯片,根据测试结果,我们推测苹果可能并没有开放神经网络加速引擎的能力给第三方的应用程序,而只是如官方所说的A11 Bionic神经引擎主要是面向Face ID、Animoji及其它一些特定的功能设计的。

测试结果截图
图6 iPad Pro 10.5(A10X Fusion)真机运行测试程序时的截图
图7 iPhone 8 Plus(A11 Bionic)真机运行测试程序时的截图