Arm NN簡介


參考:https://zhuanlan.zhihu.com/p/208637508

參考:https://developer.arm.com/ip-products/processors/machine-learning/arm-nn?_ga=2.151853756.44767251.1597296174-1508087795.1589351508

 

Arm NN

Arm NN 是適用於 CPU、GPU 和 NPU 的推理引擎。 它彌合了現有 NN 框架和底層 IP 之間的差距。 它支持現有神經網絡框架(例如 TensorFlow 和 Caffe)的高效轉換,使它們無需修改即可在 Arm Cortex-A CPU、Arm Mali GPU 和 Arm Ethos NPU 上高效運行。

Arm NN 是免費的。

 

關於Arm NN SDK

Arm NN SDK是一套開源Linux軟件和工具,可在低功耗設備上實現機器學習工作負載。它在現有的神經網絡框架和高效能的Cortex-a CPU、Arm-Mali GPU和Arm-Ethos NPU之間架起了一座橋梁。

Arm NN SDK利用Compute Library盡可能高效地針對可編程內核,如Cortex-A CPU和Mali GPU。Arm NN不支持Cortex-M CPU

最新版本支持Caffe、TensorFlow、TensorFlow Lite和ONNX。Arm NN從這些框架中獲取網絡,將其轉換為內部Arm NN格式,然后通過Compute Library,將其有效地部署在Cortex-A CPU上,如果存在,則部署在Mali-G71和Mali-G72等Mali GPU上。

2018年9月,Arm將Arm NN捐贈給Linaro Machine Intelligence Initiative,該計划目前完全以開源方式開發。要了解更多信息,請訪問mlplatform.org

    

 

 


適用於 Android 的 Arm NN

也可以使用用於 NNAPI 的 Arm NN,這是 Google 用於在 Android 設備上加速神經網絡的接口,可在 Android O 中使用。默認情況下,NNAPI 在設備的 CPU 內核上運行神經網絡工作負載,但也提供了一個硬件抽象層 (HAL),它可以以其他處理器類型為目標,例如 GPU。適用於 Android NNAPI 的 Arm NN 為 Mali GPU 提供此 HAL。另一個版本增加了對 Arm Ethos-N NPU 的支持。
對 Android NNAPI 的 Arm 支持可將性能提升 4 倍。

在高層支持神經網絡推理的方式看似簡單。 首先,表示神經網絡及其相關權重的模型由應用程序或 ML 框架(例如 TensorFlow Lite)提供。 然后,Android NN 運行時執行調度以確定圖應如何運行——在 CPU 或任何已注冊以支持神經網絡計算的設備上。 在此之后,選定的設備——通常是 CPU 或 GPU,有時還有另一個加速器——將獲得要運行的模型。 最后,設備會將工作負載分解為關鍵操作,並在模型上運行推理過程,生成應用程序將使用的結果。

 

這看起來可能很簡單,但我們的軟件團隊已經投入了大量的工作,以使每個階段都能很好地運行——特別是當涉及到對Mali GPU和在CPU和GPU上運行的高度優化的operators的HAL和驅動程序支持時。這些都是Arm精心調整的,是Android NN的Google CPU后端的核心,也是通過Android NN HAL的GPU實現提供的Arm Mali GPU例程的核心。

支持卷積神經網絡所需的關鍵operators,隨時准備加速現有應用程序,並為部署新的應用程序開辟可能性。幸運的是,我們已經構建這些軟件組件很長時間了,所以當這個新API可用時,我們已經准備好了。

自宣布以來,Arm 和 Google 都在進行大量艱苦的工作,以確保在 Arm 平台上輕松實現高性能神經網絡推理。最終發布了針對 Cortex-A 的優化 CPU 算子,集成到谷歌的框架中,以及針對 Arm Mali GPU,以及運行它們的推理引擎。更重要的是,這些算子作為開源發布,並作為計算庫的一部分提供。

Arm 已經提供了對 32 位浮點的支持,我們的 NNAPI 版本改進了這種支持,將神經網絡計算速度提高了三倍。我們還致力於支持 8 位整數運算,當在大多數移動設備中已部署的 Mali GPU 上運行時,它的性能將是 fp32 的四倍。

此外,我們還在繼續努力增加對發布的更多 Arm CPU 和 GPU 的支持。例如,Cortex-A55 和 Cortex-A75 開始出現在產品中,我們將釋放新的 ARMv8.2 架構的強大功能,將 8 位卷積和矩陣乘法的性能提升 4 倍。

對於任何想要在 Arm 上部署卷積神經網絡的人來說,所有這些都是個好消息,因為它們總是量化到 8 位,精度幾乎與 32 位相同,但性能明顯更高。

除此之外,減少帶寬的額外好處以及內存子系統帶來的改進,無論您選擇哪種 Arm 平台,都能帶來更好的性能。

 

 

 

 

 

相對於其他 NN 框架的 Arm NN 性能

 

 

  • Arm NN 開源協作可實現最佳的第三方實施
  • 部署在多個生產設備中(>250Mu)

支持 Cortex-M CPU

TensorFlow Lite Micro 為 Cortex-M 微控制器提供機器學習支持。 通過CMSIS-NN可進行進一步優化,CMSIS-NN 是一組高效的神經網絡內核,旨在最大限度地提高性能並最大限度地減少神經網絡在 Cortex-M 處理器內核上的內存占用。

 

Arm NN 未來路線圖

Arm NN 的未來版本將支持其他機器學習框架作為輸入,以及其他形式的處理器內核作為目標。 這包括來自 Arm 合作伙伴的處理器內核和加速器,假設有合適的擴展可用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM