[논문 리뷰] Characterizing and Demystifying the Implicit Convolution Algorithm on Commercial Matrix-Multiplication Accelerators
이 논문은 Google의 TPU와 NVIDIA의 Tensor Cores와 같은 GEMM 기반 가속기에서 성능 및 메모리 오버헤드가 거의 없는 메모리 효율적이고 하드웨어 우수한 암시적 im2col 알고리즘을 제안한다. 복소 연산의 결합법칙과 교환법칙을 활용하고 메모리 레이아웃과 타일링을 최적화함으로써, 외부 메모리 액세스를 계산과 완전히 겹치게 하여, 독자적인 구현과 동등하거나 이를 초월하는 성능을 달성한다.
Many of today's deep neural network accelerators, e.g., Google's TPU and NVIDIA's tensor core, are built around accelerating the general matrix multiplication (i.e., GEMM). However, supporting convolution on GEMM-based accelerators is not trivial. The naive method explicitly lowers the convolution to GEMM, commonly known as im2col, which introduces significant performance and memory overhead. Existing implicit im2col algorithms require unscalable hardware and are inefficient in supporting important convolution variants such as strided convolution. In this paper, we propose a memory-efficient and hardware-friendly implicit im2col algorithm used by Google's TPU, which dynamically converts a convolution into a GEMM with practically zero performance and memory overhead, fully unleashing the power of GEMM engines. Through comprehensive experimental results, we quantitatively argue that this algorithm has been adopted in commercial closed-source platforms, and we are the first to describe its high-level idea and implementation details. Finally, we show that our algorithm can also be generally applied to Nvidia's Tensor Cores (TC), matching and out-performing the measured performance on TCs.
연구 동기 및 목표
- TPU와 GPU와 같은 GEMM 기반 DNN 가속기에서 명시적 im2col의 높은 메모리 및 성능 오버헤드를 해결하기 위해.
- 상용 가속기에서 사용되는 하드웨어 우수한 암시적 im2col 알고리즘의 첫 번째 공개 가능한 구현을 역공학하고 기술하기 위해.
- 제안된 암시적 im2col 방법이 TPU와 NVIDIA Tensor Cores 양쪽에서 독자적 구현과 동등하거나 이를 초월하는 성능을 달성하며 거의 오버헤드가 없음을 입증하기 위해.
- 가능한 연구 및 최적화를 넓히기 위해 가변형 TPU 시뮬레이터와 GPU 구현을 오픈소스로 제공하기 위해.
제안 방법
- 채널 우선의 암시적 im2col 알고리즘을 제안하여, 복소 연산의 결합법칙과 교환법칙을 활용해 명시적 데이터 재포맷팅을 방지한다.
- 시스템틱 어레이에서 계산과 완전히 겹치는 외부 메모리 액세스를 가능하게 하는 메모리 레이아웃과 타일링 전략을 설계한다.
- 클라우드 TPUv2와의 비교에서 평균 오차율 5% 미만으로 검증된 가변형 사이클 수준의 TPU 시뮬레이터를 개발한다.
- 전역 메모리 액세스로 인한 스탠드를 최소화하기 위해 타일 재정렬을 포함한 블록형 im2col 접근 방식을 사용해 NVIDIA Tensor Cores에 알고리즘을 적응시킨다.
- 타일 간 재사용을 통한 데이터 재사용 최적화로, 내부 메모리 지역성 향상과 전역 메모리 대역폭 압박 감소를 달성한다.
- V100 GPU에서 소프트웨어로 구현하여 cuDNN과 성능을 비교하였으며, 저자들이 접근할 수 없는 마이크로 최적화 기법을 사용하였다.

실험 결과
연구 질문
- RQ1GEMM 전용 가속기인 TPU와 Tensor Cores에서 복소 연산을 성능 및 메모리 오버헤드가 최소화된 방식으로 GEMM에 효율적으로 매핑할 수 있는 방법은 무엇인가?
- RQ2암시적 im2col이 명시적 im2col의 메모리 및 계산 비용을 피하기 위해 필요한 아키텍처적 및 알고리즘적 기법은 무엇인가?
- RQ3기존의 암시적 im2col 방법이 TPU와 같은 대규모 상용 가속기에는 부적합한 이유는 무엇인가?
- RQ4일반화된 오픈소스 암시적 im2col 알고리즘이 시스템틱 어레이와 현대 GPU Tensor Cores 양쪽에서 경쟁력 있는 성능을 달성할 수 있는가?
- RQ5메모리 레이아웃, 타일링, 데이터 재사용은 GEMM 가속기에서 고성능을 달성하는 데 어떤 역할을 하는가?
주요 결과
- 제안된 암시적 im2col 방법은 명시적 데이터 변환 없이 복소 연산을 동적으로 GEMM에 매핑함으로써 거의 오버헤드가 없는 성능 및 메모리 오버헤드를 달성한다.
- TPU에서 외부 메모리 액세스를 계산과 완전히 겹치게 하여, 유휴 시간을 줄이고 하드웨어 활용도를 극대화한다.
- V100 GPU에서 배치 크기가 8일 때 성능이 cuDNN과 1% 이내로, 독자적 코드와 경쟁력 있는 성능을 보였다.
- 스트라이드 컨볼루션의 경우, 평균 20% 빠르고 최대 40% 빠르게, 비단위 스트라이드 연산 처리에서의 우수성을 입증하였다.
- 타일 간 재사용 최적화로, 전역 메모리 액세스 오버헤드가 높은 GPU 워크로드에서 평균 16.7% 향상된 성능을 달성하였다.
- 저자들이 개발한 TPUv2 시뮬레이터는 실제 클라우드 TPUv2 측정치와 비교해 평균 오차율 5% 미만을 기록하여 정확도가 검증되었다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.