Skip to main content
QUICK REVIEW

[논문 리뷰] SparseTrain:Leveraging Dynamic Sparsity in Training DNNs on General-Purpose SIMD Processors

Zhangxiaowen Gong, Houxiang Ji|arXiv (Cornell University)|2019. 11. 22.
Advanced Neural Network Applications참고 문헌 35인용 수 5
한 줄 요약

SparseTrain는 일반 목적의 SIMD CPU에서 DNN 학습 중 ReLU 활성화에 기인한 동적 스파arsity를 소프트웨어 기반으로 활용하는 프레임워크이다. 런타임에 0 값을 탐지하고 최적화된 루프 순서 및 벡터화된 0 체크를 통해 계산을 건너뛰어, 하드웨어 수정 없이 VGG16, ResNet-34, ResNet-50 및 Fixup ResNet-50에서 조밀한 컨볼루션 대비 1.31배에서 2.19배의 성능 향상을 달성한다.

ABSTRACT

Our community has greatly improved the efficiency of deep learning applications, including by exploiting sparsity in inputs. Most of that work, though, is for inference, where weight sparsity is known statically, and/or for specialized hardware. We propose a scheme to leverage dynamic sparsity during training. In particular, we exploit zeros introduced by the ReLU activation function to both feature maps and their gradients. This is challenging because the sparsity degree is moderate and the locations of zeros change over time. We also rely purely on software. We identify zeros in a dense data representation without transforming the data and performs conventional vectorized computation. Variations of the scheme are applicable to all major components of training: forward propagation, backward propagation by inputs, and backward propagation by weights. Our method significantly outperforms a highly-optimized dense direct convolution on several popular deep neural networks. At realistic sparsity, we speed up the training of the non-initial convolutional layers in VGG16, ResNet-34, ResNet-50, and Fixup ResNet-50 by 2.19x, 1.37x, 1.31x, and 1.51x respectively on an Intel Skylake-X CPU.

연구 동기 및 목표

  • 일반 목적의 CPU에서 DNN 학습 중 동적 스파arsity를 효율적으로 활용할 수 있는 소프트웨어 기법의 부족을 해결한다.
  • ReLU에 의해 유도되는 중간 정도의, 시간에 따라 변하는 활성화 및 기울기의 스파arsity 패턴이 초래하는 과제를 극복한다.
  • 하드웨어 수정 없이도 상당한 성능 향상을 달성한다.
  • 표준 조밀한 데이터 레이아웃과 벡터화된 명령어 세트(SIMD)와의 호환성을 유지한다.
  • VGG16, ResNet 및 Fixup ResNet-50를 포함한 다양한 컨volutional 네트워크 아키텍처에서 높은 성능을 달성한다.

제안 방법

  • 데이터 레이아웃 변환 또는 스파arsity 표현 없이 런타임에 특징 맵과 기울기의 0 값 탐지를 수행한다.
  • ReLU 출력의 대량 재사용을 고려해 계산 루프 순서를 재정렬하여 0 탐지 비용과 분기 비용을 분산시킨다.
  • SIMD 벡터 폭(V)에 따라 0 체크 연산을 벡터화하여 명령어 수준의 병렬성 향상과 분기 잘못 예측 감소를 도모한다.
  • 루프 변환 및 소프트웨어 펌프링을 적용하여 오버헤드를 최소화하고 데이터 국소성 및 병렬성을 향상시킨다.
  • 전방 전파, 입력에 의한 역전파, 가중치에 의한 역전파의 세 단계를 모두 동일한 스파arsity 인식 커널 설계로 최적화한다.
  • 정적 루프 타일링과 런타임 분기 예측을 조합한 하이브리드 접근 방식을 사용하여 짧은 루프에서의 잘못 예측 페널티를 감소시킨다.

실험 결과

연구 질문

  • RQ1일반 목적의 CPU에서 소프트웨어 기반으로만 동적 스파arsity를 효과적으로 활용할 수 있는가?
  • RQ2데이터 레이아웃을 변경하지 않고도 조밀하고 벡터화된 커널에 0 탐지 및 계산 건너뛰기를 효율적으로 통합할 수 있는가?
  • RQ3중간 정도의 동적 스파arsity 하에서 오버헤드를 최소화하면서 성능 향상을 극대화하기 위한 루프 순서 및 벡터화 전략은 무엇인가?
  • RQ4실제 DNN 환경에서 일반 하드웨어에서 스파arsity 활용이 얼마나 높은 최적화된 조밀한 컨볼루션을 초월할 수 있는가?
  • RQ5다양한 네트워크 아키텍처에서 스파arsity 및 계산 패턴이 다를 경우 이 방법은 어떻게 확장 가능한가?

주요 결과

  • Intel Skylake-X CPU에서 VGG16의 비초기 레이어에서 SparseTrain은 조밀한 컨볼루션 대비 2.19배의 성능 향상을 달성한다.
  • Fixup ResNet-50에서는 1.51배, ResNet-34에서는 1.37배, ResNet-50에서는 1.31배의 성능 향상을 실질적인 스파arsity 수준에서 기록한다.
  • 0% 스파arsity에서 이 방법은 매우 최적화된 조밀한 베이스라인의 10% 이내에서 성능를 유지하여 낮은 오버헤드를 입증한다.
  • 성능 향상은 여러 아키텍처에 걸쳐 일관되게 유지되어 현대 CNN에 광범위하게 적용 가능함을 시사한다.
  • 이 방법은 데이터 표현 방식을 변경하지 않고도 0 값 입력 및 기울기에서의 연산을 건너뛰어 계산 시간을 효과적으로 줄인다.
  • 벡터화된 0 체크 및 루프 최적화는 조절된 반복 횟수를 가진 변환된 루프에서도 분기 잘못 예측 페널티를 크게 감소시킨다.

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

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

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

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