GPU 가속 히스톤 프로빗 회귀를 위한 가스 샘플링
초록
본 논문은 교환가능 모델에서 잠재 변수 표현을 이용해 Gibbs 샘플링을 완전 데이터 병렬 방식으로 구현하고, 이를 GPU에서 실행함으로써 수천 개의 예측 변수와 수백만 개의 관측치를 동시에 처리할 수 있음을 입증한다. 사례 연구로 Horseshoe 프로빗 회귀 모델을 사용했으며, 메모리 접근 최적화와 커널 설계에 중점을 둔 시스템 관점의 접근법을 제시한다. 실험 결과, CPU 기반 구현에 비해 10배 이상 속도 향상을 보이며 확장성이 뛰어나다는 것을 확인하였다.
상세 분석
Gibbs 샘플링은 각 변수의 조건부 사후분포에서 순차적으로 표본을 추출하는 MCMC 기법으로, 전통적으로 CPU의 단일 스레드 혹은 제한된 멀티코어 환경에서 구현된다. 이러한 순차성은 데이터 규모가 커질수록 동기화 비용과 메모리 병목 현상을 야기한다. 논문은 교환가능 모델, 특히 잠재 변수(예: 데이터 증강, 스케일 혼합)로 표현 가능한 모델을 대상으로, 조건부 샘플링 단계를 완전 데이터 병렬화(data‑parallel)할 수 있음을 보인다. 핵심 아이디어는 각 관측치에 대해 독립적인 잠재 변수를 할당하고, 이들 변수를 GPU 스레드 블록에 1:1 매핑함으로써 조건부 업데이트를 동시에 수행하는 것이다.
GPU 아키텍처 특성을 고려해 메모리 접근을 연속적으로 만들고, 워프(warp) 내에서 분기(branch)를 최소화하도록 커널을 설계하였다. 예를 들어, Horseshoe prior의 스케일 파라미터와 로컬 슬라이스 변수는 구조체 배열 형태로 전역 메모리에 배치하고, 공동 메모리(shared memory)를 이용해 샘플링 단계에서 필요한 통계량(예: 충분통계량)을 집계한다. 또한, 각 스레드가 독립적인 난수 생성기를 사용하도록 설계해 재현성을 유지하면서도 병렬 난수 생성 비용을 최소화하였다.
조건부 사후분포가 표준 정규 혹은 역가우시안 형태인 경우, 역변환 샘플링이나 직접 샘플링을 이용해 GPU에서 효율적으로 구현한다. Probit 링크 함수는 데이터 증강 기법을 통해 이진 관측치를 연속형 잠재 변수로 변환하고, 이 잠재 변수에 대해 정규분포 샘플링만 수행하도록 함으로써 복잡한 메트로폴리스 단계 없이 Gibbs 루프를 완성한다.
성능 측면에서 논문은 GPU 구현이 CPU 기반 OpenMP 구현에 비해 12배~25배 가속을 달성했으며, 특히 데이터 포인트 수가 10⁶ 수준일 때 메모리 대역폭과 연산량이 균형을 이루어 확장성이 유지된다고 보고한다. 또한, 파라미터 수가 10⁴을 초과해도 커널 런타임이 선형적으로 증가함을 실험적으로 확인하였다. 이러한 결과는 교환가능 모델이 갖는 구조적 특성이 GPU 병렬화에 매우 적합함을 시사한다.
댓글 및 학술 토론
Loading comments...
의견 남기기