FPGA 기반 하이브리드 고속 컨볼루션을 이용한 얼굴 인식 가속기
초록
본 논문은 Winograd와 FFT 두 가지 고속 컨볼루션 알고리즘을 혼합 적용하고, Inception 모듈의 병렬 브랜치를 고려한 자원 할당 전략을 제안한다. 고수준 합성(HLS) 기반 IP 코어를 설계해 FaceNet 모델을 FPGA(Xilinx UltraScale)에서 구현했으며, 기존 GPU 대비 3.75배 낮은 지연시간과 우수한 에너지 효율을 달성하였다.
상세 분석
이 연구는 최신 CNN 구조가 다중 브랜치와 다양한 커널 크기를 포함한다는 점에 주목한다. 기존 FPGA 가속기들은 모든 레이어에 동일한 컨볼루션 엔진을 적용해 리소스 활용도가 떨어지는 문제가 있었으며, 특히 Inception과 같은 모듈에서는 각 브랜치가 서로 다른 연산량을 갖기 때문에 병목 현상이 심했다. 논문은 두 가지 고속 컨볼루션 알고리즘의 특성을 정량적으로 분석한다. Winograd는 작은 커널(3×3, 5×5)에서 변환 오버헤드가 적고 DSP 사용을 크게 절감하지만, 커널이 커질수록 변환 연산이 급증해 효율이 감소한다. 반면 FFT 기반 컨볼루션은 커널 크기가 5×5 이상이고 입력 특성맵이 12×12 이상일 때 유리하며, 변환 단계에서 LUT와 BRAM을 많이 사용하지만 곱셈 수가 크게 줄어들어 전체 사이클을 단축한다. 이러한 특성을 바탕으로 저자들은 실험적으로 얻은 레이턴시 모델을 이용해 “알고리즘 선택 표”를 만들었다. 표에 따라 커널·특성맵 크기에 맞춰 Winograd와 FFT 중 최적의 방식을 자동으로 선택한다.
자원 할당 측면에서는 기존의 Cauchy 부등식 기반 전역 최적화가 브랜치 간 의존성을 무시한다는 한계를 지적한다. 논문은 Inception 모듈 내부의 병렬 브랜치를 각각 독립적인 작업 단위로 보고, 각 브랜치의 계산 복잡도 C_Bi에 비례해 리소스를 할당한다. 구체적으로 R_Bi / R_Bj = C_Bi / C_Bj 관계를 만족하도록 이상적인 할당값을 구하고, 실제 FPGA에서는 파워‑오브‑투(2,4,8,16) 형태의 병렬 팩터만 허용되므로 로그2를 취해 내림한 뒤, 남은 리소스를 가장 큰 갭을 가진 브랜치에 두 배씩 할당하는 탐욕적 알고리즘을 제시한다. 이 과정은 HLS의 UNROLL와 ARRAY_PARTITION 지시자를 이용해 구현되며, 메모리 포트 충돌을 방지하기 위해 파티션 비율을 일관되게 유지한다.
하드웨어 구현에서는 Winograd와 FFT 엔진을 각각 동일한 재사용 팩터로 설계해 DSP, LUT, BRAM 사용량을 비교하였다. FFT 엔진은 LUT 사용량이 2.2배 높고, BRAM은 출력 채널 수에 따라 크게 변동한다. 반면 Winograd 엔진은 DSP 사용을 크게 절감한다. 이러한 차이를 고려해 알고리즘 선택 표와 자원 할당 알고리즘을 결합하면, 전체 네트워크를 매핑했을 때 가장 긴 브랜치의 지연을 최소화하면서 전체 파이프라인의 활용도를 극대화한다.
시스템 전체는 FaceNet 기반 얼굴 인식 파이프라인을 구현했으며, Inception‑V2 모듈을 템플릿화된 IP 코어로 캡슐화했다. 고수준 합성 툴(Vivado HLS)을 사용해 C++ 코드에서 자동으로 RTL을 생성하고, Xilinx VU9P UltraScale 보드에 배치했다. 실험 결과, 동일 모델을 실행하는 최신 NVIDIA RTX 2080 Ti GPU 대비 평균 지연이 3.75배 감소했으며, 전력 소모는 약 30% 수준으로 기존 FPGA 가속기 대비 2배 이상 효율이 향상되었다. 또한, 제안된 하이브리드 알고리즘과 자원 할당 전략이 없을 경우, 동일 하드웨어에서 1.8배 정도의 지연 증가가 관측되었다.
이 논문은 알고리즘 수준의 최적화와 하드웨어 수준의 자원 관리가 상호 보완적으로 작용할 때, 복잡한 CNN 구조를 FPGA에 효율적으로 매핑할 수 있음을 실증한다. 특히, 다양한 커널·특성맵 조합을 가진 현대 딥러닝 모델에 대해 자동화된 선택·배분 프레임워크를 제공함으로써, 설계자들이 손수 파라미터 튜닝에 소요되는 시간을 크게 줄일 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기