TensorFlow推出MLIR以加快机器学习速度
致力于谷歌TensorFlow机器学习框架的工程师们已经发现了一个子项目MLIR,它旨在成为机器学习框架的通用中间语言。
MLIR是Multi-Level Intermediate Representation的缩写,它允许将使用TensorFlow和其他机器学习库的项目编译为更有效的代码,从而最大限度地利用底层硬件。更重要的是,MLIR可以及时被编译器使用,将其优化优势扩展到机器学习项目之外。
MLIR不是像C ++或Python这样的语言。它代表了这些高级语言和机器代码之间的中间编译步骤。编译器框架LLVM使用自己的中间表示或IR。LLVM的创始人之一Chris Lattner是MLIR的共同创始人。将MLIR作为LLVM共同项目可以成为推广其采用的一种方式。
在 本月早些时候举行的EuroLLVM会议的幻灯片演示中,Lattner和其他Googler Tatiana Shpeisman解释了TensorFlow如何在内部产生多个IR,但这些不同的IR不会互相受益。MLIR为所有TensorFlow子系统提供单一的标准IR。TensorFlow目前正在迁移以在内部使用MLIR。
MLIR可能提供的另一个好处是并行编译。MLIR旨在允许编译器并行处理不同的代码段,从而允许机器学习模型和其他类型的应用程序更快地推向生产。
MLIR可以为机器学习之外的语言和框架提供其他好处。例如,像Swift和Rust这样基于LLVM的语言必须开发自己的内部IR,因为这些语言中使用的许多优化都无法在LLVM中表达。MLIR可以提供表达这些优化的标准方法,这些优化又可以重复用于其他语言。