創造智能需要大量數據。所有這些數據都需要能夠支持它的技術。
就人工智能 (AI) 而言,這些技術包括大量直接訪問的高速內存;能夠同時處理同一數據集的不同部分的并行計算架構;并且有點令人驚訝的是,與許多其他應用程序相比,計算精度更低。數據中心可以提供幾乎無窮無盡的這種技術組合。
因此,人工智能開發工具是為互聯網查詢、語音搜索和在線面部識別等應用程序背后的數據中心基礎設施而設計的。但隨著人工智能技術的進步,在各種用例中利用它的愿望也在增加——包括那些在小型、資源受限、基于 MCU 的邊緣平臺上運行的用例。因此,例如,編譯器等工具還必須能夠針對占用空間更小的設備優化 AI 數據和算法,而不是僅僅關注運行基于云的推薦系統的高端硬件加速器。
Facebook 的開源機器學習編譯器 Glow 就是這種工具演變的一個例子。它使用兩階段中間表示 (IR) “降低”神經網絡圖,該中間表示生成針對各種嵌入式和服務器級硬件目標的特性和內存進行專門調整的機器代碼(圖 1)。它還執行提前 (AOT) 編譯,最大限度地減少運行時開銷,以節省磁盤空間、內存、啟動時間等。
圖 1. Glow 高級中間表示中的降低計算圖表示 A 的回歸,該回歸由 Glow 自動區分。
“我們擁有這個非常高性能的運行時,但很多項目并不關心,因為它們不在數據中心內,”Facebook 的研究科學家 Jordan Fix 解釋道。“他們需要做 AOT 編譯,盡可能地縮小,使用量化和并行化,并且沒有太多的依賴關系。
“AOT 編譯在數據中心并不那么重要,但我們可以將 LLVM 后端連接到 Glow 并針對 x86、Arm、RISC-V 和專用架構,”Fix 繼續說道。“Glow 的工作方式是你有幾個級別的 IR,它們使用高級優化和量化來限制內存。那時,編譯器后端可以接受基于指令的 IR,并根據需要對其進行優化和編譯。”
Glow 的另一大優勢,特別是在多樣化的嵌入式技術領域,是能夠在簡單的 C 包裝器中編譯模型。這意味著嵌入式 AI 工程師可以針對他們選擇的編譯器后端和架構優化 Glow。它本機支持來自流行 AI 框架和庫(如 PyTorch 和 Arm 的 CMSIS-NN)的輸入,還可以通過 ONNX 神經網絡交換接受來自 TensorFlow 等環境的圖形。
AI 編譯器的競爭
當然,Glow 并不是唯一可用的神經網絡編譯器。Google 的多級中間表示 (MLIR) 是一種編譯器基礎架構,專注于張量處理器,已被 LLVM 吸收。Microsoft 的嵌入式學習庫 (ELL) 是另一個用于資源受限的 AI 設備的交叉編譯工具鏈。
然而,Glow 比任何一個都更成熟,已于 2018 年開源。它也比許多現有的 AI 編譯器選項更高效。
在 i.MX 跨界 MCU 的性能測試中,恩智浦系統工程師使用 TensorFlow Lite 和 Glow 編譯了 32 x 32 CIFAR-10 數據集,并將它們輸入 RT1060、RT1170 和 RT685 設備。Glow 編譯的輸入表現出至少 3 倍幀/秒的性能提升,而圖 2 讓您了解 AOT 編譯與 TensorFlow/TensorFlow Lite 框架中使用的即時 (JIT) 編譯相比的效率如何。
圖 2a 和 2b。與 TensorFlow Lite 等即時 (JIT) 編譯器相比,Glow 的提前 (AOT) 編譯器可節省大量 RAM 和閃存,同時還具有顯著的每秒幀數性能優勢。
請記住,i.MX1060 具有高達 1 MB 的片上 RAM。NXP 的 eIQ 軟件開發環境支持 Glow。
開源人工智能:看不到終點線
人工智能技術市場瞬息萬變,這使得開發組織很難致力于任何技術。這可能是 Glow 最引人注目的方面之一,它甚至與技術沒有直接關系。
作為一個擁有 130 多個活躍貢獻者的開源項目,Facebook、英特爾等大型組織繼續對 Glow 主線做出承諾,因為它們現在依賴于其通用基礎設施來訪問指令、操作符、內核等。
然后,很明顯,開源具有內在價值。
“我們經常看到我們關心的外部用戶的貢獻,比如更通用的并行化框架,我們有很多他們正在運行的機器學習模型,”Fix 說。“所以也許它可以讓他們在我們無需做任何事情的情況下獲得對運營商的支持。“我認為您正在研究這個特定的計算機視覺模型”或者,“我認為這是您所說的操作員。” 他們只是審查它并移植它并登陸它。
“我們都可以從彼此在傳統開源框架中的工作中受益,”他補充道。
審核編輯:郭婷
-
Facebook
+關注
關注
3文章
1429瀏覽量
54658 -
人工智能
+關注
關注
1791文章
46896瀏覽量
237670 -
編譯器
+關注
關注
1文章
1618瀏覽量
49057
發布評論請先 登錄
相關推薦
評論