Skip to main content
QUICK REVIEW

[논문 리뷰] MEC: Memory-efficient Convolution for Deep Neural Network

Minsik Cho, Daniël Brand|arXiv (Cornell University)|2017. 06. 21.
Advanced Neural Network Applications참고 문헌 24인용 수 49
한 줄 요약

MEC(메모리 효율적 컨볼루션)는 입력 텐서를 고도로 압축된 형식으로 압축하여 메모리 오버헤드를 줄이는 새로운 컨볼루션 알고리즘으로, 최적화된 BLAS 루틴을 통해 더 빠른 행렬 곱셈을 가능하게 한다. 기존 방법에 비해 모바일 디바이스에서 최대 3.4배 낮은 메모리 사용량과 90% 빠른 추론 성능을 달성하며, 다양한 DNN 워크로드에서 CPU 및 GPU 플랫폼 모두에서 뚜렷한 성능 향상을 이룬다.

ABSTRACT

Convolution is a critical component in modern deep neural networks, thus several algorithms for convolution have been developed. Direct convolution is simple but suffers from poor performance. As an alternative, multiple indirect methods have been proposed including im2col-based convolution, FFT-based convolution, or Winograd-based algorithm. However, all these indirect methods have high memory-overhead, which creates performance degradation and offers a poor trade-off between performance and memory consumption. In this work, we propose a memory-efficient convolution or MEC with compact lowering, which reduces memory-overhead substantially and accelerates convolution process. MEC lowers the input matrix in a simple yet efficient/compact way (i.e., much less memory-overhead), and then executes multiple small matrix multiplications in parallel to get convolution completed. Additionally, the reduced memory footprint improves memory sub-system efficiency, improving performance. Our experimental results show that MEC reduces memory consumption significantly with good speedup on both mobile and server platforms, compared with other indirect convolution algorithms.

연구 동기 및 목표

  • 메모리 제약이 있는 디바이스에서 성능 저하를 초래하는 간접적 컨볼루션 방법(예: im2col, FFT, Winograd)의 높은 메모리 오버헤드를 해결한다.
  • 정확도를 희생시키지 않고도 높은 계산 성능을 유지하는 메모리 효율적인 컨볼루션 알고리즘을 개발한다.
  • 캐시 국소성과 메모리 서브시스템 효율성을 향상시키기 위해 메모리 프로파일을 줄인다. 특히 메모리가 제한된 모바일 및 서버 플랫폼에서 유리하다.
  • 모바일, GPU, CPU 시스템을 포함한 다양한 하드웨어에 배포 가능한 일반적이고 플랫폼에 구애받지 않는 컨볼루션 엔진을 구축한다.
  • 메모리 트래픽과 SRAM 사용량을 최소화하여 엣지 및 모바일 AI 응용 프로그램의 에너지 소비를 낮추고 반응 시간을 향상시킨다.

제안 방법

  • 기존 im2col 또는 Winograd 방법에 비해 훨씬 적은 메모리로 사용되는 입력 특징 맵을 압축된 텐서 형식(L)으로 변환하는 압축된 내림표기 기법을 제안한다.
  • 고도로 최적화된 BLAS 루틴을 사용해 다수의 작은 행렬 곱셈을 동시에 실행한다. 이는 빠른 GEMM 연산을 활용한다.
  • 기존 컨볼루션과 동일한 기능적 출력을 유지하지만, 효율적인 데이터 레이아웃 덕분에 메모리 프로파일이 크게 감소한다.
  • 행 우선 텐서 인덱싱과 부분 행렬 연산을 사용해 기존 BLAS 라이브러리에 직접 통합할 수 있으며, 데이터 이동 없이도 가능하다.
  • 캐시 국소성을 향상시키기 위해 메모리 액세스 패턴을 최적화하며, 특히 서버 CPU의 복잡한 캐시 계층에서 유리하다.
  • 커널 설정 제약 없이 CPU 및 GPU 배포를 모두 지원하며, 모든 컨볼루션 커널과 채널에서 완전한 병렬화를 가능하게 한다.

실험 결과

연구 질문

  • RQ1새로운 행렬 내림표기 기법이 계산 효율성에 영향을 주지 않으면서도 컨볼루션의 메모리 오버헤드를 줄일 수 있는가?
  • RQ2모바일 및 서버 플랫폼에서 MEC는 im2col, FFT, Winograd에 비해 메모리 소비와 런타임 측면에서 어떻게 비교되는가?
  • RQ3낮아진 메모리 프로파일이 캐시 효율성과 컨볼루션 연산의 전체 성능에 얼마나 기여하는가?
  • RQ4커널 전용 튜닝이나 설정 제약 없이도 MEC가 다양한 하드웨어 플랫폼(CPU, GPU, 모바일)에서 높은 성능을 달성할 수 있는가?
  • RQ5MEC의 메모리 효율성이 실세계 DNN(예: ResNet-101)에서 에너지 효율성과 추론 속도 향상 측면에서 측정 가능한 성과로 이어지는가?

주요 결과

  • MEC는 모바일 플랫폼에서 im2col 기반 컨볼루션 대비 최대 3.4배 낮은 메모리 소비를 기록했으며, 평균 3.2배 향상되었다.
  • MEC.cpu는 특정 레이어(cv6)에서 Conv.cpu 대비 최대 90% 더 빠른 추론을 달성했으며, 전체적으로도 20% 더 빠르게 작동한다.
  • 서버 CPU에서 MEC.cpu는 Conv.cpu 대비 런타임을 8.8배 감소시켰으며, 7개 벤치마크 중 5개에서 Wino.cpu를 능가했다.
  • 서버 GPU에서 MEC.gpu는 테스트된 모든 방법 중에서 가장 낮은 메모리 오버헤드를 기록했으며, 데이터 이동이 줄어들어 행렬 쓰기 연산이 Conv.gpu 대비 85% 더 빠르게 작동했다.
  • 모바일에서 ResNet-101 추론 시 MEC는 총 메모리 사용량을 3배 줄였고, 표준 컨볼루션 대비 런타임을 20% 향상시켰다.
  • 기본 캐시 시스템에서 MEC.cpu는 0.3%의 최종 레벨 캐시 미스 비율(비교 대상인 Conv.cpu는 4%)을 기록해 뛰어난 캐시 효율성을 입증했다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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