MLIR
このスライドでMLIRなるものを知った
引用・参考
MLIRとは、Multi Layer Intermediate Representationの略である。ザクッというと、コンパイラのどの段階でも使える中間表現フレームワークである。このフレームワークが登場した理由は、深層学習の流行により様々なコンパイラが登場している。それらのコンパイラはそれぞれスクラッチから作られているため、作成に工数もかかり、品質もばらばらであった。この問題を解決するべく登場した。
LLVM IRのみでは表現に限界が来ていて、各言語はいきなりLLVM IRに変換せず中間表現を経由する

また、近年では深層学習のためのグラフコンパイラもそれぞれ独自に開発しているので二度手間
MLIRはそのような独自IRの代わりになるものでLLVM IRの前段階のIRとなる規格.
MLIRは組み込みのオペレーションがなく、全てのopsはPassによって処理される.
Pymlir
Only PythonでMLIRをアレコレできるライブラリ, LLVMにもMLIRにも依存していない.
FHE into MLIR な論文
MLIR Tutorial
「MLIRにはビルトインのオペレーションが存在しない。PassによってUnknownなオペレーションが処理されることを期待している。」
型システムとしては「スカラ」「ベクトル」「テンソル」などを定義することができる。
オペレーションには常にopcodeとソースの該当するlocation情報が入っている。
命令にはSSAのresultsとoperands、Attributes、Block operands、Regionsなどの情報が入っている。
まさに求めていたものだ.
-
A Programming Language for FHE implemented as MLIR
-
(ソースコードメモ)UbuntuでMLIR入門 - Qiita
- ToyAST → MLIR → LLVM IR → Machine Code
2022-02-02
mlir
Generic DAG Rewriter Infrastructure Rationale - MLIR
vectorize llvm
Code Generation and Autovectorization with LLVM - Seminar Automation, Compilers, and Code-Generation
multiprocessor
Generalized multiprocessor scheduling for directed acyclic graphs | IEEE Conference Publication | IEEE Xplore