MLIR


このスライドでMLIRなるものを知った
引用・参考


MLIRとは、Multi Layer Intermediate Representationの略である。ザクッというと、コンパイラのどの段階でも使える中間表現フレームワークである。このフレームワークが登場した理由は、深層学習の流行により様々なコンパイラが登場している。それらのコンパイラはそれぞれスクラッチから作られているため、作成に工数もかかり、品質もばらばらであった。この問題を解決するべく登場した。
imageLLVM IRのみでは表現に限界が来ていて、各言語はいきなりLLVM IRに変換せず中間表現を経由する
imageimageまた、近年では深層学習のためのグラフコンパイラもそれぞれ独自に開発しているので二度手間
imageMLIRはそのような独自IRの代わりになるものでLLVM IRの前段階のIRとなる規格.
imageMLIRは組み込みのオペレーションがなく、全てのopsはPassによって処理される.

Pymlir


Only PythonでMLIRをアレコレできるライブラリ, LLVMにもMLIRにも依存していない.

FHE into MLIR な論文

MLIR Tutorial

watchlater

「MLIRにはビルトインのオペレーションが存在しない。PassによってUnknownなオペレーションが処理されることを期待している。」
型システムとしては「スカラ」「ベクトル」「テンソル」などを定義することができる。
オペレーションには常にopcodeとソースの該当するlocation情報が入っている。
命令にはSSAのresultsoperandsAttributesBlock operandsRegionsなどの情報が入っている。

まさに求めていたものだ.

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