Skip to main content
QUICK REVIEW

[논문 리뷰] Enabling Sparse Winograd Convolution by Native Pruning

Sheng R. Li, Jongsoo Park|arXiv (Cornell University)|2017. 02. 28.
Advanced Neural Network Applications참고 문헌 14인용 수 47
한 줄 요약

이 논문은 Winograd 컨볼루션 레이어에 대한 네이티브 프루닝 방법을 제안하며, Winograd 매개변수에서 90% 이상의 흐าก이면서도 정확도 손실이 극히 적은(Imagenet에서 0.1%) 상태를 달성한다. 이는 고유한 흐린 Winograd 커널 구현을 통해 공간적 흐릿함을 활용하여 Intel Xeon CPU에서 밀도 있는 직접 컨볼루션 대비 5.4배 빠르게, 이상적인 밀도 있는 Winograd 컨볼루션 대비 2.1배 빠르게 성능 향상을 이룬다.

ABSTRACT

Sparse methods and the use of Winograd convolutions are two orthogonal approaches, each of which significantly accelerates convolution computations in modern CNNs. Sparse Winograd merges these two and thus has the potential to offer a combined performance benefit. Nevertheless, training convolution layers so that the resulting Winograd kernels are sparse has not hitherto been very successful. By introducing a Winograd layer in place of a standard convolution layer, we can learn and prune Winograd coefficients "natively" and obtain sparsity level beyond 90% with only 0.1% accuracy loss with AlexNet on ImageNet dataset. Furthermore, we present a sparse Winograd convolution algorithm and implementation that exploits the sparsity, achieving up to 31.7 effective TFLOP/s in 32-bit precision on a latest Intel Xeon CPU, which corresponds to a 5.4x speedup over a state-of-the-art dense convolution implementation.

연구 동기 및 목표

  • 공간 도메인에서 프루닝할 경우 역전환이 불가능한 변환으로 인해 어려움을 겪는 Winograd 컨볼루션 커널에서 고밀도 흐릿함을 달성하는 데 도전하는 것.
  • 표준 컨볼루션 레이어를 공간 및 Winograd 매개변수 간의 일관성 불일치를 제거하기 위해 직접 Winograd 계수를 훈련하고 프루닝하는 네이티브 Winograd 레이어로 대체함.
  • 현대 CPU에서 고밀도 흐릿함을 효과적으로 활용하여 실제 추론 속도 향상을 이룰 수 있는 최적화된 흐린 Winograd 컨볼루션 구현을 개발하는 것.
  • 네이티브 Winograd 도메인에서의 프루닝이 공간 도메인 프루닝보다 더 높은 표현력과 더 효과적인 프루닝을 가능하게 함을 입증하는 것.

제안 방법

  • 공간 커널 대신 Winograd 계수를 직접 매개변수화하고 훈련하는 Winograd 레이어로 표준 컨볼루션 레이어를 대체함.
  • 기울기 기반 임계값 설정과 L1 정규화를 적용하여 Winograd 도메인에서 직접 Winograd 계수를 프루닝함으로써, 공간 도메인 프루닝에 의존하지 않고도 고밀도 흐릿함을 달성함.
  • 공간에서 Winograd 매개변수로의 변환에 비가역적 변환이 존재하는 것이 핵심 장애물이며, 이는 둘 다를 동시에 최적화할 필요 없이 제거함으로써 해결됨.
  • 0값 연산을 건너뛰고 최적화된 메모리 접근 및 계산 패턴을 사용하여 흐릿함을 효율적으로 활용하는 고유한 흐린 Winograd 컨볼루션 커널 설계.
  • 효율적인 메모리 레이아웃과 스레딩을 사용하여 Intel Xeon CPU에 고도로 최적화된 커널로 흐린 Winograd 커널을 구현함.
  • 효율적 FLOP/s를 측정하여, 밀도 있는 직접 컨볼루션, 이상적인 밀도 있는 Winograd 컨볼루션, 그리고 흐린 직접 컨볼루션 구현과의 성능 비교를 수행함.

실험 결과

연구 질문

  • RQ1Winograd 도메인에서 직접 프루닝할 경우, 정확도 저하 없이 Winograd 컨볼루션 커널에서 고밀도 흐릿함을 달성할 수 있는가?
  • RQ2기존의 공간 도메인 프루닝은 왜 의미 있는 Winograd 흐릿함을 생성하지 못하는가? 이 문제는 어떻게 해결할 수 있는가?
  • RQ3네이티브 Winograd 레이어 아키텍처는 공간 및 Winograd 매개변수를 동시에 최적화하는 것보다 더 효과적이고 일관성 있는 프루닝을 가능하게 하는가?
  • RQ4현대 CPU에서 고밀도 흐릿함을 효과적으로 활용하는 고유한 흐린 Winograd 컨볼루션 구현을 통해 어떤 성능 향상이 달성될 수 있는가?
  • RQ5네이티브 프루닝과 흐린 Winograd 컨볼루션의 조합이 기존의 흐린 또는 Winograd 전용 접근 방식보다 더 효과적인가?

주요 결과

  • 네이티브 Winograd 도메인에서의 프루닝은 AlexNet의 3×3 및 5×5 컨볼루션 레이어에서 90.6%에서 95.8%의 흐릿함을 달성하며, 상위-1 정확도 손실은 0.1%에 불과하다.
  • 이 방법은 Intel Xeon Platinum 8180 CPU에서 밀도 있는 직접 컨볼루션 대비 5.4배, 이상적인 밀도 있는 Winograd 컨볼루션 대비 2.1배 빠른 성능 향상을 달성한다.
  • Winograd 도메인의 흐릿함은 공간 도메인의 흐릿함보다 현저히 높다: 공간 프루닝은 약 85%의 흐릿함을 달성하지만, Winograd로 변환하면 흐릿함이 25~70%로 떨어지며, 이는 네이티브 프루닝의 우수성을 보여준다.
  • 흐린 Winograd 커널의 구현은 32비트 정밀도에서 최대 31.7 effective TFLOP/s를 달성하여 현대 서버급 CPU에서 높은 계산 효율성을 입증한다.
  • 이 방법은 공간 도메인에 존재하지 않는 고립된 비영인 계수와 같은 Winograd 공간에서의 고유한 프루닝 패턴을 가능하게 하여 더 높은 표현력과 프루닝의 유연성을 보여준다.
  • 이 접근 방식은 흐린 직접 컨볼루션과 이상적인 밀도 있는 Winograd 컨볼루션을 모두 능가하며, 네이티브 프루닝과 흐린 Winograd 계산의 조합이 효과적임을 입증한다.

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

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

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

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