Skip to main content
QUICK REVIEW

[논문 리뷰] Parallel Multi Channel Convolution using General Matrix Multiplication

Aravind Vasudevan, Andrew Anderson|arXiv (Cornell University)|2017. 04. 06.
Advanced Neural Network Applications참고 문헌 7인용 수 13
한 줄 요약

이 논문은 입력 이미지를 복제하지 않고도 메모리 비용이 높은 im2col 변환을 피하는 GEMM 기반의 다중 채널 다중 커널(MCMK) 컨볼루션 방법을 제안한다. 비복제된 입력 이미지에 직접 작용함으로써 데이터 국소성 향상을 이루며, 다양한 CNN 아키텍처에서 CPU 및 임베디드 ARM 프로세서에서 im2col보다 더 빠른 추론 성능을 달성한다.

ABSTRACT

Convolutional neural networks (CNNs) have emerged as one of the most successful machine learning technologies for image and video processing. The most computationally intensive parts of CNNs are the convolutional layers, which convolve multi-channel images with multiple kernels. A common approach to implementing convolutional layers is to expand the image into a column matrix (im2col) and perform Multiple Channel Multiple Kernel (MCMK) convolution using an existing parallel General Matrix Multiplication (GEMM) library. This im2col conversion greatly increases the memory footprint of the input matrix and reduces data locality. In this paper we propose a new approach to MCMK convolution that is based on General Matrix Multiplication (GEMM), but not on im2col. Our algorithm eliminates the need for data replication on the input thereby enabling us to apply the convolution kernels on the input images directly. We have implemented several variants of our algorithm on a CPU processor and an embedded ARM processor. On the CPU, our algorithm is faster than im2col in most cases.

연구 동기 및 목표

  • 딥 러닝 프레임워크에서 im2col 변환으로 인한 높은 메모리 사용량과 열악한 데이터 국소성 문제를 해결하기 위해.
  • 데이터 복제 없이 최적화된 GEMM 라이브러리를 MCMK 컨볼루션에 효율적으로 활용하기 위해.
  • 메모리 제약이 있는 시스템, 예를 들어 임베디드 프로세서에서 메모리 트래픽 감소와 데이터 재사용 증가로 성능 향상을 도모하기 위해.
  • 다양한 CNN 레이어와 하드웨어 플랫폼에서 GEMM 기반 MCMK 컨볼루션의 성능을 평가하기 위해.
  • 아키텍처적 맥락에 기반해 최적의 MCMK 컨볼루션 구현을 선택하기 위한 비용 모델을 개발하기 위해.

제안 방법

  • 입력을 열 행렬로 전개하지 않고도 MCMK 컨볼루션을 하나 이상의 GEMM 연산으로 재구성함으로써 데이터 복제를 피한다.
  • 단일 GEMM 호출과 후처리 누적 단계를 적용하는 kn2row 알고리즘을 도입한다.
  • 입력 특징 맵에 직접 액세스함으로써 공간 국소성을 유지하고 메모리 트래픽을 감소시킨다.
  • CPU 및 ARM Cortex-A57 프로세서를 대상으로 고도로 최적화된 GEMM 라이브러리를 사용해 여러 변종을 구현하고 튜닝한다.
  • 하드웨어 수준의 병렬성과 메모리 계층을 효과적으로 활용하기 위해 기존에 사전 튜닝된 GEMM 루틴을 활용한다.
  • im2col의 Toeplitz 행렬 구축을 피하고, 최소한의 데이터 이동으로 컨볼루션 연산을 직접 GEMM에 매핑한다.

실험 결과

연구 질문

  • RQ1im2col 변환 없이 MCMK 컨볼루션을 GEMM을 활용해 효율적으로 구현할 수 있는가? 이를 통해 메모리 사용량 감소와 데이터 국소성 향상을 달성할 수 있는가?
  • RQ2다양한 CNN 아키텍처와 하드웨어 플랫폼에서 GEMM 기반 MCMK 컨볼루션의 성능은 im2col과 비교해 어떻게 다를까?
  • RQ3CPU 및 임베디드 ARM 프로세서에서 GEMM 기반 MCMK의 어떤 변종이 가장 높은 성능을 내는가?
  • RQ4MCMK 컨볼루션의 성능은 CNN의 레이어(예: 초기 레이어 vs. 후기 레이어)에 따라 크게 달라지는가?
  • RQ5특정 하드웨어 및 네트워크 구성에 최적의 MCMK 구현을 선택하는 데 영향을 주는 요소는 무엇인가?

주요 결과

  • 제안된 GEMM 기반 MCMK 컨볼루션 방법은 CPU 및 ARM 프로세서에서 대부분의 시험 환경에서 im2col을 능가하는 성능을 보였다.
  • Intel i5-4570 CPU에서, 신규 방법은 대부분의 네트워크 레이어와 커널 크기에서 im2col보다 더 빠른 추론 성능을 달성했다.
  • ARM Cortex-A57 임베디드 프로세서에서, GEMM 기반 접근 방식은 im2col 대비 메모리 압박을 크게 줄이고 성능 향상을 이뤘다.
  • 성능는 다양한 CNN 레이어 간에 크게 달라지며, 어떤 한 방법도 항상 최적은 아니다.
  • 단일 GEMM 호출 후 누적 처리를 수행하는 kn2row 변종은 높은 데이터 국소성과 뛰어난 성능을 기록했다.
  • 결과는 하드웨어 및 네트워크 맥락에 따라 MCMK 컨볼루션 구현을 선택하기 위한 비용 모델의 필요성을 강조한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.