MoreFit: 빠르고 효율적인 비구간 최대우도 피팅 프레임워크

MoreFit: 빠르고 효율적인 비구간 최대우도 피팅 프레임워크
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

MoreFit은 비구간 최대우도(UNbinned ML) 피팅을 위해 설계된 고성능 라이브러리로, 계산 그래프 기반 JIT 컴파일과 자동 최적화를 활용한다. OpenCL 기반 GPU 백엔드와 LLVM/Clang 기반 CPU 백엔드를 제공해 이기종 하드웨어에서 SIMD 및 멀티스레드 가속을 실현한다. 기존 RooFit·zfit·Goofit 등에 비해 로그우도와 그라디언트·헤시안 계산 속도가 크게 향상된다.

상세 분석

MoreFit은 비구간 최대우도 피팅의 핵심 연산인 로그우도와 그 도함(그라디언트, 헤시안) 계산을 계산 그래프(computation graph) 로 추상화하고, 이를 Just‑In‑Time(JIT) 컴파일을 통해 타깃 하드웨어에 맞는 커널로 변환한다. 그래프는 기본 연산, 함수, 변수, 상수 노드로 구성되며, 자동 미분은 체인 룰을 적용한 심볼릭 차분(symbolic differentiation) 으로 수행된다. 이 과정에서 파라미터에만 의존하는 정규화 상수나 공통 서브식은 호스트에서 사전 계산하고 결과를 버퍼에 저장해 각 이벤트에 재사용함으로써 불필요한 연산을 제거한다(CSE, Common Sub‑expression Elimination).

백엔드는 두 가지가 있다. 첫 번째는 OpenCL 기반 GPU 백엔드로, 모든 주요 GPU 벤더를 지원한다. 이벤트 데이터를 구조체 배열 형태로 전달하고, 워크그룹·워크아이템을 이용해 각 이벤트에 대한 로그우도 값을 독립적으로 계산한다. 이후 Kahan 합산을 GPU에서 수행해 수치적 정확성을 유지하면서 데이터 전송량을 최소화한다. 두 번째는 LLVM/Clang 기반 CPU 백엔드로, JIT 컴파일된 C++ 커널을 SIMD(예: AVX‑2, AVX‑512)와 멀티스레드 풀링을 통해 가속한다. 자동 벡터화와 스레드 재사용 전략은 작은 데이터셋에서도 오버헤드를 최소화한다.

MoreFit은 Minuit2(ROOT 독립)와 연동해 파라미터 최적화를 수행한다. 최적화 루프에서는 로그우도와 그라디언트를 반복 호출하는데, 이때 파라미터 업데이트마다 그래프 재분석을 통해 파라미터‑전용 서브그래프를 재계산하고, 이벤트‑전용 서브그래프는 그대로 재사용한다. 이러한 동적 그래프 재구성은 특히 다중 파라미터(>100)와 대규모 이벤트(>10⁶) 상황에서 메모리와 연산 효율을 크게 높인다.

벤치마크에서는 두 가지 간단한 모델(가우시안+지수 혼합, 순수 지수)로 RooFit·zfit·Goofit과 비교했으며, GPU 환경에서는 평균 510배, CPU SIMD 환경에서는 23배의 속도 향상을 보고했다. 특히 파라미터‑전용 정규화 상수 계산을 호스트에서 한 번만 수행하고 버퍼링하는 최적화가 전체 실행 시간의 30~40%를 절감하는 주요 요인으로 작용했다.

전반적으로 MoreFit은 계산 그래프 기반 자동 미분·최적화, 이기종 백엔드 지원, JIT 기반 런타임 컴파일이라는 세 축을 결합해 기존 프레임워크가 직면한 병목을 효과적으로 해소한다. 향후 자동 그래프 스케줄링, 동적 워크로드 균형, 더 복잡한 PDF(예: 다변량, 비선형 변환) 지원이 추가된다면, 대규모 LHC 데이터 분석에서 핵심 도구로 자리매김할 가능성이 크다.


댓글 및 학술 토론

Loading comments...

의견 남기기