[ISCA'18] GANAX

GANAX: A Unified MIMD-SIMD Acceleration for Generative Adversarial Networks

A. Yazdanbakhsh, et.al. on May 10, 2018
doi.org
obsidian에서 수정하기

Abstract

생성적 적대 신경망(GAN)은 제한된 진본 데이터 세트로부터 합성 데이터를 생성하는 가장 최신의 딥 러닝 모델 중 하나입니다. 딥 러닝의 여러 분야(예: 의학, 로봇공학, 콘텐츠 합성)로의 확장이 대규모 라벨링된 데이터 세트를 필요로 하기 때문에 GAN은 매우 중요합니다. 이러한 데이터 세트는 일반적으로 이용할 수 없거나 수집 비용이 매우 높습니다. 다양한 분야에서 GAN이 주목받고 있지만, 이 새로운 모델을 위한 가속기는 없습니다. 사실 GAN은 트랜스포즈드 컨볼루션이라는 새로운 연산자를 활용하는데, 이는 하드웨어 가속에 독특한 도전을 제기합니다. 이 연산자는 다차원 입력 내에 0을 삽입한 후, 이 확장된 배열 위에 커널을 컨볼루션하여 삽입된 0에 정보를 추가합니다. 이 연산자에는 컨볼루션 단계가 있지만 삽입된 0으로 인해 기존의 컨볼루션 가속기를 사용할 때 계산 자원의 활용도가 낮아집니다. 우리는 기존의 컨볼루션 가속기를 사용한 GAN 가속의 비효율성 원인을 해결하여 최초의 GAN 가속기 설계를 가능하게 하는 GANAX 아키텍처를 제안합니다. 우리는 유사한 0 패턴을 가진 출력 계산을 인접한 처리 엔진에 할당하는 출력을 재구성함으로써, 0에 대한 무의미한 곱셈-덧셈을 피합니다. 이러한 강제적 인접성은 삽입된 0으로 인해 감소된 인접 처리 엔진 간의 데이터 재사용을 회복시킵니다. 이 재정렬은 컨볼루션 가속기에 두드러진 전체 SIMD 실행 모델을 깨뜨립니다. 따라서 우리는 계산의 반복 패턴을 활용하여 개별 마이크로프로그램을 생성하고, 이를 SIMD 모드에서 동시에 실행하는 통합 MIMD-SIMD 설계를 GANAX에 제안합니다. MIMD와 SIMD 모드의 교차는 단일 마이크로프로그램 작업의 세분화에서 수행됩니다. MIMD 실행 비용을 상쇄하기 위해, 우리는 GANAX에서 데이터 접근과 데이터 처리를 분리하는 것을 제안합니다. 이 분리는 각 처리 엔진을 접근 마이크로엔진과 실행 마이크로엔진으로 나누는 새로운 설계를 이끕니다. 제안된 아키텍처는 각 개별 피연산자의 계산의 가장 미세한 세분화까지 접근-실행 아키텍처의 개념을 확장합니다. 6개의 GAN 모델을 사용한 평가 결과, Eyeriss 대비 평균 3.6배의 속도 향상과 3.1배의 에너지 절감이 나타났으며, 기존의 컨볼루션 가속기의 효율성을 손상시키지 않았습니다. 이러한 이점은 약 7.8%의 면적 증가만으로 달성되었습니다. 이러한 결과는 GANAX가 차세대 딥 뉴럴 모델을 가속화하는 효과적인 초기 단계임을 시사합니다.