[ISCA'17] Plasticine

Plasticine: A reconfigurable architecture for parallel patterns

R. Prabhakar, et.al. on June 24, 2017
doi.org
obsidian에서 수정하기

Abstract

재구성 가능한 아키텍처는 에너지 효율적인 가속기를 설계할 수 있게 하여 최근 몇 년간 인기를 얻고 있습니다.

세밀한 그레인 패브릭(예: FPGA)은 비트 레벨 재구성 추상화로 인해 전통적으로 성능 및 전력 비효율성에 시달려 왔습니다. 세밀한 그레인 아키텍처와 조밀한 그레인 아키텍처(예: CGRA)는 전통적으로 low-level 프로그래밍을 요구하며 긴 컴파일 시간에 시달립니다.

우리는 Plasticine이라는 새로운 공간 재구성 가능한 아키텍처를 통해 이 두 가지 문제를 해결합니다. Plasticine은 병렬 패턴으로 구성된 애플리케이션을 효율적으로 실행하도록 설계되었습니다. 병렬 패턴은 데이터 지역성, 메모리 접근 패턴, 병렬성을 다양한 조밀 및 희소 애플리케이션에서 우아하게 포착할 수 있는 강력한 고수준 추상화로 병렬 프로그래밍에 관한 최근 연구에서 등장했습니다. 우리는 병렬 패턴으로 포착된 주요 애플리케이션 특성을 관찰함으로써 Plasticine을 동기화시키는 동기를 부여합니다. 이러한 특성에는 계층적 병렬성, 데이터 지역성, 메모리 접근 패턴 및 제어 흐름이 포함됩니다. 이러한 관찰을 바탕으로 우리는 Pattern Compute Units와 Pattern Memory Units의 컬렉션으로 Plasticine을 설계했습니다. Pattern Compute Units는 중첩된 패턴을 효율적으로 실행할 수 있는 재구성 가능한 SIMD 기능 유닛의 다단계 파이프라인입니다. Pattern Memory Units는 은행화된 스크래치패드 메모리와 구성 가능한 주소 디코더를 사용하여 데이터 지역성을 활용합니다. 여러 온칩 주소 생성기와 스캐터-개더 엔진은 많은 수의 미결 메모리 요청, 메모리 통합 및 밀집 접근을 위한 버스트 모드를 지원하여 DRAM 대역폭을 효율적으로 사용합니다.

Plasticine은 28nm 공정에서 113 mm²의 면적을 차지하며, 1GHz 클록에서 최대 49W의 전력을 소비합니다. cycle-accurate 시뮬레이터를 사용하여 Plasticine이 다양한 조밀 및 희소 애플리케이션에서 기존 FPGA에 비해 최대 76.9배의 성능-와트 향상을 제공함을 입증합니다.