[ICCAD'18] PolySA

PolySA: Polyhedral-Based Systolic Array Auto-Compilation

J. Cong, et.al. on November 5, 2018
doi.org github
obsidian에서 수정하기

author:

Abstract

(서론) 자동 수축기 배열 생성은 수동 설계의 긴 개발 주기를 단축해야 하는 필요성 때문에 오랫동안 흥미로운 주제였습니다.

(배경) 기존의 자동 systolic array 생성 방식은 알고리즘으로부터 종속성 그래프를 구축하고, 그래프의 연산 노드를 PE 내에서 작동하는 노드의 시퀀스를 지정하는 타임스탬프가 있는 처리 요소(PE)로 반복적으로 매핑합니다. 이전에도 이 아이디어를 구현하고 ASIC을 위한 설계를 생성한 여러 작품이 있었습니다. 그러나 이러한 작업은 모두 사람의 개입에 의존했으며 일반적으로 수동 설계에 비해 열등한 설계를 생성했습니다.

(방법론) 본 논문에서는 다면체 모델의 성능을 활용하여 FPGA의 systolic array 아키텍처를 위한 엔드투엔드 컴파일을 달성하기 위해 현재 진행 중인 PolySA라는 컴파일 프레임워크를 소개합니다. PolySA는 하이레벨 합성의 최근 발전을 활용하여 FPGA에서 고성능 수축기 어레이 아키텍처를 생성하기 위한 최초의 완전 자동화된 컴파일 프레임워크입니다.

(결론) 행렬 곱셈과 컨볼루션 신경망이라는 두 가지 주요 애플리케이션에서 PolySA를 시연합니다. PolySA는 최첨단 수동 설계에 필적하는 성능으로 1시간 이내에 최적의 설계를 생성할 수 있습니다.

그림 1: - PolySA 컴파일 프레임워크.

그림 2: - 매트릭스 곱셈의 입력 코드.

그림 3: - MM 예제의 폴리헤드럴 변환($I=J=K=2$).

표 1: - 코드 생성기의 기본 설계 모듈.

그림 5: - 다양한 설계를 위한 PE 템플릿.

표 2: - CNN의 문제 설정.

표 3: - 설계 비교.

그림 6: - MM 예제의 다양한 시스톨릭 배열 설계.

그림 7: - CNN 예제의 다양한 시스톨릭 배열 설계.

그림 8: - MM 및 CNN의 설계 공간.

그림 9: - 자원 및 지연 시간 모델 평가.

표 4: - 설계 예제에 대한 실행 시간 분석.