Skip to main content
QUICK REVIEW

[论文解读] ScaleHLS: Scalable High-Level Synthesis through MLIR

Hanchen Ye, Cong Hao|arXiv (Cornell University)|Jul 24, 2021
Parallel Computing and Optimization Techniques参考文献 42被引用 8
一句话总结

ScaleHLS 提出了一种基于 MLIR 多级中间表示(IR)的下一代高阶综合(HLS)流程,以实现可扩展、可定制且高性能的硬件设计。通过利用多抽象层级优化和专用于 HLS 的转换库,它在内核和神经网络工作负载上分别实现了相较于 Vivado HLS 的 768.1 倍和 3,825.0 倍性能提升。

ABSTRACT

High-level Synthesis (HLS) has been widely adopted as it significantly improves the hardware design productivity and enables efficient design space exploration (DSE). HLS tools can be used to deliver solutions for many different kinds of design problems, which are often better solved with different levels of abstraction. While existing HLS tools are built using compiler infrastructures largely based on a single-level abstraction (e.g., LLVM), we propose ScaleHLS, a next-generation HLS compilation flow, on top of a multi-level compiler infrastructure called MLIR, for the first time. By using an intermediate representation (IR) that can be better tuned to particular algorithms at different representation levels, we are able to build this new HLS tool that is more scalable and customizable towards various applications coming with intrinsic structural or functional hierarchies. ScaleHLS is able to represent and optimize HLS designs at multiple levels of abstraction and provides an HLS-dedicated transform and analysis library to solve the optimization problems at the suitable representation levels. On top of the library, we also build an automated DSE engine to explore the multi-dimensional design space efficiently. In addition, we develop an HLS C front-end and a C/C++ emission back-end to translate HLS designs into/from MLIR for enabling the end-to-end ScaleHLS flow. Experimental results show that, comparing to the baseline designs only optimized by Xilinx Vivado HLS, ScaleHLS improves the performances with amazing quality-of-results -- up to 768.1x better on computation kernel level programs and up to 3825.0x better on neural network models.

研究动机与目标

  • 为解决基于单级编译器基础设施(如 LLVM)的现有 HLS 工具在可扩展性和定制性方面的局限性。
  • 在多种抽象层级上实现高效的设计空间探索(DSE),以支持多样化硬件工作负载。
  • 通过利用 MLIR 的多级 IR,支持分层且结构复杂的硬件设计,以实现更优的表示与优化。
  • 在 MLIR 内部构建端到端的 HLS 流程,实现 C/C++ 前端与后端的无缝集成。

提出的方法

  • 利用 MLIR 的多级 IR 表示和优化 HLS 设计,支持在不同抽象层级进行优化,实现针对各层级的精准优化。
  • 引入专用于 HLS 的转换与分析库,针对每个设计组件在最合适抽象层级上执行优化。
  • 构建自动化 DSE 引擎,利用 MLIR 的可扩展性与分层 IR,高效探索多维设计空间。
  • 开发 C 前端与 C/C++ 代码生成后端,实现 HLS 设计在 MLIR IR 中的端到端转换。
  • 利用 MLIR 的规范化与 pass 架构,在不同抽象层级之间组合和编排优化 pass。
  • 采用分层表示与优化机制,保留复杂设计(如神经网络和内核)中的结构与功能关系。

实验结果

研究问题

  • RQ1多级 IR 架构在多大程度上能够提升高阶综合(HLS)流程的可扩展性与定制性?
  • RQ2MLIR 的分层 IR 表示是否能够更有效地优化复杂且结构化的设计(如神经网络和内核)?
  • RQ3集成在 MLIR 中的专用于 HLS 的转换与分析库在多大程度上提升了优化质量与性能?
  • RQ4利用 MLIR 的多级 IR 与可扩展 pass 架构,自动化设计空间探索(DSE)的加速程度如何?
  • RQ5与现有工具(如 Vivado HLS)相比,基于 MLIR 的下一代 HLS 流程能实现多大的性能提升?

主要发现

  • 在计算内核级程序上,ScaleHLS 相较于仅使用 Xilinx Vivado HLS 优化的基线设计,性能最高提升 768.1 倍。
  • 在神经网络模型上,ScaleHLS 相较于相同的 Vivado HLS 基线,性能最高提升 3,825.0 倍。
  • MLIR 中的多级 IR 使得在不同抽象层级上实现更有效且有针对性的优化成为可能,显著提升了性能与设计可维护性。
  • 基于 MLIR 构建的自动化 DSE 引擎能够高效探索多维设计空间,显著降低人工干预,产出高质量结果。
  • 端到端流程(包含 C 前端与 C/C++ 后端)实现了 HLS 设计在 MLIR 生态系统内的无缝集成与转换。
  • 专用于 HLS 的转换与分析库支持精确的层级特定优化,其性能显著优于单体式优化方法。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。