谷歌全面開源 MLIR 及生態聯盟,全球 95% 的加速器硬體都在使用
雷鋒網 AI 開發者按:近日谷歌宣佈,向非盈利性 LLVM 基金會提供今年 4 月開源的 Multi-Level Intermediate Representation(MLIR)架構,一個與 TensorFlow 緊密結合的表示格式和編譯器實用工具庫,該架構介於模型表示和低階編譯器/執行器(二者皆可生成硬體特定程式碼)之間。谷歌希望通過向社會提供該架構來激勵更多的創新,從而進一步加速 AI 領域發展。雷鋒網 (公眾號:雷鋒網) AI 開發者將 MLIR 的詳細內容及谷歌相關報導整理編譯如下。
MLIR 與 TensorFlow 的淵源
在過去,若想解決多級別堆疊問題,則需要我們構建新的軟硬體堆疊生成器,這也意味著必須為每個新路徑重新構建優化與轉換傳遞。
TensorFlow 生態系統包含許多編譯器和優化器,可在多個級別的軟硬體堆疊上執行。作為 TensorFlow 的日常使用者,在使用不同種類的硬體(GPU、TPU、移動裝置)時,這種多級別堆疊可能會表現出令人費解的編譯器和執行時錯誤。
圖 1 TensorFlow 元件概述
TensorFlow 能夠以多種不同的方式執行,如:
-
將其傳送至呼叫手寫運算核心的 TensorFlow 執行器
-
將圖轉化為 XLA 高階優化器(XLA HLO)表示,反之,這種表示亦可呼叫適合 CPU 或 GPU 的 LLVM 編輯器,或者繼續使用適合 TPU 的 XLA。(或者將二者結合)
-
將圖轉化為 TensorRT、nGraph 或另一種適合特定硬體指令集的編譯器格式
-
將圖轉化為 TensorFlow Lite 格式,然後在 TensorFlow Lite 執行時內部執行此圖,或者通過 Android 神經網路 API(NNAPI)或相關技術將其進一步轉化,以在 GPU 或 DSP 上執行
但事實上,多級別堆疊的複雜性遠遠超過圖 1 所示。為了更好解決 TensorFlow 使用者在使用不同種類的硬體(GPU、TPU、移動裝置)時,由於多級別堆疊而導致的編譯器與執行時錯誤,我們開源了一個全新的中介碼與編譯器框架 MLIR。
什麼是 MLIR
MLIR(或稱為多級別中介碼)是一種表示格式和編譯器實用工具庫,介於模型表示和低階編譯器/執行器(二者皆可生成硬體特定程式碼)之間,在生產質量元件的支援下,能夠對優化編譯器設計與實現進行全新探索。
圖 2 谷歌 MLIR(相關 ppt 見文末)
MLIR 深受 LLVM 的影響,並不折不扣地重用其許多優秀理念,比如擁有靈活的型別系統,可在同一編譯單元中表示、分析和轉換結合多層抽象的圖等。這些抽象包括 TensorFlow 運算、巢狀的多面迴圈區域乃至 LLVM 指令和固定的硬體操作及型別。
為區分不同的硬體與軟體受眾,MLIR 提供「方言」,其中包括:
-
TensorFlow IR,代表 TensorFlow 圖中可能存在的一切
-
XLA HLO IR,旨在利用 XLA 的編譯功能(輸出到 TPU 等)
-
實驗性仿射方言,側重於多面表示與優化
-
LLVM IR,與 LLVM 自我表示之間存在 1:1 對映,可使 MLIR 通過 LLVM 發出 GPU 與 CPU 程式碼
-
TensorFlow Lite,將會轉換以在移動平臺上執行程式碼
每種方言均由一組存在不變性的已定義操作組成,如:「這是一個二進位制運算子,輸入與輸出擁有相同型別。」
MLIR 沒有眾所周知的固定或內建的操作列表(無「行內函數」),方言可完全定義自定義型別,即 MLIR 如何對 LLVM IR 型別系統(擁有一流彙總)、域抽象(對量化型別等經機器學習 (ML) 優化的加速器有著重要意義),乃至未來的 Swift 或 Clang 型別系統(圍繞 Swift 或 Clang 宣告節點而構建)進行建模。
另外值得一提的是,雖然 MLIR 充當 ML 的編譯器,但它同樣支援在編譯器內部使用機器學習技術。MLIR 的擴充套件性有助於探索程式碼降階策略,並在抽象之間執行逐步降階。
MLIR 開放的意義
機器學習現在的使用範圍非常廣泛,它可以在從包含 GPU 和 TPU 的雲基礎設施到行動電話,甚至是最小的硬體(例如為智慧裝置供電的微控制器)上執行。正是因為將硬體和開源軟體框架(如:TensorFlow)的優勢相結合,今天我們才能看到所有令人難以置信的 AI 應用成為可能。無論是預測極端天氣( https://www.youtube.com/watch?v=p45kQklIsd4 );幫助有語言障礙的人更好地溝通;還是協助農民檢測農作物疾病。
圖 3 AI 協助農民進行檢測( https://www.blog.google/technology/ai/ai-takes-root-helping-farmers-identity-diseased-plants/)
但隨著所有這些進展如此迅速,企業工廠方正在努力跟上不同的機器學習軟體框架與各種不斷增長的硬體組合。機器學習生態系統依賴於許多不同的技術,而這些技術通常具有不同的複雜程度,因而無法很好地協同工作。
管理這種複雜性的負擔最終落在了研究人員、企業和開發人員身上。通過減緩新的機器學習驅動產品從研究到實現的速度,這種複雜性將會影響我們解決具有挑戰性現實問題的能力。
今年早些時候,我們釋出了 MLIR,這是一種開源機器學習編譯器基礎架構,可以解決因軟體和硬體碎片不斷增加而導致的複雜性,並且可以更輕鬆地構建 AI 應用程式。它提供了新的基礎設施和設計理念,使得機器學習模型能夠在任何型別的硬體上一致地表示和執行。現在,我們宣佈我們會向非營利性 LLVM 基金會( http://llvm.org/foundation/ )提供 MLIR ,這也將使整個行業更快地採用 MLIR。
圖 4 MLIR 生態聯盟
MLIR 旨在成為 ML 基礎架構的新標準,並得到全球硬體和軟體合作伙伴的大力支援,包括 AMD,ARM,Cerebras,Graphcore,Habana,IBM,Intel,Mediatek,NVIDIA,Qualcomm Technologies,Inc,SambaNova Systems,Samsung,Xilinx 的小米——佔全球資料中心加速器硬體的 95%以上,超過 40 億部手機和無數的物聯網裝置。在谷歌,MLIR 正在整合並用於我們所有的伺服器和移動硬體工作。
機器學習已經走過了漫長的道路,但之後的路仍然很長。通過 MLIR,人工智慧將通過賦予研究人員更大規模地訓練和部署模型的能力,以及在不同硬體上具有更高的一致性、速度和簡單性,從而更快地推進該領域的發展。這些創新也可以迅速進入你每天使用的產品中,並在你的所有裝置上順利執行。我們也希望通過 MLIR 能夠最終實現 AI 對地球上的每個人都更有幫助、更有用的願望。
關於 MLIR 的 ppt:
http://llvm.org/devmtg/2019-04/slides/Keynote-ShpeismanLattner-MLIR.pdf
文章相關連結:
https://www.blog.google/technology/ai/mlir-accelerating-ai-open-source-infrastructure/
MLIR 開源地址:
https://github.com/tensorflow/mlir
https://www.leiphone.com/news/201909/IpdvVDNRUGj2rDuU.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2656899/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 谷歌員工聯合組建阿爾法全球的全球工會聯盟谷歌
- 綠盟科技加入openEuler 社群,助力開源生態建設
- HP cluster的硬體配置及使用
- 共建共享數字世界的根:阿里雲打造全面的雲原生開源生態阿里
- 全球最大航空聯盟星空聯盟全面使用AWS 將所有資料、平臺和關鍵業務應用遷移到AWS
- 微軟谷歌紅帽等企業加入保密計算聯盟 致力開源與雲安全微軟谷歌
- 騰訊安心生態聯盟正式成立 聯動夥伴開放技術助力“數字興農”
- System76 是如何打造開源硬體的
- MLIR中的多面體編譯 -- affine dialect編譯
- 雲上人和物聯科技加入龍蜥社群,攜手打造軟硬體服務生態
- 擁抱開源,共建生態 - 開源生態與效能提升專場 | CIF 精彩看點
- IPFS社群|Filecoin:生態全面鋪開需要時間
- DuerOS加速人工智慧生態,小度藍芽聯盟成立ROS人工智慧藍芽
- 智慧家居主戰場:小米生態鏈VS華為聯盟
- 自動駕駛終於出了第一個生態聯盟自動駕駛
- “開源軟體供應鏈”,可能是對開源生態的一次重要重構
- 利用 UMA 使硬體加速器可直接用於 TVM
- 95% 都是開源的,而在全球資料庫開源專案活躍度中,PingCAP 排名第三。資料庫PingCAP
- AI的生態圖景:模型、訓練資料、硬體和人員AI模型
- 開源生態發展合作倡議
- 聚勢啟新,KaiwuDB 生態聯盟沙龍首站落地長春AI
- 甘露生品牌聯盟系統開發技術部署
- 編譯器:TPU-MLIR環境構建及使用指南(一)編譯
- 攜手共建零信任生態,綠盟科技任零信任聯盟副理事長單位
- Google對Android的強硬態度:必須嚴格控制開源!GoAndroid
- 如何使用 開源硬體Banana PI BPI-R2's GPIO-sNaN
- 博士資源服務聯盟
- Apache ShardingSphere:由開源驅動的分散式資料庫中介軟體生態Apache分散式資料庫
- 谷歌開源的 GAN 庫–TFGAN谷歌
- 騰訊雲聯合多家生態夥伴,重磅開源 SuperEdge 邊緣容器專案
- 谷歌、阿里都在使用的dart程式語言,你學過沒?谷歌阿里Dart
- 江民科技攜手申威產業聯盟,打造信創安全生態產業
- 從AI加速器,看騰訊ToB生態的點、線與面AI
- 助力零信任生態新發展!派拉軟體任“零信任”聯盟理事單位成員
- Go 大資料生態開源專案 CDS 中 ClickHouse 使用的建表方案Go大資料
- Apache Pulsar 榮獲中國開源雲聯盟「2021 優秀開源專案」Apache
- Apache RocketMQ 榮獲 2021 中國開源雲聯盟優秀開源專案ApacheMQ
- 恭喜 KubeVela 獲得中國開源雲聯盟 2022 “優秀開源專案”