MLIR

概述

MLIR,或多级中间表示,是一种表示格式和编译器实用程序库,位于模型表示和生成特定于硬件的代码的低级编译器/执行器之间。

MLIR 本质上是一个灵活的现代优化编译器基础设施。这意味着它包含中间表示 (IR) 的规范和用于对该表示进行转换的代码工具包。(在编译器术语中,当您从高级表示移动到低级表示时,这些转换可以称为“降低”)

MLIR 受到 LLVM 的很大影响,并且毫不犹豫地借鉴了其中的许多优秀理念。它具有灵活的类型系统,并允许在同一个编译单元中表示、分析和转换结合了多个抽象级别的图。这些抽象包括 TensorFlow 操作、嵌套的多面体循环区域,甚至 LLVM 指令以及固定的硬件操作和类型。

我们预计 MLIR 会引起许多群体的兴趣,包括

  • 希望优化机器学习模型的性能和内存消耗的编译器研究人员和实现者
  • 希望将他们的硬件连接到 TensorFlow 的硬件制造商,例如 TPU、手机中的便携式神经硬件和其他定制 ASIC
  • 希望利用优化编译器和硬件加速的语言绑定编写人员。

TensorFlow 生态系统包含许多在软件和硬件堆栈的多个级别上运行的编译器和优化器。我们预计 MLIR 的逐步采用将简化此堆栈的各个方面。

MLIR overview diagram