데이터플로우 템플릿 기반 고수준 합성으로 FPGA 성능 극대화
초록
본 논문은 고수준 합성(HLS) 과정에서 함수들을 데이터플로우 아키텍처 템플릿으로 매핑한 뒤, 기존 HLS 툴을 이용해 회로를 생성하는 방법을 제안한다. 스트리밍 파이프라인 형태로 변환된 설계는 메모리 접근 지연을 연산과 겹쳐 처리해 전체 실행 시간을 크게 단축시키며, 실험 결과 최대 9배의 성능 향상을 확인하였다.
상세 분석
이 연구는 FPGA가 본래 갖는 스트리밍 처리에 최적화된 특성을 활용하기 위해, 고수준 언어로 작성된 알고리즘을 데이터플로우(DF) 아키텍처 템플릿으로 변환하는 새로운 컴파일 흐름을 제시한다. 기존 HLS 흐름은 C/C++ 코드를 직접 RTL로 변환하지만, 메모리 접근이 빈번한 경우 메모리 대기시간이 파이프라인 전체에 병목을 일으킨다. 저자들은 이를 해결하기 위해 프로그램을 여러 단계의 연산 블록으로 분할하고, 각 블록 사이에 FIFO와 같은 스트리밍 버퍼를 삽입한다. 이렇게 구성된 DF 엔진은 각 단계가 독립적으로 동작하면서도 데이터가 흐르는 동안 메모리 I/O와 연산을 겹쳐 수행한다는 점에서 전통적인 순차형 HLS와 근본적으로 차별화된다.
구현 단계에서는 먼저 소스 코드를 데이터 종속성 그래프로 분석하고, 연산과 메모리 접근을 기준으로 노드를 클러스터링한다. 이후 각 클러스터를 하나의 파이프라인 스테이지로 매핑하고, 스테이지 간 인터페이스를 자동으로 생성한다. 중요한 설계 선택으로는 메모리 접근 패턴에 따라 버퍼 깊이를 동적으로 조정하고, 스테이지 간 백프레셔(back‑pressure)를 지원해 전체 파이프라인이 안정적으로 흐르도록 하는 것이 있다.
이러한 변환 후에 저자들은 상용 HLS 툴(예: Xilinx Vivado HLS)을 그대로 사용해 RTL을 생성한다. 즉, 제안된 DF 템플릿은 HLS 툴 체인에 별도의 수정 없이 삽입될 수 있는 ‘중간 목표’ 역할을 한다. 실험에서는 이미지 필터링, 행렬 곱셈, 스트리밍 FFT 등 메모리 대기시간이 큰 워크로드를 대상으로 성능을 평가했으며, 평균 4~9배의 실행 시간 감소와 동시에 자원 사용량(레지스터, BRAM)도 크게 증가하지 않는 것을 확인했다. 이는 DF 템플릿이 메모리 대기시간을 효과적으로 숨기면서도 FPGA 자원의 효율성을 유지한다는 점을 시사한다.
또한, 저자들은 DF 템플릿이 설계자에게 제공하는 추상화 수준을 강조한다. 설계자는 고수준 알고리즘에 집중하고, 복잡한 파이프라인 스케줄링이나 버퍼 관리와 같은 저수준 최적화는 자동화된 변환 단계가 담당한다. 이는 설계 생산성을 크게 향상시키며, 기존 HLS 기반 설계 흐름에서 발생하던 ‘메모리 병목’ 문제를 구조적으로 해결한다는 점에서 의미가 크다.
마지막으로, 논문은 DF 템플릿이 모든 종류의 FPGA 애플리케이션에 적용 가능한 일반적인 솔루션은 아니며, 특히 데이터 의존성이 강하고 스트리밍 형태로 변환하기 어려운 경우에는 한계가 있음을 인정한다. 그러나 스트리밍이 자연스러운 데이터 처리 파이프라인(예: 비디오 처리, 신호 처리)에서는 매우 효과적인 접근법으로 평가된다.