TVM
完整的编译器框架,包含Auto Tune自动优化机制。自成体系。
MLIR
MLIR则是编译器基础设施类软件(可以看做机器学习时代的LLVM),面向的是需要构建自定义编译器的用户,它的基本设想是通过MLIR的Dialect共享生态减少用户开发编译器的工作量。依赖生态。
MLIR的设想虽然非常好,但具体实现方面MLIR框架并没有直接解决上面列出的问题,而是把问题摊派给了加入MLIR生态的用户们:
- TensorFlow/Onnx/Torch等IR转为MLIR的Translation工作(入口工程),需要各框架团队以及开源社区支持
- Dialect之间并不天生支持完美切换,用户有需要时需要自行定制开发,然后根据个人意愿开源
- Translation工程、Conversion工程都有可能因为上游IR版本变动引入新bug,也就是上游项目变动需要几何级数的下游项目联动
- 总之,MLIR的设想虽然很棒,但在其生态完全爆发前,其工程开发总量也会很惊人。