中文

面向高性能AI编译器的MLIR upstream 方案

编程语言 2024-04-24 v1 人工智能 硬件体系结构 分布式、并行与集群计算 机器学习

摘要

本工作提出一种编译流程,利用开源编译器通过一系列pass构建框架,以从通用线性代数高级抽象实现ninja性能。我们以MLIR项目的原型演示了此流程,该项目使用来自TensorFlow和PyTorch的Linalg-on-Tensor输入IR,执行缓存级优化并降低到微内核,以实现高效向量化,达到超过90%的等效ninja编写程序性能。本工作的贡献包括:(1)在张量方言中打包原始存储块以及用于缓存感知分布张量(单核和多核)和类型感知指令(VNNI、BFDOT、BFMMLA)的pass,包括跨整个函数的形状传播;(2)线性代数管道,包括tiling、fuse和bufferization策略,以将模型级IR转化为硬件友好的tiling调用;(3)一种将微内核降低到开源库的机制,支持各种CPU。

关键词

引用

@article{arxiv.2404.15204,
  title  = {Towards a high-performance AI compiler with upstream MLIR},
  author = {Renato Golin and Lorenzo Chelini and Adam Siemieniuk and Kavitha Madhu and Niranjan Hasabnis and Hans Pabst and Evangelos Georganas and Alexander Heinecke},
  journal= {arXiv preprint arXiv:2404.15204},
  year   = {2024}
}

备注

13 pages, 8 figures, presented at CGO C4ML 2024 & MLIR Workshop EuroLLVM 2024