[TRTS'22] TAPA

TAPA: A Scalable Task-parallel Dataflow Programming Framework for Modern FPGAs with Co-optimization of HLS and Physical Design

Licheng Guo, et.al. on September 6, 2022
doi.org github
obsidian에서 수정하기

Abstract

이 논문에서는 C++ 태스크 병렬 데이터플로우 프로그램을 고주파수 FPGA 가속기로 컴파일하는 종단 간 프레임워크인 TAPA를 제안합니다. 기존 솔루션과 비교할 때, TAPA는 두 가지 주요 장점을 가지고 있습니다. 첫째, TAPA는 사용자가 유연하고 복잡한 태스크 간 통신 구조를 쉽게 표현할 수 있도록 편리한 API 세트를 제공합니다. 둘째, TAPA는 HLS 컴파일 중 잠재적인 임계 경로의 정확한 파이프라이닝을 위해 거친 입자 수준의 플로어플래닝 단계를 채택합니다. 또한, TAPA는 최신 HBM 기반 FPGA에 특화된 여러 최적화 기술을 구현합니다. 43개의 설계를 대상으로 한 실험에서 평균 주파수를 147 MHz에서 297 MHz로 (102% 향상) 향상시켰으며, 처리량 손실 없이 자원 사용량의 변화도 미미했습니다. 특히, 16개의 실험에서 원래 라우팅이 불가능했던 설계를 평균 274 MHz로 달성했습니다. 프레임워크는 https://github.com/UCLA-VAST/tapa에서 사용할 수 있으며, 핵심 플로어플랜 모듈은 https://github.com/UCLA-VAST/AutoBridge에서 사용할 수 있습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

figure 4 figure 4

figure 5 figure 5

figure 6 figure 6

figure 7 figure 7

figure 8 figure 8

figure 9 figure 9

figure 10 figure 10

figure 11 figure 11

figure 12 figure 12

figure 13 figure 13

figure 14 figure 14

figure 15 figure 15

Table

table 1 table 1

table 2 table 2

table 3 table 3

table 4 table 4

table 5 table 5

table 6 table 6

table 7 table 7

table 8 table 8

table 9 table 9

table 10 table 10

table 11 table 11