[FPGA'19] HeteroCL

HeteroCL: A Multi-Paradigm Programming Infrastructure for Software-Defined Reconfigurable Computing

Yi-Hsiang Lai, et.al. on February 20, 2019
doi.org
obsidian에서 수정하기

Abstract

엄격한 전력 제약 조건 하에서 컴퓨팅 성능을 개선하고자 하는 요구가 증가함에 따라 GPU 및 FPGA와 같은 가속기가 있는 이기종 하드웨어 아키텍처에 애플리케이션을 배포해야 할 필요성이 커지고 있습니다. 그러나 이러한 이기종 컴퓨팅 플랫폼이 널리 보급되고 있지만, 특히 FPGA의 경우 프로그래밍하기가 매우 어렵습니다. 그 결과 이러한 플랫폼의 사용은 하드웨어에 대한 전문 지식을 갖춘 소수의 프로그래머로 제한되어 왔습니다. 이러한 문제를 해결하기 위해 유니티는 Python 기반 도메인별 언어(DSL)와 FPGA 대상 컴파일 흐름으로 구성된 프로그래밍 인프라인 HeteroCL을 소개합니다. HeteroCL DSL은 컴퓨팅, 데이터 유형, 메모리 아키텍처의 세 가지 중요한 하드웨어 사용자 지정 유형에서 알고리즘 사양을 분리하는 깔끔한 프로그래밍 추상화를 제공합니다. 또한 HeteroCL은 이러한 다양한 사용자 지정 기술 간의 상호 의존성을 포착하여 프로그래머가 체계적이고 생산적인 방식으로 다양한 성능/영역/정확도 절충점을 탐색할 수 있도록 지원합니다. 또한 이 프레임워크는 데이터 흐름 아키텍처를 통해 수축기 배열 및 스텐실과 같은 공간 아키텍처 템플릿을 대상으로 하여 다양한 인기 워크로드에 대해 매우 효율적인 하드웨어 구현을 생성합니다. 실험 결과에 따르면 프로그래머는 알고리즘 코드를 그대로 유지하면서 다양한 유형의 하드웨어 커스터마이징을 결합하고 공간 아키텍처를 타겟팅하여 성능과 정확도 측면에서 설계 공간을 효율적으로 탐색할 수 있습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

figure 4 figure 4

figure 5 figure 5

figure 8 figure 8

figure 9 figure 9

figure 10 figure 10

figure 12 figure 12

figure 13 figure 13

figure 14 figure 14

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