[논문 리뷰] ScaleHLS: Scalable High-Level Synthesis through MLIR
ScaleHLS는 다중 추상 수준 중간 표현(IR)을 기반으로 하는 MLIR에 구축된 차세대 고수준 합성(HLS) 플로우를 제안하여 확장성 있고 사용자 정의가 가능하며 고성능의 하드웨어 설계를 가능하게 한다. 다중 추상 수준 최적화와 HLS 전용 변환 라이브러리를 활용함으로써, 커널 및 신경망 워크로드에서 각각 최대 768.1배 및 3,825.0배의 성능 향상을 달성한다.
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을 활용하여 계층적이고 구조가 복잡한 설계를 더 나은 표현과 최적화로 지원하기 위해.
- C/C++ 프론트엔드와 MLIR 내부의 백엔드 통합을 포함한 종단 간 HLS 플로우를 개발하기 위해.
제안 방법
- MLIR의 다중 수준 IR을 활용하여 다양한 추상 수준에서 HLS 설계를 표현하고 최적화함으로써 각 수준에 맞는 타겟 최적화를 가능하게 한다.
- 각 설계 구성 요소에 가장 적합한 표현 수준에서 최적화를 수행하기 위해 HLS 전용 변환 및 분석 라이브러리를 도입한다.
- MLIR의 확장성과 계층적 IR을 활용하여 다차원 설계 공간을 효율적으로 탐색하는 자동화된 DSE 엔진을 구축한다.
- 종단 간 HLS 설계를 MLIR IR로 옮기고 다시 가져올 수 있도록 C 프론트엔드와 C/C++ 에미션 백엔드를 개발한다.
- MLIR의 정규화 및 패스 아키텍처를 활용하여 추상 수준 간 최적화 패스를 조합하고 구성한다.
- 계층적 표현과 최적화를 통해 신경망 및 커널과 같은 복잡한 설계의 구조적 및 기능적 관계를 유지한다.
실험 결과
연구 질문
- RQ1다중 수준 IR 아키텍처는 고수준 합성(HLS) 플로우의 확장성과 사용자 정의 능력을 어떻게 향상시킬 수 있는가?
- RQ2MLIR의 계층적 IR 표현 방식은 신경망 및 커널과 같은 복잡하고 구조적인 설계의 최적화를 더 효과적으로 가능하게 할 수 있는가?
- RQ3MLIR 내부에 통합된 HLS 전용 변환 및 분석 라이브러리는 최적화 품질과 성능을 어떻게 향상시키는가?
- RQ4MLIR의 다중 수준 IR과 확장 가능한 패스 아키텍처를 활용하면 자동화된 설계 공간 탐색(DSE)이 얼마나 빨라질 수 있는가?
- RQ5기존 도구인 Vivado HLS에 비해 MLIR 기반의 차세대 HLS 플로우에서 기대할 수 있는 성능 향상은 어느 정도인가?
주요 결과
- ScaleHLS는 Xilinx Vivado HLS로만 최적화된 기준 설계 대비 계산 커널 수준의 프로그램에서 최대 768.1배 높은 성능을 달성한다.
- 신경망 모델에서는 동일한 Vivado HLS 기준 대비 ScaleHLS가 최대 3,825.0배의 성능 향상을 제공한다.
- MLIR의 다중 수준 IR은 다양한 추상 수준에서 더 효과적이고 타겟된 최적화를 가능하게 하여 성능 향상과 설계 유지보수성 향상을 동시에 개선한다.
- MLIR 기반의 자동화된 DSE 엔진은 다차원 설계 공간을 효율적으로 탐색하여 높은 품질의 결과를 도출하면서 수동 작업을 크게 줄인다.
- C 프론트엔드와 C/C++ 백엔드를 포함한 종단 간 플로우는 MLIR 생태계 내에서 HLS 설계의 원활한 통합과 변환을 가능하게 한다.
- HLS 전용 변환 및 분석 라이브러리는 단일 구조 최적화 방식보다 훨씬 뛰어난 정밀도와 수준 기반 최적화를 가능하게 하여 성능을 크게 향상시킨다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.