DSL 기반 설계 공간 탐색으로 FPGA 스트림 컴퓨팅의 시간·공간 병렬성 최적화
초록
본 논문은 FPGA에서 반복적인 스트림 연산을 가속하기 위해 시간적 파이프라인 깊이와 공간적 파이프라인 복제를 조합하는 설계 공간을 DSL로 정의하고, 설계 탐색을 자동화한다. 유체역학 시뮬레이션을 사례로 하여 다양한 병렬성 조합을 구현하고, 성능·전력 효율을 측정해 최적 구성을 도출한다.
상세 분석
이 연구는 FPGA 기반 스트림 컴퓨팅에서 성능을 극대화하기 위한 두 축, 즉 시간적 병렬성(파이프라인 심화)과 공간적 병렬성(파이프라인 복제)을 동시에 고려한다는 점에서 차별성을 가진다. 기존 연구들은 보통 하나의 축에만 초점을 맞추어 설계 공간이 제한적이었으나, 저자들은 DSL(Domain‑Specific Language)을 도입해 추상적인 연산 흐름과 계층적 병렬 구조를 선언적으로 기술한다. DSL은 연산 단계, 데이터 흐름, 반복 횟수 등을 고수준으로 표현하고, 이를 컴파일러가 자동으로 하드웨어 템플릿(시간·공간 병렬성 매개변수화된 파이프라인)으로 매핑한다. 이렇게 하면 설계자는 복잡한 HDL 코드를 일일이 수정할 필요 없이 병렬성 비율을 실험적으로 변형할 수 있다.
핵심 기술은 두 가지 파라미터, 즉 ‘Depth’(시간적 파이프라인 단계 수)와 ‘Duplication’(공간적 파이프라인 복제 수)를 DSL에 명시하고, 설계 탐색 엔진이 FPGA 자원(논리셀, DSP, BRAM)과 외부 메모리 대역폭 제한을 고려해 가능한 조합을 자동으로 생성한다. 탐색 과정에서 저자들은 파이프라인 이용률(스테이지 활용도)과 메모리 접근 패턴을 정량화하여, 메모리 병목이 발생하는 경우 공간적 복제보다 시간적 심화가 유리함을 확인한다. 반대로 연산 집약도가 높은 단계에서는 복제에 의해 연산량을 분산시켜 전력 효율을 높일 수 있다.
실험 대상인 2차원 유체역학 시뮬레이션(예: Navier‑Stokes 방정식의 간단화 버전)은 반복적인 격자 업데이트와 경계 조건 적용을 포함한다. 저자들은 동일한 연산을 4가지 구성(시간·공간 병렬성 비율이 각각 1:1, 2:1, 1:2, 4:0 등)으로 구현하고, Xilinx UltraScale+ 보드에서 실행했다. 결과는 파이프라인 깊이가 증가할수록 클럭 주기가 짧아져 레이턴시는 감소하지만, BRAM 사용량이 급증해 전체 파이프라인 길이가 제한된다는 점을 보여준다. 반면 복제 수를 늘리면 메모리 대역폭 요구가 급격히 상승해 외부 DDR4 인터페이스가 포화될 경우 성능이 정체된다. 최종적으로 저전력·고성능을 달성한 최적 구성은 ‘시간적 심화 2단, 공간적 복제 2개’를 조합한 형태였으며, 이는 동일 자원 조건에서 순수 시간적 혹은 순수 공간적 설계보다 1.35배 높은 성능·전력 비율을 기록했다.
이 논문의 의의는 DSL을 통한 설계 공간 정의와 자동 탐색 프레임워크가 FPGA 스트림 컴퓨팅에서 복합 병렬성을 효율적으로 탐색하도록 만든 점이다. 또한, 하드웨어 자원·메모리 대역폭·파이프라인 활용도 간의 트레이드오프를 정량적으로 분석함으로써 설계자가 목표 성능·전력 목표에 맞는 병렬성 비율을 선택할 수 있는 실용적인 가이드를 제공한다. 향후 연구에서는 더 복잡한 다중 커널 워크로드와 동적 전력 관리 기법을 결합해 실시간 적응형 탐색을 구현하는 방향이 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기