为什么麒麟9000是AI-Benchmark榜单的王者?——具体指标分析及当前Android生态AI态势

田海立@CSDN 2020-10-24

随着华为Mate40 pro及其搭载的海思麒麟9000处理器的发布,其手机和移动soc的AI性能也双双登上了AI-Benchmark的榜首位置。其具体指标如何呢,为什么能登上榜首?本文从CPU性能、NNAP-INT8量化性能、NNAPI-FP16浮点性能、NNAPI-INT8精度和NNAPI-FP16精度等诸多指标因素来分析,借此分析当前Android生态各家移动soc AI性能态势也就明朗了。

零、背景

AI Benchmark测试原理、v4测试项变化以及榜单数据解读》介绍了AI-Benchmark测试AI的原理:在Android系统上测试AI性能;基于Android NNAPI来测试,用各种TensorFlow Lite模型(不同数据类型和算子)从不同角度来测试AI性能。AI Benchmark v4版本更新了测试模型、测试方法与目标,相应的评分标准都有所变化。

AI Benchmark v4榜首风云:麒麟9000登上榜首》介绍了随着华为Mate40 pro及其搭载的海思麒麟9000处理器的发布,其AI性能也双双登上了AI-Benchmark的手机和移动soc的榜首。

其具体指标如何呢,为什么是它在榜首?本文将从CPU性能、NNAPI-INT8性能、NNAPI-FP16性能、精度等诸多方面来进一步分析,借此您也可了解当前Android生态各家移动soc AI性能态势。

这里选取AI-Benchmark榜单上各家数据,每家选取一款得分最高的soc:海思麒麟9000、MTK 天玑1000+、高通骁龙865 Plus以及三星Exynos 990。没有选取紫光展锐的虎贲T312以及SC9832A、Rockchip的RK3399等数据,是因为榜单上显示并它们并没有AI加速器的支持。

所选取对比的各家soc处理器的CPU与AI加速器以及各具体单项性能数据如下:

AI-Bechmark ranking mobile soc processor 移动soc AI性能

由此看出:

  1. CPU:因为Kirin 9000也是A77,不是Kirin 990 5G的A76,并且比Dimensity 1000+的工艺更先进。所以,其CPU的量化性能数据(CPU-Q)与浮点性能数据(CPU-F)的得分都比1000+还要高,不过是稍微超出,情理之中;
  2. INT8 NPU数据:麒麟9000的NNAPI 1.1分数超出天玑1000+很多(24398 vs 17124)。看来NPU达芬奇架构在INT8的支持上也有了质的飞跃。 不过麒麟9000的NNAPI1.2分数不高(14280 vs 18559),可能是对NNAPI1.2新加的算子支持度不高导致。
  3. FP16 NPU数据:不管是NNAPI1.1还是NNAPI1.2数据,麒麟9000完全领先与其他各大soc处理器(NNAPI1.1得分:37064 vs 12970;NNAPI1.2得分:73781 vs 25879)。
  4. 精度数据:麒麟9000的INT8以及骁龙865 Plus的FP16的精度数据较差,对于麒麟9000只是降低了分数,对骁龙865 Plus来说就是跑分上不去的一大因素了。

下面会逐项展开详细分析这些数据及其背后展现的AI处理能力的逻辑。

一、CPU

看CPU的配置:

AI-Bechmark ranking score CPU-Q CPU-F CPU性能

各家CPU的代系:

  • 海思麒麟9000是A77,且5nm最新工艺超核能做到3.13GHZ;
  • MTK天玑1000+是A77,4大核做到2.6 GHZ
  • 骁龙865 Plus的Kryo 585也相当于A77

所以,这里的CPU跑分不管是量化还是浮点基本都反应了ARM的CPU架构代次以及芯片制造工艺水平。

各个模型的详细跑分展开也进一步说明了这种情况:

AI-Bechmark ranking latency CPU-Q CPU-F CPU性能

各个模型运行Latency最低的就是麒麟9000和天玑1000+了。

二、NNAPI-INT8

NNAPI-INT8数据反应了AI加速器对INT8量化模型的支持情况和性能:

AI-Bechmark ranking score INT8 NNAPI 量化

可以看到:海思麒麟9000的NNAPI 1.1超出第二名MTK天玑1000+很多(24398 vs 17124),看来NPU达芬奇架构在INT8的支持上也有了质的飞跃。 不过麒麟9000的NNAPI1.2不高(14280 vs 18559),可能是对NNAPI1.2新加的算子支持度不高导致。

各个模型的详细跑分展开说明了这种情况:

AI-Bechmark ranking latency INT8 NNAPI 量化

各个量化INT8模型测试中:

  • 麒麟9000在Inception-V3、MobileNet-V2 Parallel(2/4/8 Models)、PyNet、VGG-19、SRGAN、U-Net以及DPED-ResNet等9个量化指标中都占据第一;
  • 天玑1000+在MobileNet-V2(bs=1, 2)、MobileNet-V3、MobileNet-V2 Parallel(1 Models)、DeepLab V3(单以及Parallel)等6个量化指标中占据第一;

而且带背景的高亮部分应该是反应的Paralle能力,去除之后应该是麒麟9000 vs 天玑1000+:6 vs 4

因为不同的模型中的算子定义在不同的NNAPI版本中,而具体哪个模型反应了NNAPI 1.?的指标,AI-Benchmark官方并没直接给出,这里也就暂时不能定量的详细的给出。但这里基本反应了INT8的总分情况,麒麟9000对MTK天玑1000+:NNAPI 1.1 24398 vs 17124;NNAPI1.2 14280 vs 18559。

三、NNAPI-FP16

NNAPI-FP16数据反应了AI加速器对FP16浮点模型的支持情况和性能:

AI-Bechmark score FP16 NNAPI 浮点

可以看到:不管是NNAPI1.1还是NNAPI1.2数据,海思麒麟9000完全领先其他各家,对比第二的MTK天玑1000+(NNAPI1.1得分:37064 vs 12970;NNAPI1.2得分:73781 vs 25879)。

各个模型的详细跑分展开说明了这种情况:

AI-Bechmark latency FP16 NNAPI 浮点

各个FP16浮点模型测试中:

  • 麒麟9000在MobileNet-V2(bs=1, 2)、Inception-V3、MobileNet-V3、MobileNet-V2 Parallel(1/2/4/8 Models)、CRNN (ResNet-18 + LSTM)、PyNet、VGG-19、SRGAN、U-Net、DeepLab V3+以及DPED-ResNet等15个FP16模型指标中都占据第一,且比第二的Latency低很多;
  • 麒麟9000仅仅LSTM的支持比较差,另外FP32的支持【通过CRNN (ResNet-18 + LSTM)】也不强。

带背景的高亮部分应该是反应的Paralle能力,去除之后麒麟9000 也有11个单个模型测试高居第一。

这基本反应了FP16的总分情况。

四、精度

精度数据反应了AI加速器计算时的精度,所以也仅仅NNAPI-INT8和NNAPI-FP16才会考察该指标:

AI-Bechmark score INT8/FP16 Accuracy 精度

可以看到:麒麟9000的INT8以及骁龙865 Plus的FP16的精度数据较差。

各个模型的详细跑分展开说明了这种情况:

AI-Bechmark score INT8/FP16 Accuracy 精度

模型测试的精度结果中:

  • 麒麟9000的MobileNet-V3、SRGAN以及DPED-ResNet的NNAPI-INT8精度都很差
  • 骁龙865 Plus的PyNet以及DPED-ResNet的NNAPI-FP16精度也很差
  • MTK的天玑1000+在INT8和FP16的精度方面表现都很好

精度方面,对于麒麟9000是降低了些分数,对骁龙865 Plus来说就是跑分上不去的一大因素了。

五、并发性能

并发数据反应了对多个AI推理任务的支持情况,从NNAPI-INT8和NNAPI-FP16考察该指标:

AI-Bechmark score INT8/FP16 Parallel 并发

可以看到:麒麟9000对FP16支持比较好;天玑1000+对INT8支持比较好。

各个模型的详细跑分展开说明了这种情况:

AI-Bechmark Latency INT8/FP16 Parallel 并发

各个模型并发测试结果中:

  • 海思麒麟9000的各项FP16指标都很好,MobileNet V2 batch=4,以及MobileNet-V2(2/4/8个模型运行)都据第一,5占其4。且另一个DeepLab V3+并没有被拉大距离;
  • MTK天玑1000+各项INT8指标都很好,MobileNet V2 batch=4,MobileNet-V2(2个模型运行)以及DeepLab V3+都据第一,5占其3。虽然麒麟9000在MobileNet-V2(4/8个模型运行)占第一,但其实没拉开与天玑1000+的差距。所以,最终天玑1000+的INT8并发指标好于麒麟9000;
  • 骁龙865 Plus的DPED-ResNet的FP16的并发性能最强,不过并没有拉开对别家的距离而形成优势。

所以,总体并发性能看,麒麟9000对FP16支持比较好;天玑1000+对INT8支持比较好。

总结——当前态势

通过上面对各家最顶级soc的分析,可以看到目前整个Android生态移动soc市场(其实移动市场也就Apple的iPhone系列不在这个体系)中AI的支持情况:

1. 华为海思麒麟达芬奇系列

通过达芬奇架构的NPU的加持,FP16性能不管是NNAPI1.1还是NNAPI1.2数据,海思麒麟9000完全领先其他各家,对比第二的MTK天玑1000+(NNAPI1.1得分:37064 vs 12970;NNAPI1.2得分:73781 vs 25879)

INT8性能海思麒麟9000的NNAPI 1.1超出MTK天玑1000+很多(24398 vs 17124),看来NPU达芬奇架构在INT8的支持上也有了质的飞跃。 不过NNAPI1.2不高(14280 vs 18559),可能是对NNAPI1.2新加的算子支持度不高

麒麟9000的INT8的精度不高,特别是三个模型MobileNet-V3、SRGAN以及DPED-ResNet的精度可以说是很差。光推理速度快,结果都是错的,这快的质量要大打折扣的。

2. MTK天玑系列

MTK天玑1000+各方面都很均衡,各项指标(INT8量化性能、FP16浮点性能、INT8量化精度、FP16浮点精度、NNAPI1.2的支持)都很好,所以在麒麟9000发布之前,领先其他各家很多占据榜首(92.3k vs 当时的第二名高通骁龙865Plus的59.9k)。

当然天玑1000+是2019年的产品,麒麟9000是新发布的产品,这态势也只能说是目前的态势。

3. 高通骁龙系列

高通骁龙865 Plus各项指标(INT8量化性能、INT8量化精度、FP16浮点精度、NNAPI1.2的支持)都比较好,考虑到其FP支持是在GPU上做,FP16的整体性能数据不高也能理解,而其FP32能力是最强的,不过估计评分体系中所占比重不高。

但是其FP16的精度数据很低是比较意外的,特别是PyNet以及DPED-ResNet的精度很差,而FP16在整个评分体系中的比重又比较高,所以Qualcomm要提高它的评分,应该关注一下它GPU支持的精度问题。而且即便不是为了AI-Benchmark上的跑分,实际运行模型的时候,精度差也基本上是不被接受的。

4. CPU性能数据

CPU没什么特别可说的,基本比拼的是CPU的代次和工艺了。最新ARM架构、最先进工艺就意味着分数较高,不过CPU分数的差距也拉不开,差别也不大。

猜你喜欢

转载自blog.csdn.net/thl789/article/details/109267379