面向高性能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