[논문 리뷰] Cnvlutin2: Ineffectual-Activation-and-Weight-Free Deep Neural Network Computing
Cnvlutin2는 핵심 하드웨어를 수정하지 않고도 메모리 로드 중 동적 탐지와 지능적인 인코딩을 통해 비효율적 활성화와 가중치에 대한 계산을 제거하는 딥 뉴럴 네트워크 가속기이다. 이는 메모리 용량과 에너지 소비를 줄이는 데 기여하며, 가중치 상태 신호 전달의 오버헤드를 최대 256배까지 감소시킨다. 이는 사전에 건너뛰기 조건을 계산하여 달성된다. 이로 인해 최소한의 면적과 에너지 비용으로도 효율적인 프루닝 인식 추론이 가능해진다.
We discuss several modifications and extensions over the previous proposed Cnvlutin (CNV) accelerator for convolutional and fully-connected layers of Deep Learning Network. We first describe different encodings of the activations that are deemed ineffectual. The encodings have different memory overhead and energy characteristics. We propose using a level of indirection when accessing activations from memory to reduce their memory footprint by storing only the effectual activations. We also present a modified organization that detects the activations that are deemed as ineffectual while fetching them from memory. This is different than the original design that instead detected them at the output of the preceding layer. Finally, we present an extended CNV that can also skip ineffectual weights.
연구 동기 및 목표
- 값의 내용에 관계없이 모든 활성화와 가중치를 처리하는 기존 DNN 가속기의 비효율성 해결.
- 효과적 활성화와 가중치만 인코딩하여 DNN 추론 시 메모리 저장 및 에너지 오버헤드를 감소시키기.
- 메모리 로드 중 비효율적 활성화를 런타임에 탐지하여 저장 및 액세스 비용을 제거하기.
- CNV 아키텍처를 확장하여 비효율적 활성화와 비효율적 가중치를 포함한 계산을 건너뛸 수 있도록 하기.
- 핵심 실행 유닛을 변경하지 않고 디스patcher와 리듀서만 수정하여 기존 하드웨어와의 호환성 유지하기.
제안 방법
- 원래 CNV의 (활성화, 오프셋) 쌍 형식에 비해 비효율적 활성화의 메모리 및 에너지 오버헤드를 줄이기 위해 여러 인코딩 체계 도입.
- 메모리 로드 수준에서 실시간으로 비효율적 활성화를 탐지하는 메커니즘 제안 — 명시적 플래그를 저장할 필요 없이 로드 중에 탐지.
- 간접 인덱싱을 통해 비효율적 활성화를 저장하지 않고도 효과적 활성화만 메모리에 저장함으로써 메모리 용량을 감소.
- 디스패처 논리 확장 — 활성화 효과성(I 벡터)과 가중치 효과성(IS 벡터)을 결합하여 계산을 건너뛸 수 있는지 판단.
- 필터 간에 IS 벡터의 곱을 사전 계산하여 가중치 상태 신호 전달 오버헤드를 16비트/브릭에서 1비트/16브릭으로 감소.
- 불리언 논리 조건 사용: Can_Skip = (모든 f에 대해 IS_f=0) AND (I=0), 여기서 I는 활성화 효과성 벡터이고 IS_f는 필터 f에 대한 가중치 효과성이다.
실험 결과
연구 질문
- RQ1비효율적 활성화 인코딩을 위한 메모리 저장 및 에너지 오버헤드를 감소시키되 탐지 정확도를 훼손하지 않도록 할 수 있는가?
- RQ2비효율적 활성화 탐지 기능을 메모리 로드 단계에서 수행하여 저장 및 액세스 비용을 제거할 수 있는가?
- RQ3간접 인덱싱을 사용해 효과적 활성화만 저장함으로써 메모리 용량을 얼마나 줄일 수 있는가?
- RQ4CNV의 성능 및 에너지 효율성을 비효율적 가중치의 프루닝 인식 기반 건너뛰기 기능까지 확장할 수 있는가?
- RQ5타일 내 여러 필터에 걸쳐 가중치 효과성을 사전 계산할 경우, 신호 전달 오버헤드는 얼마나 감소하는가?
주요 결과
- 제안된 인코딩 체계는 원래 CNV의 (활성화, 오프셋) 형식에 비해 비효율적 활성화 표현에 대한 메모리 및 에너지 오버헤드를 감소시킨다.
- 메모리 로드 수준에서 비효율적 활성화를 탐지하는 기능은 명시적 플래그를 저장하지 않기 때문에 추가적인 메모리 저장 또는 액세스 오버헤드를 유발하지 않는다.
- 간접 인덱싱을 통해 효과적 활성화만 저장함으로써 0 또는 근접한 0 값의 저장을 제거하여 메모리 용량을 감소시킨다.
- IS 벡터 곱의 사전 계산으로 가중치 상태 신호 전달 오버헤드가 원래 브릭 크기의 1/16에서 1/256로 감소하여 오버헤드를 256배 감소시켰다.
- 비효율적 활성화와 가중치를 모두 건너뛸 수 있도록 확장함으로써 추가적인 계산 절감 효과를 얻을 수 있었으며, 동시에 처리되는 필터 수가 적은 구성에서 특히 유리하다.
- 핵심 실행 유닛을 변경하지 않고 디스패처와 리듀서만 수정함으로써 기존 하드웨어와의 호환성을 유지하였다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.