[ICCAD'20] SuSy

SuSy: A Programming Model for Productive Construction of High-Performance Systolic Arrays on FPGAs

Yi-Hsiang Lai, et.al. on November 2, 2020
doi.org
obsidian에서 수정하기

Abstract

Systolic 알고리즘은 FPGA 및 CGRA와 같은 공간 아키텍처에서 가장 중요한 응용 중 하나입니다. 그러나 전통적인 RTL 기반 방법론을 사용하여 주어진 알고리즘에 대해 고성능의 시스톨릭 어레이를 설계하고 구현하는 데는 엄청난 인간의 노력이 필요합니다. 반면, 기존의 고수준 합성(HLS) 도구는 (1) 프로그래머가 코드 재구조화와 벤더 특유의 프래그마 삽입을 통해 너무 많은 최적화를 수행해야 하는 ‘마이크로 코딩’을 강요하거나, (2) 높은 품질의 결과를 얻기 위해 푸시 버튼 컴파일 플로우에 영향을 미칠 수 있는 제어를 거의 제공하지 않습니다. 이러한 문제를 해결하기 위해 우리는 SuSy라는 프로그래밍 프레임워크를 도입합니다. 이 프레임워크는 도메인 특화 언어(DSL)와 컴파일 플로우로 구성되어 있어 프로그래머가 FPGA에서 고성능의 시스톨릭 어레이를 생산적으로 구축할 수 있게 해줍니다. SuSy를 사용하면 프로그래머는 균일 재귀 방정식(URE)의 형태로 설계 기능을 표현할 수 있으며, 이는 기저의 연산이 균일한 의존 구조를 가지는 한 다양한 응용 프로그램의 알고리즘을 설명할 수 있습니다. SuSy에서의 URE 설명은 방정식을 공간 아키텍처에 매핑하는 방법을 지정하는 일련의 분리된 공간 매핑 프리미티브로 이어집니다. 더 구체적으로 말하면, 프로그래머는 시공간 변환 및 기타 여러 메모리 및 I/O 최적화를 적용하여 고도로 효율적인 시스톨릭 아키텍처를 생산적으로 구축할 수 있습니다. 실험 결과에 따르면 SuSy는 다양한 알고리즘을 URE로 설명하고 공간 최적화를 통해 고성능 시스톨릭 어레이를 생성할 수 있습니다. 예를 들어, SuSy로 작성된 SGEMM 벤치마크는 전문가가 최적화한 수동 설계 성능에 근접할 수 있으며, 코드 라인 수는 30배 적습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

figure 4 figure 4

figure 5 figure 5

figure 7 figure 7

figure 8 figure 8

figure 9 figure 9

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