為什麼麒麟9000是AI-Benchmark榜單的王者?——具體指標分析及當前Android生態AI態勢

2020-10-26 11:00:26

田海立@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分數的差距也拉不開,差別也不大。