GPU 지원 호스티드 러너
GPU 지원 호스티드 러너
ModelOps나 HPC처럼 컴퓨팅 부하가 큰 작업, 특히 대규모 언어 모델(LLM)의 학습이나 배포를 빨리 돌리려면 CPU만으로는 버거울 때가 많아요. GitLab은 이런 작업을 가속하기 위해 GPU가 달린 호스티드 러너를 제공합니다. 러너는 항상 Linux에서만 지원된다는 점만 먼저 짚어둘게요.
출처: 문서
본문
GitLab은 ModelOps나 HPC 같은 무거운 컴퓨팅 워크로드, 예를 들어 LLM(대규모 언어 모델)의 학습이나 배포를 가속하기 위한 GPU 지원 호스티드 러너를 제공해요. GPU 지원 러너는 Linux에서만 제공됩니다. 이 러너가 어떻게 동작하는지 자세히 알고 싶으면 Linux 호스티드 러너 문서를 참고하세요.
GPU 지원 러너에 사용 가능한 머신 타입
Linux x86-64에서 GPU 지원 러너에 사용할 수 있는 머신 타입은 다음과 같아요.
| 러너 태그 | vCPUs | 메모리 | 스토리지 | GPU | GPU 메모리 |
|---|---|---|---|---|---|
saas-linux-medium-amd64-gpu-standard |
4 | 15 GB | 50 GB | 1 NVIDIA Tesla T4 (또는 유사) | 16 GB |
GPU 드라이버가 포함된 컨테이너 이미지
GitLab의 Linux 호스티드 러너처럼, 잡은 격리된 가상 머신(VM)에서 실행되며 bring-your-own-image 정책을 따릅니다. GitLab이 호스트 VM의 GPU를 잡의 격리된 환경에 마운트해 줘요. GPU를 쓰려면 GPU 드라이버가 설치된 Docker 이미지를 사용해야 합니다. NVIDIA GPU라면 NVIDIA의 CUDA Toolkit 이미지를 사용하면 돼요.
.gitlab-ci.yml 파일 예시
아래 .gitlab-ci.yml 예시에서는 NVIDIA CUDA 기반 Ubuntu 이미지를 사용합니다. script: 섹션에서 Python을 설치하죠.
gpu-job:
stage: build
tags:
- saas-linux-medium-amd64-gpu-standard
image: nvcr.io/nvidia/cuda:12.1.1-base-ubuntu22.04
script:
- apt-get update
- apt-get install -y python3.10
- python3.10 --version
TensorFlow나 XGBoost처럼 큰 라이브러리를 잡을 돌릴 때마다 설치하고 싶지 않다면, 필요한 구성 요소를 전부 미리 설치한 나만의 이미지를 만들어 두면 돼요. GPU 지원 호스티드 러너로 XGBoost 모델을 학습시키는 방법을 보여주는 데모도 있으니 참고하세요.
더 알아보기
GPU 러너를 처음 쓸 때는 머신 타입의 태그를 정확히 지정하는 게 핵심이에요. 위 예시처럼 tags:에 GPU 태그를 달면 해당 VM에서 잡이 돌아갑니다. 다음으로는 GPU 드라이버가 포함된 이미지 구성과 CUDA Toolkit 이미지 활용법을 익히고, Linux 호스티드 러너의 동작 원리를 함께 보면 좋아요.