콘텐츠로 이동

GPU 자원과 스케줄링

GPU 배정은 Kubernetes 가 한다. 사용자는 GPU 를 고르지 않는다.

계층 무엇 어디
노드가 GPU 광고 nvidia device plugin (Ubuntu 20.04 호스트) 또는 GPU Operator (24.04) 가 nvidia.com/gpu 등록 infra/k3s/nodes/<host>.env GPU_VISIBLE_DEVICES
파드가 요청 train/evaluate/ray-worker 파드에 limits: nvidia.com/gpu: 1, runtimeClassName: nvidia infra/argo/*.yaml
배치·대기 빈 GPU 가 있는 노드에 배치. 없으면 Pending. 빈 슬롯이 생기면 자동 시작 k8s 스케줄러
우선순위 deadlineexplore 를 선점. 72h 초과 explore 는 선점 대상 PriorityClass
프로젝트 상한 네임스페이스 ResourceQuota 기본 2장. 기간 지정 신청으로 4장 콘솔 설정 → 쿼터
관측 DCGM exporter → Prometheus. 85°C 5분이면 GPUHot 알림 Grafana RLflow · Cluster

규칙:

  • 런당 GPU 1장. 멀티노드 학습은 지원하지 않는다.
  • 스윕은 trial 당 1장 × max_concurrent.
  • 클러스터는 하나이고 노드가 늘면 슬롯이 는다. 2노드 × 4장 = 슬롯 8개.
  • Kubernetes 는 자기 밖에서 도는 프로세스를 모른다. 노드에 SSH 로 들어가 직접 GPU 를 잡으면 스케줄러와 충돌한다. GPU 학습은 콘솔·CLI 로만 제출한다.

콘솔 런 제출 3단계와 개요에 클러스터 used / allocatable, 프로젝트 used / quota 가 보인다. deadline 런이 30분 이상 대기하면 admin 에게 알림이 간다.