基于 MLIR 的高效 FPGA 加速器生成优化框架
硬件体系结构
2024-01-11 v1 编程语言
摘要
随着在有限资源和功耗预算下对计算能力的需求日益增长,将应用部署到诸如 FPGA 之类的定制加速器上至关重要。然而,FPGA 编程并非易事。尽管现有的高层次综合 (HLS) 工具在一定程度上提高了生产力,但它们在支持充分的面向 FPGA 的优化方面,范围和能力有限。本文专注于基于 FPGA 的加速器,并提出了 POM,一个构建在多级中间表示 (MLIR) 之上的优化框架。POM 具有几个展示其性能优化范围和能力的特性。首先,大多数 HLS 工具完全依赖单级 IR 来执行所有优化,将过多信息引入 IR,并使调试成为一项艰巨的任务。相比之下,POM 引入了三层 IR,在合适的抽象级别执行操作,简化了实现和调试过程,并展现出更好的灵活性、可扩展性和系统性。其次,POM 将多面体模型集成到 MLIR 中,实现了高级依赖分析和各种面向 FPGA 的循环变换。通过用整数集和映射表示嵌套循环,可以方便地通过对多面体语义的操作来进行循环变换。最后,为了进一步减轻设计工作,POM 提供了一个用户友好的编程接口 (DSL),允许对计算进行简洁描述,并包含丰富的调度原语集合。提供了一个自动设计空间探索 (DSE) 引擎,以高效搜索高性能优化方案并自动生成优化的加速器。实验结果表明,与最先进的技术相比,POM 在典型基准测试套件上实现了 6.46 倍的平均加速,在实际应用上实现了 6.06 倍的平均加速。
引用
@article{arxiv.2401.05154,
title = {An Optimizing Framework on MLIR for Efficient FPGA-based Accelerator Generation},
author = {Weichuang Zhang and Jieru Zhao and Guan Shen and Quan Chen and Chen Chen and Minyi Guo},
journal= {arXiv preprint arXiv:2401.05154},
year = {2024}
}
备注
Accepted by HPCA2024