Torch 连接PyTorch生态系统

Torch MLIR-连接PyTorch和MLIR生态系统

Torch MLIR项目旨在提供从PyTorch生态系统到MLIR生态系统的一流编译器支持。

MLIR

MLIR项目是一种构建可重用和可扩展编译器基础架构的新方法。MLIR旨在解决软件碎片化问题,改进异构硬件的编译,显著降低构建特定领域编译器的成本,并有助于将现有编译器连接在一起。

Torch-MLIR

多个供应商使用MLIR作为中间层,将PyTorch、JAX、TensorFlow等平台框架映射到MLIR,然后逐步下译到目标硬件。已经看到了从PyTorch到MLIR的六个定制下译。从PyTorch生态系统到MLIR生态系统的规范下译,将为硬件供应商提供需要的支持,让他们专注于自己的独特价值,而不是为MLIR实施另一个PyTorch前端。这将类似于当前的硬件供应商添加LLVM目标支持,而不是每个供应商都实现Clang/C++前端。

从PyTorch到Torch的所有道路MLIR方言

有一些途径可以深入了解Torch-MLIR方言。

 

TorchScript

这是从PyTorch到Torch MLIR方言最受考验的路径。

TorchFX

这提供了一条从TorchFX向下到MLIR的路径。这是一个功能原型。

Lazy张量核(基于Lazy_Tensor_stage分支)

此路径提供即将到来的LTC捕获路径。基于一个不稳定的devel分支,这是适应任何现有torch_xla派生的最接近的方式。

“ACAP”(不推荐基于torch_xla的捕获,此处提及是为了完整性)

Torch-mlir项目包括几个例子,通过从PyTorch到mlir的每条路径降低成本,并在cpu后端使用“mlir cpu runner”。显然,这只是一个起点,可以将此项目导入到更大的MLIR项目中,以继续下译到目标GPU和其他加速器
posted @ 2024-03-23 04:22  吴建明wujianming  阅读(207)  评论(0)    收藏  举报