ONNX MLIRのDialect調査
ONNX MLIRに含まれるDialectとその変換パスを調査。 Dialectの変換はソースコードの以下に存在。
Dialect一覧
ONNX MLIRには以下のDialectが含まれている。
- ONNX Dialect
- Krnl Dialect
- Handshake Dialect
- StaticLogic Dialect
- LLHD Dialect
その他、MLIRでデフォルトで定義されているDialectとして以下がある。
- Affine Dialect
- Standard Dialect
- LLVM Dialect
Dialect変換パス
{{< figure src=“/posts/2020-08-08-onnx-mlir-conversion-diagram.png” width=“100%” height=“100%” link=“/posts/2020-08-08-onnx-mlir-conversion-diagram.png”>}}
ONNXモデルをLLVM IRを生成する流れは、
- ONNX parserでONNXモデルからONNX Dialectへ変換し、
- ONNX DialectからKrnl Dialectへ変換、
- Krnl DialectからLLVM Dialectへ変換し、
- 最後にLLVM DialectからLLVM IRを生成する