Skip to main content
QUICK REVIEW

[논문 리뷰] SparCE: Sparsity aware General Purpose Core Extensions to Accelerate Deep Neural Networks

Sanchari Sen, Shubham Jain|arXiv (Cornell University)|2017. 11. 07.
Advanced Neural Network Applications참고 문헌 41인용 수 5
한 줄 요약

SparCE는 일반 목적 프로세서(GPP)에 저비용의 마이크로아ー゠텍처 및 ISA 확장을 도입하여 딥 뉴럴 네트워크(DNN)의 정적 및 동적 희소성 모두를 활용해 추론과 훈련을 가속화한다. 스파arsity 레지스터 파일(SpRF)과 스파arsity 인식 스킵 어드레스(SASA) 테이블을 사용함으로써 SparCE는 명령어를 취득하기 이르기 전에 동적으로 부과되는 지연을 사전 식별하고 건너뛰며, 스칼라 프로세서에서는 1.11×–1.96×의 성능 향상과 6개의 이미지 인식 DNN에서 SIMD ARMv8 프로세서에서는 실행 시간을 8%–15% 감소시킨다.

ABSTRACT

Deep Neural Networks (DNNs) have emerged as the method of choice for solving a wide range of machine learning tasks. The enormous computational demands posed by DNNs have most commonly been addressed through the design of custom accelerators. However, these accelerators are prohibitive in many design scenarios (e.g., wearable devices and IoT sensors), due to stringent area/cost constraints. Accelerating DNNs on these low-power systems, comprising of mainly the general-purpose processor (GPP) cores, requires new approaches. We improve the performance of DNNs on GPPs by exploiting a key attribute of DNNs, i.e., sparsity. We propose Sparsity aware Core Extensions (SparCE)- a set of micro-architectural and ISA extensions that leverage sparsity and are minimally intrusive and low-overhead. We dynamically detect zero operands and skip a set of future instructions that use it. Our design ensures that the instructions to be skipped are prevented from even being fetched, as squashing instructions comes with a penalty. SparCE consists of 2 key micro-architectural enhancements- a Sparsity Register File (SpRF) that tracks zero registers and a Sparsity aware Skip Address (SASA) table that indicates instructions to be skipped. When an instruction is fetched, SparCE dynamically pre-identifies whether the following instruction(s) can be skipped and appropriately modifies the program counter, thereby skipping the redundant instructions and improving performance. We model SparCE using the gem5 architectural simulator, and evaluate our approach on 6 image-recognition DNNs in the context of both training and inference using the Caffe framework. On a scalar microprocessor, SparCE achieves 19%-31% reduction in application-level. We also evaluate SparCE on a 4-way SIMD ARMv8 processor using the OpenBLAS library, and demonstrate that SparCE achieves 8%-15% reduction in the application-level execution time.

연구 동기 및 목표

  • 맞춤형 가속기가 비실용적인 비용 및 면적 제약이 있는 임베디드 시스템에서 일반 목적 프로세서(GPP)를 사용해 딥 뉴럴 네트워크(DNN)의 추론과 훈련을 가속화하는 것.
  • 일반 목적 프로세서(GPP) 아키텍처에서 정적(자르기된 가중치)과 동적(ReLU 활성화 특징) 희소성을 효율적으로 활용하는 도전 과제를 해결하는 것.
  • 사전에 피연산자가 0임을 식별하여 명령어를 조기 건너뛰는 방식으로 성능 오버헤드를 최소화하면서도, 명령어 취득 이전에 부과되는 불필요한 계산을 사전에 식별하는 것.
  • 응용 프로그램 특화 수정 없이도 동적 및 정적 희소성을 모두 지원하는 최소한의 간섭성과 저비용 확장을 GPP에 설계하는 것.

제안 방법

  • 0 값을 포함하는 일반 목적 레지스터를 동적으로 추적할 수 있도록 스파arsity 레지스터 파일(SpRF)을 도입하여 런타임에서 0 피연산자를 감지할 수 있도록 한다.
  • 0 값을 가진 피연산자에 의존하는 명령어 시퀀스를 사전에 식별할 수 있도록 스파arsity 인식 스킵 어드레스(SASA) 테이블을 설계한다.
  • SpRF와 SASA 데이터를 사용하여 프로그램 카운터를 수정하고 불필요한 명령어의 취득을 방지함으로써, 중복 계산을 제거하는 Pre-identify and Skip Redundancy Unit(PSRU)를 구현한다.
  • gem5 시뮬레이터를 사용하여 SparCE 확장을 GPP 마이크로아키텍처에 통합하고, Caffe 기반 DNN 워크로드를 사용해 스칼라 및 4-웨이 SIMD ARMv8 프로세서에서 평가한다.
  • 다양한 희소성 수준(10%–90%)에서 성능 향상을 평가하기 위해 희소 행렬 연산과 희소 BLAS 라이브러리를 기준 비교로 사용한다.
  • SparCE를 6개의 최신 이미지 인식 DNN(ResNet 및 VGG 포함)에 적용하여 추론 및 훈련 단계 모두에서 평가한다.

실험 결과

연구 질문

  • RQ1일반 목적 프로세서에 스파arsity 인식 확장 기능을 효과적으로 통합하여 DNN 실행을 가속화할 수 있는가? 이때 면적 또는 성능 오버헤드가 크지 않은가?
  • RQ20 값을 가진 피연산자를 기반으로 한 동적 명령어 스킵이 DNN 워크로드에서 불필요한 계산을 줄이는 데 얼마나 효과적인가?
  • RQ3SparCE는 주류 DNN에서 정적(자르기된 가중치)과 동적(ReLU 활성화 특징) 희소성을 얼마나 잘 활용할 수 있는가?
  • RQ4SparCE를 사용할 경우 스칼라 및 SIMD GPP에서 성능 향상과 실행 시간 감소 측면에서 어떤 성과를 달성할 수 있는가?

주요 결과

  • 스칼라 마이크로프로세서에서 SparCE는 10%에서 90%의 희소성 수준을 가진 DNN의 컨볼루션 및 풀 커넥티드 레이어에서 1.11×에서 1.96×의 성능 향상을 달성한다.
  • 응용 프로그램 전체 수준에서 SparCE는 평가된 DNN 전반에서 실행 시간을 19%에서 31%까지 감소시켜 끝에서 끝까지의 성능 향상이 뚜렷하게 나타난다.
  • OpenBLAS를 사용한 4-웨이 SIMD ARMv8 프로세서에서 SparCE는 응용 프로그램 수준의 실행 시간을 8%에서 15%까지 감소시켜 벡터화된 실행 환경에서의 효과성을 입증한다.
  • PSRU 유닛은 사전에 스킵 조건을 식별하여 중복 명령어 취득을 방지함으로써 명령어 압축과 관련된 파이pline 스톱을 피할 수 있었다.
  • SparCE는 ReLU 활성화에서 유래한 동적 희소성과 가중치 자르기에서 유래한 정적 희소성을 효과적으로 활용하여 현대 DNN의 광범위한 적용 가능성을 확보한다.
  • 설계는 최소한의 간섭성과 저비용이어서 응용 프로그램이나 컴파일러의 수정이 필요 없으며, 기존의 GPP 기반 임베디드 시스템에 원활하게 통합될 수 있다.

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

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

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

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