?

移動智能終端人工智能芯片算力評測方法

2022-06-08 07:09龐濤沙通崔思靜楊婷婷
移動通信 2022年5期
關鍵詞:算力評測運算

龐濤,沙通,崔思靜,楊婷婷

(中國電信股份有限公司研究院,廣東 廣州 510630)

0 引言

人工智能的三大要素是算力、數據與算法?;ヂ摼W與移動通信的結合產生了海量的數據,深度神經網絡的快速發展推動著算法精度的不算提升,英偉達GPU、谷歌TPU 等高性能硬件的大規模產業化解決了云端算力問題[1,20]。但是,移動終端設備在實際運行中會受到傳輸時延、功耗、成本、安全性等各項制約因素的影響,其中,算力尤其是單位能耗可提供的算力是制約移動智能終端AI 能力的主要因素[2]。

近年來,移動終端的人工智能計算能力呈現出大幅增長的態勢,移動芯片制造廠商推出的中高端手機芯片都提供了深度神經網絡模型的加速計算能力。業界也隨之出現了針對端側人工智能加速計算的各種評測方法和工具[3],本文接下來將針對移動智能終端的AI 芯片算力及其評測方法展開研究。

1 端側AI加速技術及評測工具

2010 年之前,手機終端僅能提供600 MHz 左右的單核CPU 及百兆內存資源用于運行簡化版的機器學習模型;2010 年之后,移動終端上開始配置多核處理器CPU、GPU;2017 年,蘋果、華為海思、高通、聯發科等芯片廠商陸續推出NPU、AIP 和APU 等適合機器學習和深度學習任務的專用AI 加速硬件單元[4-6],越來越多的AI 應用在移動終端上落地。

在深度學習模型中,計算量最大的算子是卷積,而卷積的本質是矩陣的乘加計算(MAC)。在基于深度學習的AI 應用中,95% 以上的運算為MAC,因此現階段移動智能終端上大量的軟硬件優化方案均是用來加速這部分運算[19]。硬件層面,芯片內置專用的神經網絡運算單元對神經網絡中的矩陣運算進行加速,例如,華為手機配置的海思麒麟820、990 等芯片內置了NPU;蘋果A13、A14 等系列芯片搭載了Neural Engine。軟件方面,需要通過SDK 運行移動終端上所支持的機器學習框架[5],調度CPU、GPU、DSP 及其他加速計算單元。其中,端側框架包括操作系統上層的AI 加速運行時(Runtime)、AI 加速能力API、AI 算法模型和AI應用能力接口等。除了芯片廠商提供的專有機器學習框架,眾多互聯網企業也推出了各自的移動端深度框架,例如谷歌TensorFlow Lite、百度Paddle Lite 等框架。

當前業界已有眾多移動智能終端的AI 能力評測工具,能夠對手機、平板等移動智能終端進行不同場景下的運算精度和速度的評測,主流的評測工具包括AIbenchmark[4-5]、MLPerf[8]、DNN Benchmark、AIT 以及一些商業評測軟件,例如魯大師的AImark、安兔兔AI 評測等。其中,AIT(AI Testing)是由中國電信研究院研發的一款AI 芯片評測工具,通過該工具我們定期跟蹤評測最新款手機終端芯片的AI 能力,相關評測結果在每年度的中國電信終端洞察報告中發布。AIT 的評測項目包含了圖像分類、圖像識別、圖像分割和超分等模型,并從模型推斷的性能、能耗和耐久模式出發,對芯片的AI 能力進行綜合評估。接下來本文重點研究的AI 芯片算力評測方法已在AIT 上實現,文中實驗數據均來源于AIT 評測。

2 AI算力評測方法研究

2.1 算力的定義

算力是指硬件設備的計算能力,業界一般采用每秒操作數量(OPS,Operations Per Second)作為衡量硬件算力水平的一個性能指標[18]。特別地,針對浮點計算領域,常用每秒浮點運算次數(FLOPS,Floating-Point Operations Per Second)來衡量硬件執行浮點計算的速度。業界往往用計算單元的理論值來標稱AI 芯片的算力,但在實際應用中,硬件所能表現的算力水平受到數據量、吞吐量等諸多因素的影響,表現出來的算力水平距離理論值差距較大,故需要研究一種標準化、可復現的算力評估方法,用其評測AI 芯片時能夠盡量接近理論算力。

文中使用OPS 作為浮點和整型計算算力的統一度量單位,通常一次MAC 運算可看作是兩次深度學習的運算操作。

(1)在不考慮能耗的情況下,移動終端進行AI 運算所能表現的峰值算力計算公式如下:

其中OPs為操作數量,Tinf為推斷時間,MACs 為乘加運算次數。

(2)在考慮移動終端單位能耗下的算力水平時,單位能效算力計算公式如下:

其中OPs為操作數量,Tinf為推斷時間,W推斷時間內的功率消耗。

2.2 模型與算力的關系研究

(1)模型及其理論運算數量

模型的MACs 或OPs 由其本身的結構確定,通常用作模型復雜度的一種描述。在不考慮激活函數運算的情況下,一個包含偏置(bias)的卷積層的MACs 可通過下述公式確定:

其中Ci為輸入通道數,C0為輸出通道數,K為卷積核大小,H和W分別為輸出特征圖的長和寬。

而同樣在不考慮激活函數運算的情況下,一個包含偏置(bias)的全連接層的MACs值為:

其中I為輸入神經元總數,O為輸出神經元數量。

為驗證MACs 和算力表現的關系,我們在PC 端CPU上進行了測試,在參數量和MACs 都相同的情況下,三層全連接模型和三層核大小為1×1 的卷積模型體現出的CPU 算力幾乎沒有差別,測得全連接模型算力大小為247.25 GOPS,卷積模型算力為247.86 GOPS。最大池化層中本身不含乘加運算,在計算OPs 的時候忽略其內部的操作數。因此,在算力評測時主要利用卷積計算進行算力評估是合適的。

(2)不同模型的算力表現

為驗證不同模型對算力的影響,我們選擇移動端常見的三個圖像分類模型在手機終端運行,對比其各自表現出來的算力水平,模型的MACs 數量見表1:

表1 MobileNet、ResNet50和VGG16等模型的MACs

使用AIT 評測軟件分別運行在裝備AI 芯片的五款手機終端上,分別測試MobileNet_V2、ResNet50、VGG16和19 剪裁后三層的模型,對比不同模型運行在不同終端上的芯片算力表現,結果如圖1 所示:

圖1 芯片在INT8模型上的算力測試結果

圖中縱坐標是不同的DNN 模型(標注了MAC 數量),橫坐標是測出的算力值,每種顏色代表一款手機跑出的AI 算力,單位TOPs/s(TOPS),從測試結果看出,MACs 越多的模型,表現出的算力值越高。因此在手機端盡管當前的應用趨勢是模型輕量化,但是從測試的角度,要想充分展示出加速計算硬件的理論性能,還需要重載模型的加持。

(3)定制化VGG 模型的算力表現

1)VGG 模型剪裁

圖1 中的VGG_notop 指的是裁剪掉最后三個全連接層和損失層(Softmax)后的VGG16 或VGG19,去掉全連接層的VGG_notop 模型結構主要出于以下因素的考慮。其一,現如今三個全連接層接在CNN 末端已不是常見的結構設計,如圖2 所示,位于VGGNet[9]模型末端的三個全連接層主要起到的是特征融合和特征降維的作用,在卷積神經網絡發展初期,這種設計是常見的。

圖2 VGG16_notop結構示意圖

然而,多層的全連接層易使模型本身結構變得臃腫,在VGG19 中全連接層參數占到了模型參數總量的86%,在VGG16 中該占比達到了89%。2014 年,參考文獻[13] 中提出了使用全局平均池化層(GAP,Global Average Pooling)替代全連接層的做法,GAP在降維的同時極大地減少了網絡參數,且保留了特征中部分空間信息,起到防止過擬合的作用。隨后,一層GAP 后接一層全連接層(或一到兩個核大小為1×1的卷積層)做進一步特征降維被業界普遍應用,在InceptionNet[14-16]和MobileNet[10,17]等模型中,都可以看到這種結構設計。

同時,對于移動端有限的存儲和運算能力來說,VGG_notop 的模型大小和其純卷積層的結構都更加友好和實用。我們使用AIT 測試軟件同樣運行在5 款手機上,對標準VGG 模型和裁剪后的VGG_notop 模型的算力進行了實驗對比,根據圖3 的測試結果可以看到,無論哪一款終端,VGG_notop 模型由于其更精簡的結構,在算力測試中都更好地展現了芯片的計算能力。因此,出于對模型參數量和實際應用的考慮,在移動終端算力評測中所考慮的VGGNet 模型是裁剪掉全連接層和Softmax層的VGG_notop。

圖3 INT8模型VGG16與VGG16_notop的算力對比

2)不同卷積核對算力的影響

在實際情況下,不同芯片的計算單元處理能力會存在差異。我們的研究方案是用一組MAC 值不同的模型進行算力測試,選取其中測得的算力峰值來作為芯片能力的表現。這要求所使用的一組模型擁有相似的結構和參數分布,且盡量不因結構變化而增加I/O。

遵循上述思路,我們采用了一組定制化的VGG_notop模型組,組內模型沿用了VGG16_notop 和VGG19_notop的層次結構,但每個模型的卷積核大小各異。為了區分不同卷積核尺寸采用簡寫表示,卷積層全采用3×3 核的VGG16_notop 模型,表示為VGG16_notop_conv3,其中為方便表示,將其簡寫為v16_notop_conv3,應用其它核大小的模型以此類推,VGG19_notop 模型同理。圖4 為VGG16_notop_conv5 結構圖。

圖4 VGG16_notop_conv5結構圖

由此,該定制化VGG_notop_convk 模型組內共有10個MAC 值不同的模型,如表2 所示。為了簡便,所有模型內的參數全部設置為0.001,即w=const(0.001)。

表2 VGG_notop_convk模型組的MACs

可以看出,隨著卷積核的增大,模型的MAC 數量也同步增長。我們將這組模型分別在PC 端的CPU 上以及不同的手機終端芯片上進行了測試。對于PC 端的CPU 而言,由于CPU 沒有對MAC 計算進行專門的加速處理,可能是由于內部IO 增加,CPU 的算力表現會隨著卷積核的增大而逐步減少。

PC 端CPU VGG_notop FP32 算力對比如圖5 所示:

圖5 PC端CPU VGG_notop FP32算力對比

而在移動終端上,由于各芯片廠商的AI 加速方案差異較大,因此我們實驗對比的高通驍龍和海思麒麟的AI 加速芯片在不同卷積核下的算力表現趨勢并不一致。高通的兩款芯片驍龍855 和驍龍865,并不能很好地支持7×7 以上的卷積核,整體算力表現趨勢大致與CPU 類似。

高通驍龍的芯片VGG_notop_conv 算力對比如圖6 所示:

圖6 高通驍龍的芯片VGG_notop_conv算力對比

麒麟990 芯片對于7×7 以上的卷積核都能運行,在MAC 值增加的情況下算力也能保持上升趨勢,但上升態勢漸趨平緩。

麒麟990 芯片INT8 與FP16 下VGG_notop_conv 算力對比如圖7 所示:

圖7 麒麟990芯片INT8與FP16下VGG_notop_conv算力對比

從對比可見,各芯片廠商針對不同卷積計算的優化策略也不相同。當前采用7 對比以上卷積核的模型在移動端并不常見,出于模型通用性和測試一致性的考慮,采用上文所述的VGG_notop 作為基準算力評測模型是合適的?;赩GG_notop_convN(N=5,7,9,11……)的算力測試結果可作為參考,反映被測芯片的潛在算力峰值以及它對卷積核算子的支持程度。

(4)INT8 和FP16 的算力表現

相較于PC 端中常使用的FP64 或FP32 模型,在移動端部署的DNN 模型的參數一般需要壓縮。FP16 和INT8是其常用的兩種數據格式。

兩種數據類型的DNN 模型在推斷表現上有各自的優勢。由于數據信息折損較少,FP16 浮點模型在準確率方面常有更好的推斷表現。而INT8 模型則會有更快的推斷速度,因此在算力表現上會更好。當然,將FP16 和INT8 兩種模型直接進行算力比較并不可取,因為它們的性質不同且模型的準確率也不相同,圖8 對比了三款芯片的FP16和INT8 算力表現,可以看出驍龍855 和865 芯片基本上沒有浮點運算的加速能力(其浮點運算能力來自于CPU 和GPU),而麒麟990 二者兼有,這是由各家廠商對端側AI芯片選擇了不同的技術路線造成的。

圖8 FP16與INT8芯片算力對比

在實際應用中,模型數據類型的選擇常取決于特定的任務以及設備功耗上的要求。對于高精度訓練和推斷的應用場景來說,浮點模型是更好的選擇;而對于純推斷以及低功耗、低RAM 的設備,INT8 模型則更勝一籌。因此,在移動終端芯片的算力評測中,我們考慮的是兩種數據類型的DNN 模型各自的算力表現。

3 AIT算力評測實踐

3.1 評測方法

算力評測的過程主要測量的是VGG_notop 網絡對一張圖片做特征提取所需的時間,而后基于已知的模型MAC值,通過式(1)得到峰值算力結果。同時,為防止芯片一味追求高算力而忽略功耗,單位能耗算力將作為輔助指標,反映芯片在高計算量下的功耗性能。

在手機終端上運行AIT 軟件進行算力評測,需要將預訓練的32 位浮點DNN 模型量化為FP16 或INT8 DNN模型。采用VGG19_notop_INT8 和VGG19_notop_FP16進行算力評測,該模型實際上為ImageNet 圖片集的特征提取器。模型的輸入集為已經過預處理的1 000 張大小為224×224 的BGR 圖片,輸出集為相應的大小為7×7×512 的特征。圖片的推斷時間通過在模型輸入、輸出兩端打點的方式得到。同時,為了檢查芯片在跑分測試中可能發生的作弊行為,還需要考慮對VGG_notop 輸出集進行校驗。

3.2 實驗數據

我們依據本文介紹的測試方法,評估了近兩年主流手機終端配備的AI 芯片算力,INT8 和FP16 的算力表現如表3 所示。

表3 中高端AI手機芯片算力評測結果

從實驗數據中可知,當代移動終端AI 芯片的算力水平提升迅速,在不考慮能耗限制時中高端芯片的算力差距較大,但是受限于移動終端的體積、電源等,中高端芯片的單位能效算力表現差距并不明顯。在絕對算力日漸過剩的趨勢下,提高單位能效算力是芯片廠商需要努力的方向。

4 結束語

經過以上分析和實驗可以看出,當前AI 芯片主要是對卷積計算做了加速,算力評測以卷積運算的加速為主,因此,使用VGG_notop 來評估移動終端的算力是合適的,但是受限于上層數據的吞吐,評測結果距離廠商宣傳的理論算力相差較大,如果要更加接近,需要廠商直接開放底層MAC 單元的輸入輸出接口直接針對特定硬件單元進行評測。

由于VGG_notop 模型經過剪裁,其輸出已經不能簡單地用圖像分類結果,經過量化的模型與原始浮點模型在算力輸出集驗證也是必需的,合適的校驗方法可以有效地識別芯片是否使用了如跳幀處理等不正當算力優化手段,針對這一問題,我們將在未來進一步開展研究和實驗。

猜你喜歡
算力評測運算
基于網絡5.0的重疊網形態算力網絡
衛星通信在算力網絡中的應用研究
中國電信董事長柯瑞文:算力成為數字經濟的主要生產力
重視運算與推理,解決數列求和題
基于SiteAI算力終端的交通態勢感知系統
次時代主機微軟XSX全方位評測(下)
次時代主機微軟XSX全方位評測(上)
有趣的運算
攻坡新利器,TOKEN VENTOUS評測
Canyon Ultimate CF SLX 8.0 DI2評測
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合