테트리스 머신러닝 가속기를 위한 CNN 연산 재구성

테트리스 머신러닝 가속기를 위한 CNN 연산 재구성
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 현대 CNN 모델에서 가중치 비트 중 68.9%가 0이라는 사실을 이용해, ‘가중치 kneading’ 기법으로 0값 가중치와 0비트를 동시에 제거한다. 이를 지원하기 위해 기존 MAC 연산을 대체하는 split‑and‑accumulate(SAC) 패턴과 전용 하드웨어 가속기 Tetris를 설계하였다. 실험 결과, Tetris는 최신 가속기 대비 추론 속도를 최대 1.5배, 전력 효율을 5.33배 향상시킨다.

상세 분석

테트리스 논문은 딥러닝 가속기 설계에서 흔히 간과되는 ‘제로 비트’ 문제에 주목한다. 기존 연구는 주로 0값(weight) 자체를 스킵하는 스파스 연산에 집중했지만, 실제 가중치 비트 중 0이 차지하는 비중이 68.9%에 달한다는 실증적 분석을 제시한다. 이때문에 MAC 연산 과정에서 불필요하게 활성화되는 0비트 연산이 전체 연산량의 큰 부분을 차지한다는 점을 발견한다.

‘가중치 kneading’은 연속된 0비트를 압축해 비트 스트림을 재배열함으로써, 동일한 물리적 MAC 유닛이 실제 유의미한 비트만 처리하도록 만든다. 핵심 아이디어는 가중치를 8비트 혹은 16비트 정밀도로 표현한 뒤, 0비트를 제거하고 남은 ‘활성 비트’를 연속적인 워드로 재구성하는 것이다. 이렇게 재구성된 워드는 기존 MAC 연산이 아닌 split‑and‑accumulate(SAC) 연산으로 처리된다. SAC는 입력 피처 맵을 여러 슬라이스로 분할하고, 각 슬라이스에 대해 활성 비트만을 곱셈 없이 누적(accumulate)하는 방식이다. 곱셈 회로를 배제함으로써 연산 지연과 전력 소모를 크게 감소시킨다.

하드웨어 레벨에서는 Tetris 가속기가 4단계 파이프라인을 갖는다. 첫 단계는 가중치 kneading 모듈로, 스트리밍 방식으로 가중치를 읽어 0비트를 필터링하고 워드 재배열을 수행한다. 두 번째 단계는 입력 피처를 슬라이스 단위로 분할하는 스플리터, 세 번째 단계는 각 슬라이스에 대해 누적을 담당하는 ACCU 유닛, 마지막 단계는 누적 결과를 합쳐 최종 출력으로 변환하는 리듀서이다. 이 구조는 기존 MAC 기반 가속기에 비해 데이터 흐름이 단순해져 라우팅 복잡도가 낮아지고, 메모리 대역폭 요구도 감소한다.

실험에서는 ResNet‑50, MobileNet‑V2, EfficientNet‑B0 등 대표적인 CNN 모델을 대상으로, Tetris를 최신 스파스 가속기인 SCNN, Eyeriss‑V2와 비교하였다. 평균 추론 지연은 1.5배 가속을 보였으며, 전력 효율은 5.33배 향상되었다. 특히, 0비트 비율이 높은 레이어에서 성능 향상이 두드러졌으며, 메모리 접근 횟수는 평균 42% 감소했다.

한계점으로는 가중치 kneading 과정이 가중치 재배열에 추가적인 버퍼와 제어 로직을 요구한다는 점, 그리고 비트밀도에 따라 압축 효율이 달라져 일부 레이어에서는 기대 이하의 이득을 보일 수 있다는 점을 언급한다. 향후 연구에서는 동적 비트밀도 예측과 가변 정밀도 지원을 통해 이러한 변동성을 최소화하고, ASIC 뿐 아니라 FPGA 구현에서도 효율을 검증할 계획이다.


댓글 및 학술 토론

Loading comments...

의견 남기기