[논문 리뷰] Dynamic Stripes: Exploiting the Dynamic Precision Requirements of Activation Values in Neural Networks
Dynamic Stripes는 딥 네ural 네트워크 가속기에서 런타임 정밀도 적응 기법을 도입하여, 16개의 활성화 값 그룹당 최소로 필요한 정밀도를 탐지함으로써 비트-연속 계산을 동적으로 감소시킨다. 층 단위 프로파일링보다 더 세밀한 정도의 가변 정밀도를 활용함으로써, 기본 설계인 Stripes 대비 41%의 성능 향상을 달성하였으며, 현대의 CNN에서 DaDianNao 대비 최대 3.28배의 속도 향상을 기록한다.
Stripes is a Deep Neural Network (DNN) accelerator that uses bit-serial computation to offer performance that is proportional to the fixed-point precision of the activation values. The fixed-point precisions are determined a priori using profiling and are selected at a per layer granularity. This paper presents Dynamic Stripes, an extension to Stripes that detects precision variance at runtime and at a finer granularity. This extra level of precision reduction increases performance by 41% over Stripes.
연구 동기 및 목표
- Stripes와 같은 DNN 가속기에서 고정된 층 단위 정밀도로 인해 발생하는 비효율성을 해결하기 위해.
- 16개의 활성화 값 그룹 수준까지 세밀하게 조정 가능한 런타임 최적화 정밀도 선택이 성능 향상에 상당한 기여를 할 수 있는지 탐색하기 위해.
- 실시간으로 각 활성화 값 그룹당 최소로 필요한 정밀도(nH 및 nL)를 탐지하는 하드웨are-소프트웨어 공동 설계를 설계하고 평가하기 위해.
- 정적 프로파일링 및 Pragmatic의 1비트 탐지와 같은 다른 최적화 전략과의 성능 비교를 위해.
제안 방법
- 시스템은 OR 기반의 최상위 1비트 및 최하위 1비트 탐지 회로를 사용하여, 각 16개의 활성화 값 그룹에서 가장 높은 비트(nH)와 가장 낮은 비트(nL) 위치에 1이 있는지를 디스패처를 통해 탐지한다.
- 4비트 오프셋 인코더는 nH 및 nL 값을 처리 타일로 전송하여, nH에서 시작하여 nL에서 끝나는 비트-연속 계산을 가능하게 한다.
- 각 처리 타일은 nH/nL 오프셋에 의해 제어되는 오른쪽 비트 시프터를 갖춘 수정된 시리얼 내적 단위(SIP)를 사용하여 부분 곱을 정확히 정렬한다.
- 카운터와 비교기 회로를 활용하여 각 그룹의 처리 종료를 표시하는 종료 그룹(EoG) 신호를 타일 간에 동기화한다.
- 전체 폭 데이터 경로가 필요로 하지 않도록 하여, 그룹 단위 정밀도 조정을 지원함으로써 면적과 대역폭 오버헤드를 최소화한다.
- 사이클 정밀 시뮬레이터를 확장하여 런타임 정밀도 탐지 기능을 지원하고, 그 결과를 Stripes 및 DaDianNao와 비교 평가하였다.
실험 결과
연구 질문
- RQ1DNN 가속기에서 층 단위 정밀도 프로파일링 대비 16개 활성화 값 그룹 수준의 런타임 정밀도 적응이 성능 향상에 상당한 기여를 할 수 있는가?
- RQ2런타임 시 활성화 값의 실제 동적 정밀도 요구 사항을 탐지하고 활용함으로써 얼마나 많은 성능 향상을 기대할 수 있는가?
- RQ3동적 정밀도 감소 전략은 Pragmatic의 1비트 탐지나 고정 정밀도 계산과 같은 다른 최적화 전략과 비교해 볼 때 어떻게 성능을 내는가?
- RQ4그룹 수준에서 동적 정밀도 탐지 기능을 지원하기 위한 하드웨어 비용과 면적 오버헤드는 얼마나 되는가?
- RQ5제안된 방법은 값 기반 최적화(예: 덜 중요한 1비트를 잘라내기)와 효과적으로 조합되어 성능 향상을 더욱 향상시킬 수 있는가?
주요 결과
- Dynamic Stripes는 16개 활성화 값 그룹 수준에서 그룹 단위 정밀도 적응을 가능하게 하여, 기본 설계인 Stripes 대비 41%의 성능 향상을 달성하였다.
- DaDianNao 대비 다양한 네트워크에서 1.27배에서 3.28배의 속도 향상을 기록하였으며, 기하 평균으로 2.61배의 성능 향상을 기록하였다.
- AlexNet에서는 동적 정밀도와 값 기반 최적화(예: 덜 중요한 1비트 잘라내기)의 조합으로 전체 범위 시프터를 사용할 경우 4.83배의 속도 향상을 달성하였다.
- 희소한 1비트를 가진 활성화 값에서 불필요한 비트-연속 연산을 제거함으로써 계산 사이클을 줄였다.
- 그룹당 5개의 신호(4개의 오프셋, 1개의 EoG)만 추가되어 면적과 대역폭 오버헤드가 극히 미미하였다.
- VGG-S 및 GoogLeNet과 같은 네트워크에서 동적 정밀도 적응이 계산 사이클을 크게 줄여 성능 향상이 두드러지게 나타났다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.