日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

多级中间表示概述MLIR

發布時間:2023/11/28 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多级中间表示概述MLIR 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多級中間表示概述MLIR
MLIR項目是一種構建可重用和可擴展的編譯器基礎結構的新穎方法。MLIR旨在解決軟件碎片,改善異構硬件的編譯,顯著降低構建特定于域的編譯器的成本以及幫助將現有編譯器連接在一起的問題。
要引用MLIR,請使用this Arxiv publication 。
更多資源
有關MLIR的更多信息,請參見:
? LLVM論壇的MLIR部分中有 任何問題。
? LLVM不和諧 服務器的MLIR通道上的實時討論 。
? 以前的 talks 。
另請參閱 TensorFlow MLIR SIG ,該組織每周組織一次有關MLIR的公開“開放設計會議”。如果想討論特定主題或有疑問,請將其添加到 議程文檔中 。有關如何加入會議的詳細信息,請參閱議程文檔。
MLIR是做什么用的?
MLIR旨在成為一種混合IR,它可以在統一的基礎架構中支持多種不同的需求。例如,這包括:
? 表示數據流圖的能力(例如在TensorFlow中),包括動態形狀,用戶可擴展的op生態系統,TensorFlow變量等。
? 通常在此類圖上進行優化和轉換(例如在Grappler中)。
? 以適合于優化的形式表示ML操作的內核。
? 能夠承載跨內核的高性能計算風格的循環優化(融合,循環交換,平鋪等),并能夠轉換數據的內存布局。
? 代碼生成“降低”轉換,例如DMA插入,顯式緩存管理,內存平鋪以及針對1D和2D寄存器體系結構的矢量化。
? 表示特定于目標的操作的能力,例如特定于加速器的高級操作。
? 在深度學習圖上進行量化和其它圖轉換。
MLIR是一種常見的IR,也支持特定于硬件的操作。因此,對MLIR周圍基礎架構的任何投資(例如,編譯器對其進行的工作都應通過)應產生良好的回報;許多目標可以使用該基礎架構,并從中受益。
MLIR是強大的表示形式,但也有非目標。不嘗試支持低級機器代碼生成算法(例如寄存器分配和指令調度)。更適合較低級別的優化器(例如LLVM)。另外,不希望MLIR成為最終用戶自己將內核編寫為內核的源語言(類似于CUDA C ++)。另一方面,MLIR提供了代表任何此類DSL并將其集成到生態系統中。
編譯器基礎架構
在構建MLIR時,受益于從構建其它IR(LLVM IR,XLA HLO和Swift SIL)獲得的經驗。MLIR框架鼓勵現有的最佳實踐,例如編寫和維護IR規范,構建IR驗證程序,提供將MLIR文件轉儲和解析為文本,使用FileCheck 工具編寫廣泛的單元測試 以及將基礎結構構建為一組的能力。可以以新方式組合的模塊化庫。
其它內容已經以微妙的方式整合到設計中。例如,LLVM具有非顯而易見的設計錯誤,這些錯誤阻止多線程編譯器同時處理LLVM模塊中的多個功能。MLIR通過限制SSA范圍以減少use-def鏈,并通過用explicit替換跨函數引用來解決這些問題 symbol reference 。

總結

以上是生活随笔為你收集整理的多级中间表示概述MLIR的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。