更新时间:2021-10-13 08:50:30
大家好,我是本栏目的编辑郝帅,现在我来给大家讲解一下上面的问题。致力于谷歌TensorFlow机器学习框架的工程师发现了一个子项目MLIR,其目标是成为机器学习框架的通用中间语言。
MLIR是Multi-level Intermediate presentation的缩写,它允许使用TensorFlow和其他机器学习库的项目被编译成更有效的代码,从而充分利用底层硬件。更重要的是,MLIR可以被编译器及时使用,它的优化优势可以扩展到机器学习项目之外。
MLIR不是像c或Python那样的语言。它代表了这些高级语言和机器代码之间的中间编译步骤。编译器框架LLVM使用自己的中间表示或IR。LLVM的创始人之一克里斯拉特纳是MLIR的联合创始人。将MLIR作为LLVM的一个联合项目可以促进其采用。
在本月早些时候举行的EuroLLVM会议的幻灯片中,拉蒂纳和其他谷歌人塔蒂亚娜什佩斯曼解释了TensorFlow如何在内部产生多个irs,但这些不同的irs不会相互受益。MLIR为所有张量流子系统提供单一标准IR。TensorFlow目前正在迁移,以便在内部使用MLIR。
MLIR可能提供的另一个好处是并行编译。MLIR的目标是允许编译器并行处理不同的代码段,从而允许机器学习模型和其他类型的应用程序更快地投入生产。
除了机器学习,MLIR还可以为语言和框架提供其他好处。例如,基于LLVM的语言,如Swift和Rust,必须开发自己的内部ir,因为这些语言中使用的许多优化不能用LLVM来表示。MLIR可以提供一种标准的方式来表达这些优化,它可以在其他语言中重用。