[FPGA'22] HeteroFlow

HeteroFlow: An Accelerator Programming Model with Decoupled Data Placement for Software-Defined FPGAs

Shaojie Xiang, et.al. on February 11, 2022
doi.org
obsidian에서 수정하기

Abstract

FPGA가 장착된 이기종 컴퓨팅 시스템으로 고성능을 달성하려면 데이터 배치와 컴퓨팅 스케줄링을 함께 최적화하여 온칩 및 오프칩 메모리 액세스에 대한 데이터 재사용과 대역폭 활용을 극대화하는 것이 중요합니다. 그러나 FPGA 가속기에 대한 데이터 배치를 최적화하는 것은 복잡한 작업입니다. 일련의 고급 최적화를 적용하려면 대상 FPGA 디바이스 및 관련 메모리 시스템에 대한 심층적인 지식을 습득해야 합니다. 최신 고수준 합성(HLS) 툴을 사용하더라도 프로그래머는 많은 저수준 공급업체별 프래그마를 삽입하고 올바른 통신 체계를 사용하여 올바른 루프 수준에서 올바른 데이터에 액세스할 수 있도록 알고리즘 코드를 크게 재구성해야 하는 경우가 많습니다. 이러한 코드 변경은 원래 프로그램의 컴포저빌리티와 이식성을 크게 저하시킬 수 있습니다. 이러한 문제를 해결하기 위해 유니티는 알고리즘 사양과 맞춤형 메모리 계층 구조에서 데이터 배치 조율과 관련된 최적화를 분리하는 FPGA 가속기 프로그래밍 모델인 HeteroFlow를 제안합니다. 특히, (1) 호스트와 가속기 간의 거친 수준의 데이터 배치, (2) 가속기 내의 중간 수준의 커널 수준 데이터 배치, (3) 커널 내의 세분화된 데이터 배치 등 다양한 세부 수준에서 데이터 배치 최적화를 지정하기 위한 통합 프로그래밍 인터페이스를 제공하는 .to()라는 새로운 프리미티브가 도입되었습니다. 유니티는 오픈 소스 HeteroCL DSL 및 컴파일 프레임워크 위에 HeteroFlow를 구축합니다. 일련의 현실적인 벤치마크에 대한 실험 결과에 따르면 HeteroFlow로 작성된 프로그램은 훨씬 적은 코드 줄로 광범위하게 최적화된 수동 HLS 설계의 성능과 맞먹는 성능을 구현할 수 있습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

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 15 figure 15

figure 16 figure 16

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

Reference

Method

  • (missing reference)

  • (missing reference)

  • (missing reference)

Citation

Background

  1. FPGA HLS Today: Successes, Challenges, and Opportunities, 2022, [post]