1、什么是MLIR
MLIR:Multi-Level Intermediate Representation 多级中间表达
- LLVM下的子项目
- 编译器基础框架
- 统一IR格式,提高通用性和可复用性
- 自带Tensor类型,目前主要用于深度学习领域
中间表达 IR(Intermediate Representation)编译器在编译阶段中形成的中间代码,复杂度通常介于高级语言与低级机器码之间
Dialect 为实现多层IR的核心
- Prefix :命名空间
- Operations :一系列的操作,每个操作对应深度学习模型中的单个算子(e.g, ConvOp)
- Passes :Dialect内的转换(e.g Top层的图优化)、Dialect间的转换(e.g, Top层lower到Tpu层)
2、MLIR实现方式
3、MLIR基本概念
- ModuleOp
- FuncOp
- Block
其次还包括如下概念
-
Opertation
-
Value
-
Type
-
Attribute
定义特定OP的属性