田海立@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處理能力的邏輯。
看CPU的設定:
各家CPU的代系:
所以,這裡的CPU跑分不管是量化還是浮點基本都反應了ARM的CPU架構代次以及晶片製造工藝水平。
各個模型的詳細跑分展開也進一步說明了這種情況:
各個模型執行Latency最低的就是麒麟9000和天璣1000+了。
NNAPI-INT8資料反應了AI加速器對INT8量化模型的支援情況和效能:
可以看到:海思麒麟9000的NNAPI 1.1超出第二名MTK天璣1000+很多(24398 vs 17124),看來NPU達芬奇架構在INT8的支援上也有了質的飛躍。 不過麒麟9000的NNAPI1.2不高(14280 vs 18559),可能是對NNAPI1.2新加的運算元支援度不高導致。
各個模型的詳細跑分展開說明了這種情況:
各個量化INT8模型測試中:
而且帶背景的高亮部分應該是反應的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資料反應了AI加速器對FP16浮點模型的支援情況和效能:
可以看到:不管是NNAPI1.1還是NNAPI1.2資料,海思麒麟9000完全領先其他各家,對比第二的MTK天璣1000+(NNAPI1.1得分:37064 vs 12970;NNAPI1.2得分:73781 vs 25879)。
各個模型的詳細跑分展開說明了這種情況:
各個FP16浮點模型測試中:
帶背景的高亮部分應該是反應的Paralle能力,去除之後麒麟9000 也有11個單個模型測試高居第一。
這基本反應了FP16的總分情況。
精度資料反應了AI加速器計算時的精度,所以也僅僅NNAPI-INT8和NNAPI-FP16才會考察該指標:
可以看到:麒麟9000的INT8以及驍龍865 Plus的FP16的精度資料較差。
各個模型的詳細跑分展開說明了這種情況:
模型測試的精度結果中:
精度方面,對於麒麟9000是降低了些分數,對驍龍865 Plus來說就是跑分上不去的一大因素了。
並行資料反應了對多個AI推理任務的支援情況,從NNAPI-INT8和NNAPI-FP16考察該指標:
可以看到:麒麟9000對FP16支援比較好;天璣1000+對INT8支援比較好。
各個模型的詳細跑分展開說明了這種情況:
各個模型並行測試結果中:
所以,總體並行效能看,麒麟9000對FP16支援比較好;天璣1000+對INT8支援比較好。
通過上面對各家最頂級soc的分析,可以看到目前整個Android生態移動soc市場(其實移動市場也就Apple的iPhone系列不在這個體系)中AI的支援情況:
通過達芬奇架構的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的精度可以說是很差。光推理速度快,結果都是錯的,這快的品質要大打折扣的。
MTK天璣1000+各方面都很均衡,各項指標(INT8量化效能、FP16浮點效能、INT8量化精度、FP16浮點精度、NNAPI1.2的支援)都很好,所以在麒麟9000釋出之前,領先其他各家很多佔據榜首(92.3k vs 當時的第二名高通驍龍865Plus的59.9k)。
當然天璣1000+是2019年的產品,麒麟9000是新發布的產品,這態勢也只能說是目前的態勢。
高通驍龍865 Plus各項指標(INT8量化效能、INT8量化精度、FP16浮點精度、NNAPI1.2的支援)都比較好,考慮到其FP支援是在GPU上做,FP16的整體效能資料不高也能理解,而其FP32能力是最強的,不過估計評分體系中所佔比重不高。
但是其FP16的精度資料很低是比較意外的,特別是PyNet以及DPED-ResNet的精度很差,而FP16在整個評分體系中的比重又比較高,所以Qualcomm要提高它的評分,應該關注一下它GPU支援的精度問題。而且即便不是為了AI-Benchmark上的跑分,實際執行模型的時候,精度差也基本上是不被接受的。
CPU沒什麼特別可說的,基本比拼的是CPU的代次和工藝了。最新ARM架構、最先進工藝就意味著分數較高,不過CPU分數的差距也拉不開,差別也不大。