論文地址:https://arxiv.org/pdf/1910.06663v1.pdf
AI Benchmark 官網:http://ai-benchmark.com/index.html
過去兩年,移動 AI 加速器的效能一直在快速提升,每出現一代新的系統級晶片(Soc),效能就會提升近兩倍。當前的第四代移動 NPU 效能已經接近不久前英偉達推出的 CUDA 相容顯示卡效能,並且加之以移動深度學習框架效能的提升,第四代 NPU 甚至可以在移動裝置端上執行復雜和深度 AI 模型。
在本文中,來自蘇黎世聯邦理工學院、谷歌研究院和華為、高通、三星、聯發科、紫光展銳等多家移動端晶片廠商的研究者評估並對比了高通、海思、三星、聯發科和紫光展銳為 AI 推理提供硬體加速的晶片組的效能結果。此外,他們還探討了安卓 ML pipeline 近來的變化,概述了深度學習模型在移動端裝置上的部署情況。
下圖 1 展示了多款 AI 加速晶片的效能資料。從圖中可以大致看出,麒麟 990(5G 版)的 AI 效能已經達到高通驍龍 855+的三倍,效能甚至接近常見雲服務 GPU 英偉達 Tesla K80 的四分之三。
圖 1:移動端 AI 加速器的效能演變。
AI Benchmark 的官方網站還給出了多款移動裝置的 AI 基準測試結果:華為 Mate 30 Pro 5G 版以 76206 的得分高居 AI 效能排行榜首,排名前五均為華為或子品牌榮耀手機,如 Honor 20s 等。而且,除了排在第六位的華碩 ROG Phone II,其他移動端裝置的 AI 得分均低於 30000。讀者還可以根據官網提供的方式下載app,測試自己的手機AI跑分。
移動裝置 AI 效能排行榜。
智慧手機上的深度學習
在之前的論文中,研究者中已經描述了 2018 年 9 月以前的深度學習移動端生態系統狀態。過去一年出現的變化符合人們的預期。谷歌已經完全捨棄了 TensorFlow Mobile 框架,轉而支援 TensorFlow Lite,後者的 CPU 後端呈現顯著提升,並且支援很多新的功能選項。但是,TFLite 依然缺少一些重要的深度學習運算元,尤其是用於諸多 NLP 模型的運算元。所以,TensorFlow Mobile 框架依然適用於複雜的架構。不支援的模型最近也新增了一個功能選項,即使用包含標準 TensorFlow 運算元(尚未新增到 TFLite)的 TensorFlow Lite 外掛。即便如此,該外掛的大小(40MB)甚至大於 TensorFlow Mobile 庫的大小(20MB)。
論文連結:https://arxiv.org/pdf/1810.01109.pdf
雖然去年提出的一些 TensorFlow Lite 問題在當前版本中得到了解決,但研究者依然建議謹慎使用。此外,安卓深度學習生態系統的另外兩項重要變化是引入了 TensorFlow Lite delegates 和神經網路 API 1.2,有關細節請參見論文。
AI Benchmark 3.0
AI Benchmark 應用於 2018 年 5 月首次推出,目的是測試不同移動端裝置上的 AI 效能。AI Benchmark 第一版(1.0.0)包含大量的典型 AI 任務和深度學習架構,並且測試相應 AI 模型的執行時間和記憶體消耗。
第 3 版 AI Benchmark 包含一個新的模組化架構和很多重大更新。測試任務數量由 11 項增加至了 21 項,如準確性檢查、新任務和網路、PRO 模式和更新後的評分系統。
圖 10:PRO 模式下的測試選項和結果。
深度學習測試
實際的 AI Benchmark 版本(3.0.2)包含 11 個測試選項和 21 種測試。這些測試中執行的網路展示了當前可以部署到智慧手機上的最流行和常用的深度學習架構。
下表 1 總結了基準測試中所有深度學習架構的細節:
AI Benchmark 的網路輸出可檢視如下圖 8 所示:
圖 8:深度學習測試中向使用者展示的樣例結果可檢視。
評分系統
AI Benchmark 主要集中在以下幾項測試類別的效能,包括 int-8、浮點-16、 浮點-32、並行、CPU(int-8 和浮點-16/32)、記憶體和模型初始化時間。版本 3.0.0 到 3.0.2 之間的評分系統是相同的。各測試類別的貢獻如下圖所示:
每個測試類別的得分被計算為該類別測試結果的幾何平均數。計算得出的 L1 誤差用於懲罰執行 NNAPI(應用指數 1.5 的指數罰函式)網路的執行時間。記憶體測試結果對最總分數具有懲罰貢獻,如下圖 9 所示。每種測試的歸一化係數基於當前 SoC(高通驍龍 855、麒麟 980、三星獵戶座 9820 和聯發科 Helio P90)的最佳結果進行計算。
圖 9:測試結束後的 Benchmark 結果。
Benchmark 結果
在過去的一年裡,移動 AI 加速器的效能顯著提高,研究者決定將桌上型電腦中用於訓練/執行深度學習模型的 CPU 和 GPU 也加入比較。這可以幫助我們瞭解移動 AI 晶片的發展程度,也可以幫助開發者評估模型在智慧手機和桌上型電腦上執行時間的差別。在這一部分,研究者展示了在 2 萬多個移動裝置上得到的基準測試量化結果,詳細討論了這些晶片在浮點或量化模型中提供的硬體加速。在移動 SoC 上得到的浮點和量化推理結果見表 2 和表 3。有關智慧手機的結果見表 4.
浮點效能
2019 年 9 月末,浮點效能最好的公開結果來自麒麟 970。在過去的一年裡,移動晶片的效能得到了顯著提升:即使不考慮幾種軟體最佳化,浮點執行的速度也提高了超過 7.5 倍(見下表 2)。去年秋天釋出的驍龍 855、海思麒麟 980、聯發科 Helio P90 和獵戶座 9820 大大最佳化了浮點模型的推理時間,已經接近了幾款英特爾 8 核 CPU(如英特爾酷睿 i7-7700K / i7-4790K)和英偉達入門級 GPU 的效能,而今夏釋出的幾款第四代 AI 加速器(Unisoc Tiger T710、麒麟 810、990)效能再攀新高。
麒麟 990 已經接近 GeForce GTX 950(英偉達 2015 年推出的一款中端桌上型電腦顯示卡)的效能,而且已經顯著超越英特爾的一款旗艦晶片——酷睿 i7-9700K CPU(Coffee Lake 系列)。這是移動裝置的一個重要里程碑,意味著即使不做任何特殊的修改,它們也可以提供足以支撐許多標準深度學習模型執行的效能。雖然這在簡單的影像分類網路上可能並不明顯,但對於非常消耗算力的幾個影像、影片處理模型而言,這一提升舉足輕重。
比較基於 GPU 和 NPU 方法得到的結果是一個有趣的話題。在第三代深度學習加速器(驍龍 855、海思麒麟 980、聯發科 Helio P90 和獵戶座 9820)中,它們的效能相差無幾,但帶有超頻 Adreno 640 的驍龍 855Plus 要比其他晶片的效能高出 10-15%。然而,目前還不清楚這種情況是否會持續下去:為了達到第四代 NPU 的效能水平,GPU 的 AI 推理速度需要提升 2-3 倍。如果不對微架構做出重大調整,這一提升將很難實現,整個顯示卡工作流程也會受到影響。因此,所有主流的晶片製造商似乎都將在下一代 SoC 中轉向專用的神經處理單元。
使用中端(如 Mali-G72 / G52、Adreno 610 / 612)或老一代 GPU(如 Mali-T880)來加速深度學習推理無法得到理想結果。入門級 GPU 甚至會得到更壞的結果,因為它們本身存在額外的計算限制。然而,我們應該注意到,在推理功耗方面,GPU 只有 CPU 的 1/2 到 1/4。因此,就整體能源效率而言,GPU 可能仍然佔有優勢。
表 2:在移動 SoC 上得到的浮點網路推理時間。
最後要說的一點是預設 Arm NN OpenCL 驅動程式的效能。不幸的是,它們無法釋放 Mali GPU 的全部潛能。因此,與擁有類似 GFLOPS 效能的 GPU 相比,前者有著非典型的高推理時間。如果使用定製供應商的實現版本,它們可以在許多深度學習架構上實現 10 倍的速度提升。例如,如果使用三星自己的 OpenCL 驅動,搭載 MaliG76 MP12 的獵戶座 9820 的總體效能可以從 6% 提高到 26%。
量化效能
在今年的量化推理效能排名(如下表 3)中,Hexagon 賦能的高通驍龍 855+晶片以及只有單 NPU 的 Unisoc Tiger T710 排名前兩位,海思麒麟 990 屈居第三。其中,前兩名晶片在所有 int-8 測試中的結果幾乎相同,並且速度稍快於(15-20%)其後的麒麟 990、聯發科 Helio P90 和標準驍龍 855。據高通宣稱,Hexagon 690 DSP 的效能幾乎是上一代 Hexagon 685 的兩倍。目前,Hexagon 685 以及之後的 Hexagon 686 和 688 出現在高通的終端晶片組上。
由於移動端 GPU 主要設計用於浮點計算,因此利用它們加速量化 AI 模型在很多情況下的效率都不是很高。其中,具有 Mali-G76 MP12 顯示卡和三星定製 OpenCL 驅動程式的 Exynos 9825 獲得了最佳結果,其整體效能與 Hexagon 685 DSP(在高通驍龍 710 中)相當。值的注意的是,這兩個晶片的推理結果高度依賴於執行模式。具有 Mali-G72 MP3 GPU 的 Exynos 的中端 SoC 的效能低於高通驍龍 835 晶片組的 CPU,其效能與具有 Mali-T880 MP12 顯示卡的 Exynos 8890 相當。最近推出的移動端 SoC 可以觀察出 CPU 之間更大的效能差異。所以,在中低端移動裝置上利用 GPU 來進行量化推理或許僅在獲取更高的功率效率上是合理的。
表 3:為 int-8 模型提供硬體加速的移動端 SoC 上獲得的量化網路推理時間。
表 4:部分安卓手機的 Benchmark 結果,完整版見:http://ai-benchmark.com/ranking
進一步探討
移動 AI 硬體的巨大進步是有目共睹的,和第二代 NPU(例如和 Snapdragon 845 和 Kirin 970 SoC 的 NPU)相比,浮點計算速度提升了 7.5 倍,量化推理速度提升了 3.5 倍,從而給智慧手機帶來更強大的 AI 功能。過去一年間所有旗艦款的 SoC 與入門級支援 CUDA 的桌上型電腦 GPU 及高階 GPU 相比,效能表現持平或者更佳。第四代 AI 晶片展現出了頗為理想的結果,這就意味著接下來的兩三年裡,所有中高階晶片組會有足夠的實力去執行學界和業界的絕大多數標準深度學習模型。相應地,這也會促使更多面向移動裝置的 AI 專案成為機器學習模型部署的主要平臺。
談到智慧手機執行 AI 演算法所需的軟體堆疊,這種進步與其說是革命性的,不如說是進化中的。目前只有一個深度學習庫——TensorFlow Lite,能實現高階功能和易用性,同時又擁有人數眾多的開發者社群。也就是說,這個新版本中的嚴重錯誤數量使其暫時還不能應用到任何商業化專案或者非標準 AI 模型當中去。最新的 TensorFlow Lite 也許能夠用於解決現有問題,還允許 SoC 供應商為 NNAPI 驅動提供 AI 加速器。強烈建議研究人員像 TFLite 一樣去設計自己的 AI engines,對於所有使用 TensorFlow 的開發者來說,這是一種最簡單易行的方法,同時也可以將當前的 TFLite GPU 和 GPU 後端做個直接對比。研究者希望明年能夠釋出更多解決方案和移動庫,讓智慧手機部署深度學習模型這件事變得更加普及廣泛。
與此前一樣,研究者打算定期釋出 benchmark 報告,來展示 AI 加速器在移動端裝置的實際狀態、機器學習領域的變化以及 benchmark 所作出的相應調整變化。AI Benchmark 的最新結果及實際測試情況每個月都會在專案網站上更新。另外,如果遇到技術問題或是其他問題,可以隨時聯絡本文的前兩位作者。