Skip to main content
QUICK REVIEW

[논문 리뷰] Deep Tensor Convolution on Multicores

David Budden, Alexander Matveev|arXiv (Cornell University)|2016. 11. 20.
Tensor decomposition and applications참고 문헌 32인용 수 7
한 줄 요약

이 논문은 딥러닝 워크로드를 위한 다차원 윈오그라드 기반 컨벌루션의 고도로 최적화된 다중 스레드 CPU 구현을 제안한다. CPU 전용 메모리 액세스 패턴과 벡터화를 활용하여 최신 CPU 프레임워크 대비 5–25× 높은 처리량을 달성한다. 이 방법은 GPU 메모리 제약을 극복함으로써 단일 노드 시스템에서 대규모 3D 컨볼루션 네트워크를 실행할 수 있도록 한다.

ABSTRACT

Deep convolutional neural networks (ConvNets) of 3-dimensional kernels allow joint modeling of spatiotemporal features. These networks have improved performance of video and volumetric image analysis, but have been limited in size due to the low memory ceiling of GPU hardware. Existing CPU implementations overcome this constraint but are impractically slow. Here we extend and optimize the faster Winograd-class of convolutional algorithms to the $N$-dimensional case and specifically for CPU hardware. First, we remove the need to manually hand-craft algorithms by exploiting the relaxed constraints and cheap sparse access of CPU memory. Second, we maximize CPU utilization and multicore scalability by transforming data matrices to be cache-aware, integer multiples of AVX vector widths. Treating 2-dimensional ConvNets as a special (and the least beneficial) case of our approach, we demonstrate a 5 to 25-fold improvement in throughput compared to previous state-of-the-art.

연구 동기 및 목표

  • 영상 및 부피형 영상 분석에서 3D 컨볼루션 네트워크의 크기와 표현력을 제한하는 GPU의 메모리 한계를 해결한다.
  • 기존 CPU 기반 컨볼루션 네트워크 구현의 비현실적으로 느린 성능을 극복한다.
  • 다중코어 CPU 아키텍처를 활용하여 3D 및 고차원 컨볼루션 네트워크의 대규모 단일 노드 실행을 가능하게 한다.
  • CPU 최적화 성능을 위한 N차원 커널에 대한 빠른 컨벌루션 알고리즘(윈오그라드 스타일)의 일반화를 개발한다.

제안 방법

  • 윈오그라드 빠른 컨벌루션 프레임워크를 N차원 커널으로 확장하여 3D 및 고차원 컨벌루션의 효율적 계산을 가능하게 한다.
  • CPU 메모리의 유연한 제약 조건과 효율적인 희소 액세스 패턴을 활용하여 수작업 알고리즘 최적화가 필요 없도록 한다.
  • 입력 및 커널 데이터를 캐시 우수한 AVX 정렬 행렬 형식으로 변환하여 벡터화와 CPU 활용도를 극대화한다.
  • 중국인의 나머지 정리를 통한 행렬 분해를 통해 슬라이딩 윈도우 컨벌루션을 희소 요소 곱셈으로 변환한다.
  • 커널 및 데이터 변환(C, B)과 역변환(A)을 적용하여 컨벌루션을 행렬-벡터 연산으로 간소화하고 중복 계산을 최소화한다.
  • 데이터 레이아웃과 메모리 액세스 패턴을 최적화하여 다중코어 환경에서의 데이터 국소성 향상과 지연 감소를 달성한다.

실험 결과

연구 질문

  • RQ1수작업 최적화 없이도 CPU 아키텍처에 대해 N차원 윈오그라드 스타일 컨벌루션을 효율적이고 자동으로 생성할 수 있는가?
  • RQ2CPU 메모리 특성과 벡터화 기능을 얼마나 잘 활용하여 GPU 최적화 구현(메모리 제약 있음)을 뛰어넘을 수 있는가?
  • RQ3기존 딥러닝 프레임워크 대비 다중코어 시스템에서 제안된 방법의 확장성은 어떻게 되는가?
  • RQ4CPU 및 GPU 구현 간의 3D 컨볼루션 네트워크 성능 격차를 크게 줄여 실용적인 대규모 추론을 가능하게 할 수 있는가?

주요 결과

  • 제안된 방법은 단일 CPU 코어에서 0.89 MVox/s의 처리량을 달성하여 텐서플로우(0.18 MVox/s) 및 카페(0.19 MVox/s) 대비 4.9× 향상되었다.
  • 18개 코어를 사용할 경우 처리량은 10.9 MVox/s에 도달하여 텐서플로우(1.77 MVox/s) 대비 5.8× 향상되고 카페(0.41 MVox/s) 대비 26.6× 향상되었다.
  • 이 구현은 68%의 다중코어 스케일러빌리티를 보이며, 텐서플로우(55%) 및 카페(12%)를 크게 앞서나갔다.
  • GPU 메모리 제약을 극복함으로써 이 방법은 단일 노드 시스템에서 대규모 3D 컨볼루션 네트워크의 실용적 구현을 가능하게 한다.
  • 이 방법은 2D 컨볼루션 네트워크의 특수 케이스로 일반화되며, 다양한 네트워크 유형에서 높은 성능 유지를 유지한다.
  • 성능 향상 요인은 효율적인 메모리 액세스, AVX 벡터화, 수작업 최적화 커널에 대한 의존도 감소에 기인한다.

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

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

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

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