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

歡迎訪問 生活随笔!

生活随笔

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

生活经验

MLIR多级中间表示概述

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

MLIR多級中間表示概述

MLIR項目是構建可重用和可擴展的編譯器基礎設施的一種新方法。MLIR旨在解決軟件碎片化問題,改進異構硬件的編譯,顯著降低構建特定領域編譯器的成本,并幫助將現有編譯器連接在一起。

More resources

有關MLIR的更多信息,請參見:

LLVM論壇的MLIR部分有任何問題。

LLVM不一致服務器MLIR通道的實時討論。

之前的會談。

另請參閱TensorFlow MLIR SIG,它每周組織一次關于MLIR的公眾“公開設計會議”。

What is MLIR for?

MLIR旨在成為一個混合IR,它可以在一個統一的基礎設施中支持多種不同的需求。例如,這包括:

表示數據流圖的能力(例如在TensorFlow中),包括動態形狀、用戶可擴展的算子生態系統、TensorFlow變量等。

通常在這種圖上進行的優化和轉換(例如在Grappler中)。

以適合優化的形式表示ML算子的內核。

能夠跨內核托管high-performance-computing-style高性能計算風格的循環優化(融合、循環交換、并行tiling等),并轉換數據的內存布局。

代碼生成“降低”轉換,如DMA插入、顯式緩存管理、內存平鋪和一維和二維寄存器架構的矢量化。

能夠代表target-specific目標的算子,例如accelerator-specific high-level加速器特定的高級算子。

在深度學習圖上進行的量化和其他圖形轉換。

MLIR是一種通用的IR,它還支持特定于硬件的操作。因此,對圍繞MLIR的基礎結構的任何投資(例如,在其上工作的編譯器通行證)都應該產生良好的回報;許多目標可以使用該基礎結構并從中受益。

MLIR是一個強大的代表,但它也有非目標。不支持低級機器代碼生成算法(如寄存器分配和指令調度)。它們更適合于較低級別的優化器(如LLVM)。而且,不希望MIIR是最終用戶自己編寫內核(類似于CUDA C++)的源語言。另一方面,MLIR為表示任何此類DSL并將其集成到生態系統中提供了主干。

編譯器基礎結構

在建立MLIR時,受益于從構建其他IRs(LLVM IR、XLA HLO和Swift SIL)中獲得的經驗。MLIR框架鼓勵現有的最佳實踐,例如編寫和維護IR規范,構建IR驗證器,提供將MLIR文件轉儲并解析為文本的能力,使用FileCheck工具編寫大量的單元測試,以及將基礎結構構建為一組可以以新方式組合的模塊化庫。

其它的優點也被巧妙地融入到設計中。例如,LLVM存在一些不明顯的設計錯誤,這些錯誤會阻止多線程編譯器同時處理LLVM模塊中的多個函數。MLIR通過限制SSA作用域來減少使用def鏈,并用顯式符號引用替換跨函數引用來解決這些問題。

總結

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

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