AI/Tips

[XGBoost] XGBoost 학습 시 GPU(CUDA) 사용하기

Linuxias 2024. 3. 31. 13:54
반응형

XGBoost 모델 학습 시 매우 느린 성능을 보인다. 특히 Hyper-Parameter Optimization과 같은 기법을 병행하여 사용한다면 힘든 시간이 될 것이다.

XGBoost의 대부분의 알고리즘은 CUDA 호환 GPU로 가속화될 수 있으며 이는 학습, 예측 및 평가를 포함한다. XGBoost에서 GPU를 지원한다. 지원 조건은 아래와 같다.

  • CUDA 11.0 이상
  • Compute Capability 5.0 이상

 

GPU 활성화 방법

GPU 가속을 활성화하려면

  • device 매개변수를 cuda로 설정한다.
    • 만약 동일한 노드에 여러 장치가 있는 경우 장치 순서(사용할 GPU를 지정)는 cuda: 구문을 사용하여 지정한다.
    • XGBoost는 기본적으로 0(CUDA 런타임에서 보고된 첫 번째 장치)으로 설정된다.
  • tree_method 매개변수를 'hist'로 설정한다.

현재 GPU 알고리즘은 CLI, Python, R 및 JVM 패키지에서 작동합니다. 자세한 내용은 설치 가이드를 참조하세요.

...
params = dict()
params["device"] = "cuda"
params["tree_method"] = "hist"

model = xgboost.train(params, train_dataset)
...

만약 Scikit-Learn 인터페이스를 사용한다면 아래와 같이 사용한다.

XGBRegressor(tree_method="hist", device="cuda")

추가적으로 멀티 GPU 학습, 메모리 사용량 등의 정보는 아래 레퍼런스를 확인하길 바란다.

참고자료 : https://xgboost.readthedocs.io/en/stable/gpu/index.html

반응형