Skip to main content
QUICK REVIEW

[논문 리뷰] Fast Algorithms for Convolutional Neural Networks

Andrew Lavin, Scott Gray|arXiv (Cornell University)|2015. 09. 30.
Advanced Neural Network Applications참고 문헌 12인용 수 78
한 줄 요약

이 논문은 3×3 필터의 크기가 작은 경우 최대 4배까지 산술 복잡도를 감소시키기 위해 최소 필터링을 활용한 윈오그라드 기반의 빠른 컨볼루션 알고리즘을 소개한다. 이 방법은 배치 크기 1~64 범위에서 NVIDIA Maxwell GPU에서 최신 기술 수준의 처리량을 달성하며, fp16 기준으로 cuDNN 대비 최대 2.64배, fp32 기준으로 최대 2.26배 빠르게 작동한다. 메모리 사용량은 최소 수준(≤16MB)이며, 높은 수치 정확도를 유지한다.

ABSTRACT

Deep convolutional neural networks take GPU days of compute time to train on large data sets. Pedestrian detection for self driving cars requires very low latency. Image recognition for mobile phones is constrained by limited processing resources. The success of convolutional neural networks in these situations is limited by how fast we can compute them. Conventional FFT based convolution is fast for large filters, but state of the art convolutional neural networks use small, 3x3 filters. We introduce a new class of fast algorithms for convolutional neural networks using Winograd's minimal filtering algorithms. The algorithms compute minimal complexity convolution over small tiles, which makes them fast with small filters and small batch sizes. We benchmark a GPU implementation of our algorithm with the VGG network and show state of the art throughput at batch sizes from 1 to 64.

연구 동기 및 목표

  • 자율주행차 및 모바일 장치와 같은 저지연 응용 분야에서 깊이 있는 CNN의 추론 및 훈련에서 발생하는 성능 저하 문제를 해결하기 위해.
  • 현대 아키텍처인 VGG와 같이 일반적인 소형 필터 및 소형 배치 크기에서 적용되는 전통적인 FFT 및 직접 컨볼루션 방법의 비효율성을 해결하기 위해.
  • 산술 복잡도를 감소시키면서도 높은 수치 정확도를 유지하고, 메모리 효율적인 컨볼루션 알고리즘을 개발하기 위해.
  • 대규모 배치 최적화에 의존하지 않고도 최소 배치 크기(1–64)에서 고처리량 추론을 가능하게 하기 위해.
  • 실제 VGG와 같은 CNN에 대해 윈오그라드 기반 컨볼루션의 실질적인 GPU 가속을 입증하고, cuDNN과 같은 기존 라이브러리보다 뛰어난 성능을 보이기 위해.

제안 방법

  • 이 방법은 2차원 컨볼루션을 계산할 때 다항식의 최소 필터링 알고리즘인 윈오그라드 기반 기법을 사용하여 곱셈 복잡도를 감소시키며, 특히 F(2×2,3×3) 및 F(4×4,3×3) 알고리즘을 적용하여 m×n 출력 및 r×s 필터에 대해 (m+r−1)(n+s−1)번의 곱셈만으로도 처리할 수 있다.
  • 컨볼루션을 행렬 연산으로 재구성하여 Y = Aᵀ[(Gg)⊙(Bᵀd)]로 표현함으로써, 변환된 필터 및 데이터 입력을 효율적인 조밀 행렬 곱셈으로 처리할 수 있도록 한다.
  • 이 알고리즘은 두 가지 변형을 사용한다: 전역 워크스페이스가 없는 융합 변환(variant)과 외부 필터 변환(FX) 변형이며, 소형에서 중간 크기의 필터/채널 수에 적합한 것은 융합 변환을 우선적으로 사용한다.
  • 직접 컨볼루션 대비 최대 4배까지 산술 복잡도를 감소시키며, 대부분의 연산이 고성능 조밀 행렬 곱셈에 집중된다.
  • 사전 계산된 변환 행렬 A, B, G를 사용하여 낮은 정밀도 손실로도 신속하고 수치적으로 안정된 계산을 가능하게 하며, fp16에서도 높은 정확도를 유지한다.
  • 이 구현은 NVIDIA Maxwell GPU에 최적화되어 있어 높은 메모리 대역폭 활용도와 낮은 메모리 프로필(≤16MB 워크스페이스)을 달성한다.

실험 결과

연구 질문

  • RQ1현대 CNN인 VGG와 같은 아키텍처에서 소규모 배치 및 소형 필터 컨볼루션에 대해 윈오그라드 기반 최소 필터링 알고리즘이 뛰어난 처리량을 달성할 수 있는가?
  • RQ2배치 크기 1에서 64까지 변화하는 범위에서 윈오그라드 컨볼루션의 성능이 FFT 기반 및 직접 컨볼루션과 비교해 어떻게 되는가?
  • RQ3윈오그라드 기반 컨볼루션의 메모리 및 정밀도 오버헤드는 무엇이며, 실용적 구현을 위해 최소화할 수 있는가?
  • RQ4직접 컨볼루션과 비교해 낮은 정밀도 데이터(fp16)를 사용할 경우 알고리즘이 수치 정확도를 유지하는가?
  • RQ5더 큰 필터 벡터 및 레이어로 확장해도 성능 저하 없이 확장 가능한가?

주요 결과

  • 배치 크기 1, fp32 데이터에서 F(2×2,3×3) 윈오그라드 알고리즘이 cuDNN 대비 2.26배 높은 처리량을 기록했으며, 7.03 TFLOPS에 도달했다.
  • 배치 크기 8, fp16 데이터에서 알고리즘은 9.57 TFLOPS를 기록했으며, cuDNN 대비 7.42배 빠른 성능을 보였다.
  • 융합 F(2×2,3×3) 변형은 전역 워크스페이스를 사용하지 않았고, FX 변형은 최대 16MB의 워크스페이스만 사용했으며, cuDNN의 2.6GB 대비 크게 감소했다.
  • 알고리즘이 VGG의 모든 레이어에서 cuDNN을 초월했으며, 유일하게 성능이 열등했던 conv1.1 레이어는 총 계산의 0.5% 미만을 차지했다.
  • fp16 데이터에서 배치 크기 64일 때 F(2×2,3×3)는 10.28 TFLOPS를 기록했으며, cuDNN 대비 1.63배 빠른 성능을 보였다.
  • fp32 데이터에서 F(2×2,3×3)의 최대 요소 오차는 직접 컨볼루션보다 낮았고, fp16 데이터에서는 모든 알고리즘이 동일한 정확도를 유지했다.

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

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

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

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