【Triton】 Writing an MLIR Pass 筆記

本文是整理下述官方影片的筆記
https://www.youtube.com/watch?v=etlFyqSsmL0
官方 slide https://drive.google.com/file/d/1YTGfJq-ccuVPH50r8ERnCrC977-4uzly/view

Triton Kernel

Triton ttir

經過 triton frontend 轉換上述的 add kernerl 後會出現的 ttir

執行步驟概觀

Pass 的目的是搜尋 IR 中符合 Pattern 的項目並且將其更換掉
成你需要的部分

  • Dialet
    • 用來使用 tablegen 產生 PASS 的名稱對應
  • OP
    • 撰寫實際要更換的 op 建立方式
  • PASS
    • 手動撰寫去遍歷 ir 中的 function 符合 pattern 的部分

建立 Custom Dialet

  • 宣告 Dialet
    可以手動繼承 mlir::Dialet
    或是用 tablegen tool 來產生範例

  • 實作 Operator
    用 tablegen tool 來產生範例

  • 使用 tablegen 用 td file 產生 PASS 樣板

  • 撰寫 PASS 內容

參考資料

https://aijishu.com/a/1060000000494418