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