MLIR 意思为:多级中间表示,是一种新的IR表示。MLIR 是 LLVM 项目的子项目。
MLIR 是一种新型的编译器框架,其设计中参考了已有的编译器优点,规避了一些缺陷。包括了中间表示的定义、转换以及优化等功能,极大地方便了新型编译器的开发和调试工作。同时,MLIR 也包含了很多现成的工具可直接使用(batteries included)。
MLIR 包揽了编译器设计中的通用部分,使得编译器的开发人员可以专注于核心的语义分析、中间表示的设计和变换,以此降低开发成本,提高开发效率和提高成品质量。
基本知识
深度学习模型的编译器推理引擎(依照实现方式分类):
解释型推理引擎
包含模型解析器和模型解释器,部分推理引擎可能会有模型优化器。
- 模型解析器:负责读取和解析模型文件,将模型转为适用于解释器的内存格式。
- 模型解释器:分析内存格式的模型,接受模型的输入数据,然后根据模型结构依次执行相应的模型内部算子,最后产生模型输出。
- 模型优化器:负责将原始模型变换为等价的、具有更快的推理速度的模型。
编译型推理引擎
包含模型解析器和模型编译器。
- 模型编译器:负责将模型编译为计算设备(CPU, GPU等)可直接处理的机器码。同时,在编译的过程中可能会应用各种优化方式来提高生成的机器码的效率。
- 因为机器码可以直接被计算设备处理而无需额外的解释器参与,消除了解释器调度的开销。
- 编译型推理引擎生成的机器码更加靠近底层,相比较解释型推理引擎,编译器有更多的优化机会来到更高的执行效率。
因为目前对于推理引擎的执行速度要求越来越高,所以编译型推理引擎也逐渐成为高速推理引擎的发展方向。常用的推理性引擎有

MLIR是一种新型编译器框架,支持多种IR表示及优化转换,简化编译器开发。适用于深度学习模型推理引擎,如TensorFlowXLA和TensorFlowRuntime等。
1463

被折叠的 条评论
为什么被折叠?



