GPU를 활용한 부분파 분석 가속화
초록
본 논문은 BES III, Compass, GlueX 등에서 수행되는 부분파 분석(PWA)의 계산량 문제를 GPU 기반 병렬 처리로 해결하고, 기존 CPU 코드 대비 100배 이상의 속도 향상을 달성한 프레임워크들을 소개한다. 또한 PWA의 물리·기술적 난제와 향후 발전 방향을 논의한다.
상세 분석
부분파 분석은 복잡한 진폭 모델을 이용해 대규모 데이터와 시뮬레이션 이벤트를 비정규화된 가능도 함수에 대입해 최적화하는 작업이다. 이때 각 이벤트에 대해 모든 파동(파동수)와 모든 시뮬레이션 샘플에 대해 복소수 진폭을 계산하고, 그 결과를 합산해 로그 가능도를 구한다. 연산 복잡도는 Ndata × Nwaves² × Niterations 으로, 수백만 이벤트와 수십 개 파동을 다루면 수천억 회 이상의 부동소수점 연산이 필요해 전통적인 CPU 기반 구현으로는 수일에서 수주가 소요된다.
GPU는 수천 개의 코어가 동시에 동일한 연산을 수행하도록 설계돼, 이벤트당 연산을 독립적으로 처리하기에 이상적이다. 저자는 CUDA와 OpenCL을 이용해 진폭 계산, 누적 합산, 최소화 단계 등을 GPU 메모리와 연산 파이프라인에 매핑하였다. 특히 누적 합산을 트리 구조로 구현해 부동소수점 오차를 최소화하고, 단일 정밀도 연산으로 진폭을 계산한 뒤 최종 로그 가능도는 이중 정밀도로 재합산함으로써 정확도와 속도 사이의 균형을 맞췄다.
프레임워크는 세 가지 주요 기능을 제공한다. 첫째, 사용자 정의 진폭 함수를 C++ 혹은 Python 인터페이스로 손쉽게 추가할 수 있는 모듈식 구조; 둘째, MINUIT, FUMILI 등 기존 최소화 라이브러리와의 연동을 통해 파라미터 탐색을 가속화; 셋째, 대규모 MC 샘플을 GPU 메모리에 적재하거나 스트리밍 방식으로 로드해 메모리 제한을 극복한다. 실험에서는 1 M 이벤트와 20 파동을 대상으로 기존 FORTRAN 코드 대비 120배, OpenMP 기반 멀티코어 대비 30배 이상의 속도 향상을 기록했다.
하지만 기술적 한계도 존재한다. 복소수 파라미터를 실수 기반 최소화기에 전달할 때 카르테시안·극좌표 변환에 따른 경계 문제와 상관관계가 발생한다. 또한 GPU 메모리 용량이 제한적이어서 수억 이벤트 규모의 분석에서는 데이터 청크를 순차적으로 전송해야 하며, 전송 오버헤드가 전체 실행 시간에 비중을 차지한다. 부동소수점 정밀도 차이로 인해 로그 가능도 계산 시 수치 불안정성이 나타날 수 있어, 트리형 합산 외에도 Kahan 보정 등 추가적인 수치 기법이 필요하다.
향후 과제로는 물리 모델의 유니터리성 보장을 위한 복소수 미분 연산을 GPU 내에서 직접 구현하는 방안, 자동 미분(autodiff) 기반 최소화기를 GPU와 결합해 파라미터 공간 탐색 효율을 높이는 연구, 그리고 클라우드 기반 GPU 클러스터를 활용한 대규모 파라미터 스캔 및 베이지안 추론 파이프라인 구축이 제시된다. 이러한 발전은 PWA가 고차원 파라미터 공간을 효율적으로 탐색하고, 새로운 이색 하드론(예: 글루온 결합체) 탐색에 필요한 정밀도와 속도를 동시에 제공하도록 할 것이다.
댓글 및 학술 토론
Loading comments...
의견 남기기