谷歌TensorFlow机器学习框架的工程师透露了一个子项目MLIR,该子项目旨在成为机器学习框架的通用中间语言。
MLIR是Multi-Level Intermediate Representation的缩写,它将允许使用TensorFlow和其他机器学习库的项目编译为更有效的代码,从而最大程度地利用基础硬件。 而且,MLIR可以及时被编译器普遍使用,从而将其优化优势扩展到机器学习项目之外。
MLIR不是像C ++或Python这样的语言。 它代表了这些高级语言和机器代码之间的中间编译步骤。 编译器框架LLVM使用其自身的中间表示或IR。 LLVM的创始人之一Chris Lattner是MLIR的共同创始人。 使MLIR成为LLVM联合项目可能是扩大其采用范围的一种方式。
在本月初的EuroLLVM会议上的幻灯片演示中,Lattner和Google研究员Tatiana Shpeisman解释了TensorFlow如何在内部生成多个IR,但是这些不同的IR不会彼此受益。 MLIR为所有这些TensorFlow子系统提供了一个单一的标准IR。 TensorFlow当前正在迁移以在内部使用MLIR。
MLIR可以提供的另一个好处是并行编译。 MLIR旨在允许编译器并行处理不同的代码段,从而使机器学习模型以及其他类型的应用程序可以更快地投入生产。
MLIR可以为机器学习之外的语言和框架提供其他好处。 例如,基于Swift和Rust的LLVM语言必须开发自己的内部IR,因为这些语言中使用的许多优化无法用LLVM表示。 MLIR可以提供一种表达这些优化的标准方法,然后可以将其重新用于其他语言。
MLIR项目是开源的。 想要生成MLIR的人可以使用官方规范 。
From: https://www.infoworld.com/article/3390659/tensorflow-unveils-mlir-for-faster-machine-learning.html