테르너리 신경망 완전 언롤링으로 초고속 FPGA 추론 구현

테르너리 가중치를 사전에 알고 설계 단계에서 연산을 전부 언롤링·프루닝한 맞춤형 FPGA 데이터패스를 제안한다. 90 % 이상의 곱셈을 제거하고 가중치‑전용 가산 트리를 사용해 CIFAR‑10 VGG‑스타일 네트워크를 29 µs 지연, 122 kFPS 처리량, 90.9 % 정확도로 구현하였다.

저자: Stephen Tridgell, Martin Kumm, Martin Hardieck

**1. 서론** CNN의 연산 복잡도는 실시간·대규모 응용에 큰 장벽이 된다. 기존 가속기들은 가중치와 구조를 런타임에 동적으로 로드하도록 설계돼 범용성을 확보했지만, 이는 불필요한 연산과 데이터 이동을 초래한다. 본 논문은 네트워크 구조와 테르너리 가중치가 사전에 알려진 경우, 하드웨어를 완전 맞춤화하여 연산량을 극단적으로 감소시키는 방법을 제시한다. **2. 배경** - **딥 뉴럴 네트워크와 컨볼루션**: CNN은 입력 이미지의 작은 패치를 여러 필터와 컨볼루션해 특성을 추출한다. 수식 (2)·(3)에서 볼 수 있듯이 각 출력 픽셀은 고정된 가중치 행렬과 입력 패치 벡터의 행렬‑벡터 곱으로 표현된다. - **저정밀 네트워크**: 테르너리 가중치(−1, 0, +1)와 16‑bit 고정소수점 활성화를 사용하면 곱셈을 단순 덧셈·뺄셈으로 대체할 수 있다. Li et al. (2016)의 방법을 확장해 스케일링 팩터 s와 희소성 제어 파라미터를 도입하였다. - **기존 가속기**: systolic array, 벡터 프로세서, FFT‑기반 가속기 등 다양한 설계가 존재하지만, 대부분은 일반적인 연산 흐름을 따르며 테르너리 가중치의 특수성을 활용하지 않는다. **3. 아키텍처** 전체 CNN을 **버퍼링 → Max‑Pool → Convolution → Scale‑Shift → MUX → Dense** 순서의 블록으로 분할한다. 각 블록은 파이프라인화되어 매 사이클마다 p개의 픽셀을 처리한다. - **버퍼링 (im2col)**: 입력 스트림을 FIFO에 저장하고, 두 개의 지연 라인을 이용해 3×3 커널에 필요한 9개의 픽셀을 동시에 출력한다. 제로 패딩은 선택적 MUX로 구현한다. - **Max‑Pool**: k×k 윈도우 내 최대값을 선택하는 비교 회로를 사용하며, 스트라이드 n에 따라 출력 스트림 속도가 p/(n²)로 감소한다. 이는 이후 레이어의 연산량을 자연스럽게 줄인다. - **컨볼루션**: 핵심은 **프루닝된 가산 트리**이다. 테르너리 가중치가 0인 경우 해당 입력을 라우팅에서 완전히 제외하고, +1·x와 −1·x는 각각 직접 더하거나 빼는 형태로 구현한다. 공통 서브익스프레션을 병합해 동일한 가중치 패턴을 공유하도록 회로를 자동 생성한다. 비트‑시리얼 가산기를 사용해 16‑bit 누산기를 최소화하고, 전체 연산을 한 사이클에 완료하도록 파이프라인을 설계한다. - **Scale‑Shift (Batch Normalization Inference)**: 학습 시 얻은 스케일 s와 바이어스 b를 고정 상수로 저장하고, 가산 트리 출력에 곱셈 대신 시프트·덧셈으로 적용한다. - **MUX 레이어**: 네트워크 내 조건부 경로(예: Residual 연결)를 구현하기 위해 고속 MUX를 사용한다. - **Dense 레이어**: Fully‑Connected 층도 동일한 언롤링·프루닝 기법을 적용해 가중치‑전용 가산 트리로 구현한다. **4. 컴파일 타임 최적화** 설계 툴 체인에서 가중치 매트릭스를 파싱해 0‑가중치를 제거하고, 동일한 가중치 패턴을 식별해 회로 재사용을 최적화한다. 또한 레이어별 처리량을 맞추기 위해 파이프라인 깊이와 레지스터 수를 자동 조정하는 “throughput‑matching” 알고리즘을 적용한다. **5. 학습 및 희소성 제어** Li et al. (2016)의 테르너리 학습 방식을 그대로 사용하면서, 가중치의 0 비율을 조절하는 정규화 항을 추가한다. 이를 통해 설계 단계에서 목표 희소성(예: 90 %)을 정확히 달성할 수 있다. **6. 구현 및 실험** - **플랫폼**: AWS F1 인스턴스의 Xilinx UltraScale+ VU9P FPGA. - **네트워크**: CIFAR‑10용 VGG‑style 모델, 3×3 커널, 3~4개의 Conv 레이어와 2개의 Fully‑Connected 레이어. - **리소스**: LUT 45 %, DSP 0 % (곱셈 사용 안 함), BRAM 30 % 사용. - **성능**: 122 kFPS, 레이턴시 29 µs, 정확도 90.9 % ± 0.1 %. 연산량 기준 90 % 이상의 곱셈을 제거했으며, 전체 파이프라인이 1 cycle당 p = 1 픽셀을 처리한다. - **비교**: 기존 systolic array 기반 ASIC(TPU)·GPU·다른 FPGA 가속기 대비 10배 이상 높은 처리량과 30배 이하의 레이턴시를 기록한다. **7. 논의** 설계는 네트워크가 고정된 경우에만 최적화가 가능하므로, 모델 업데이트 시 FPGA 재구성이 필요하다. 그러나 FPGA의 재구성 가능성은 ASIC 대비 여전히 큰 장점이며, 설계 자동화 파이프라인을 구축하면 새로운 테르너리 모델을 빠르게 배포할 수 있다. 또한 테르너리 외에도 바이너리, 4‑bit 등 다른 저정밀 형식에도 동일한 언롤링·프루닝 전략을 적용할 수 있다. **8. 결론** 테르너리 가중치를 사전에 활용한 완전 언롤링·프루닝 FPGA 아키텍처는 연산량을 획기적으로 감소시키고, 초고속 추론을 실현한다. 본 연구는 하드웨어 설계와 머신러닝이 긴밀히 결합될 때 얻을 수 있는 성능 한계를 재정의하며, 향후 엣지 디바이스 및 데이터센터 가속기에 적용 가능한 새로운 설계 패러다임을 제시한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기