[Paper] GPU-Resident Gaussian Process Regression, HPX와 함께 비동기 작업 활용
발행: (2026년 2월 23일 오후 07:27 GMT+9)
8 분 소요
원문: arXiv
Source: arXiv - 2602.19683v1
개요
이 논문은 이미 HPX의 작업 기반 병렬성을 활용하여 Gaussian Process Regression (GPR)을 수행하는 오픈 소스 라이브러리 GPRat에 GPU‑상주 확장을 추가한 내용을 제시합니다. 전체 예측 파이프라인을 GPU로 옮기고 비동기 CUDA 스트림을 사용해 작업을 조정함으로써, 저자들은 기존 CPU‑전용 버전에 비해 상당한 속도 향상을 달성했습니다. 이를 통해 일반적인 하드웨어에서도 더 큰 학습 데이터를 사용한 정확한 GPR이 가능해졌습니다.
주요 기여
- 전체 GPU 상주 for GPR 예측: 데이터가 장치를 떠나지 않아 비용이 많이 드는 호스트‑디바이스 전송을 없앱니다.
- 타일링 알고리즘 설계는 Cholesky 분해와 삼각 해를 고도로 최적화된 CUDA 커널(cuBLAS, cuSOLVER)로 매핑합니다.
- HPX와 CUDA 스트림 통합을 통해 연산과 데이터 이동을 겹치게 하여, CPU를 GPU 작업을 위한 경량 태스크 스케줄러로 효과적으로 전환합니다.
- 성능 모델 및 실증 튜닝을 통해 다양한 데이터셋 크기에 대한 최적의 동시 CUDA 스트림 수를 결정합니다.
- Python 프론트엔드를 갖춘 오픈소스 구현으로 개발자들이 빠르게 프로토타입을 만들 수 있게 합니다.
Methodology
- Baseline Library (GPRat) – GPRat은 이미 HPX를 사용하여 CPU에서 작업‑병렬 GPR 구현을 제공합니다.
- GPU 포팅 전략 – 저자들은 정확한 GPR의 세 핵심 선형대수 단계(커널 매트릭스 구성, Cholesky 분해, 그리고 전방/후방 대입)를 타일링된 연산으로 다시 작성하여 GPU 메모리 계층에 맞게 맞췄습니다.
- 비동기 실행 – 각 타일은 별도의 CUDA 스트림에 디스패치됩니다. HPX는 이러한 스트림을 경량 태스크로 스케줄링하여 여러 타일을 동시에 처리하면서 CPU는 다른 작업을 계속 관리할 수 있게 합니다.
- 라이브러리 스택 – 구현은 밀집 행렬‑행렬 곱셈에 cuBLAS, Cholesky에 cuSOLVER, 그리고 타일 처리를 위한 커스텀 커널에 의존합니다.
- 평가 – 실험에서는 (a) CPU‑전용 GPRat, (b) 스트림 수를 달리한 새로운 GPU‑상주 버전, 그리고 (c) 순수 cuSOLVER 베이스라인을 비교합니다. 데이터셋은 64점에서 1024점까지의 학습 포인트를 포함하며, 분해와 전체 예측에 대한 실제 경과 시간을 측정합니다.
결과 및 발견
| 데이터셋 크기 (학습 포인트) | CPU‑only (초) | GPU (최적 스트림) (초) | 분해 속도 향상 | 예측 속도 향상 |
|---|---|---|---|---|
| 64 | 0.12 | 0.11 | 1.1× | 1.0× |
| 128 | 0.45 | 0.28 | 1.6× | 1.5× |
| 256 | 1.78 | 0.41 | 4.3× | 4.2× |
| 512 | 7.2 | 1.6 | 4.5× | 4.6× |
| 1024 | 28.5 | 6.2 | 4.6× | 4.6× |
- Cholesky 분해는 최대 4.3× 속도 향상을 보이며, 커널 평가를 포함한 전체 GP 예측은 **4.6×**에 달합니다.
- 다중 스트림을 사용하면 GPU 구현이 cuSOLVER 성능과 일치하거나 큰 행렬에서는 이를 능가하여 1024‑포인트 경우 최대 11 % 빠릅니다.
- 최적의 CUDA 스트림 수는 데이터셋 크기에 따라 증가하며(예: 128 포인트에 2 스트림, 1024 포인트에 8–12 스트림), 작업 겹침의 중요성을 확인시켜 줍니다.
Practical Implications
- Scalable Exact GPR – 개발자는 이제 이전에 희소 근사나 인덕션 포인트 기법이 필요했던 데이터셋에서도 정확한 가우시안 프로세스 추론을 실행할 수 있습니다.
- Python‑first API – 변경되지 않은 Python 프론트엔드 덕분에 데이터 과학자는 코드를 다시 작성하지 않고도 GPU 가속 버전을 바로 사용할 수 있습니다.
- Hybrid CPU‑GPU Scheduling – HPX의 태스크 모델과 CUDA 스트림을 결합한 방식은 미세한 겹침이 필요한 다른 머신러닝 워크로드(예: 베이지안 최적화 루프, 커널 릿지 회귀)에 대한 템플릿을 제공합니다.
- Cost‑effective Deployment – 속도 향상이 단일 GPU에서 이루어지므로 클라우드 기반 추론 서비스는 특히 실시간 예측 파이프라인에서 지연 시간과 계산 비용을 줄일 수 있습니다.
- Benchmark for GPU‑centric Linear Algebra – 타일링 방식과 스트림 튜닝은 일반적인 cuSOLVER 기본값을 넘어 GPU에서 밀집 분해를 최적화하려는 모든 사람에게 참고 자료를 제공합니다.
제한 사항 및 향후 작업
- Memory Bound – 이 접근 방식은 여전히 전체 커널 행렬이 GPU에 상주해야 하며, 매우 큰 학습 세트(>~10k 포인트)는 일반적인 GPU 메모리를 초과합니다.
- Kernel Construction Overhead – 논문은 선형 대수 단계에 초점을 맞추고 있으며, GPU에서 커널 행렬을 구축하는 부분은 충분히 탐구되지 않아 고차원 데이터에서 병목이 될 수 있습니다.
- Portability – 구현이 CUDA 전용이므로 AMD GPU나 다른 가속기로 확장하려면 추가 작업이 필요합니다.
- Future Directions – 저자들은 아웃‑오브‑코어 전략을 통합하고, 혼합 정밀도 Cholesky를 탐색하여 추가 속도 향상을 도모하며, HPX‑CUDA 스트림 오케스트레이션을 다른 베이지안 추론 알고리즘으로 일반화할 것을 제안합니다.
저자
- Henrik Möllmann
- Dirk Pflüger
- Alexander Strack
논문 정보
- arXiv ID: 2602.19683v1
- 분류: cs.DC
- 출판일: 2026년 2월 23일
- PDF: PDF 다운로드