본문으로 건너뛰기

ADR-005 — GPU 스케줄러 KAI Scheduler default + HAMi 추론 보조

항목
StatusAccepted (2026-05-24 — Epic #1003)
Date2026-05-24
DeciderGenD 코어팀 + GenOS 인프라팀
Related Epic#1003 (ADR-005), 영향 자식 #996 (GPU Quota & Billing)

컨텍스트

[#996 GPU Quota & Billing] 본문은 Run:AI vs HAMi 비교만 명시하고 NVIDIA KAI Scheduler 누락. KAI Scheduler 는 2025-04 Apache 2.0 OSS 화 + CNCF Sandbox 승인된 NVIDIA 공식 backed 스케줄러. Run:AI 인수로 흡수된 엔터프라이즈 기능 (gang scheduling / hierarchical quota / NVLink topology-aware) 이 본격적으로 OSS 화됨.

한국가스공사 RFP 의 H200 8 × NVLink 단일벤더 환경에서:

  • 학습 워크로드 → gang scheduling + queue + topology 필수 (KAI 강점)
  • 추론 워크로드 → vCUDA 격리 (HAMi 강점)

단일 백엔드로 통일 가능한지, 둘 다 운영해야 하는지 결정 필요.

결정

옵션 A — KAI Scheduler default + HAMi 추론 보조.

비교 매트릭스 (2026-Q2 리서치)

HAMi v2.9KAI Scheduler
라이선스Apache 2.0Apache 2.0
CNCFSandbox (2024-08)Sandbox (2025)
모회사4Paradigm + Dynamia AI 다중 벤더NVIDIA (Run:AI 인수)
GPU 벤더NVIDIA + Ascend + Hygon + Cambricon + IluvatarNVIDIA 중심
격리vCUDA (user-space) + MIGMIG + 시분할 (메모리 격리 미보장)
Gang scheduling부재GA
Queue / Fairness / Hierarchical quota부재GA (Run:AI 엔터프라이즈 자산)
NVLink topology-aware후순위적극 지원 (NCCL 최적화)
DRA (K8s 1.32)v2.9.0 GA차세대 설계
HAMi 호환n/aactive 논의 (HAMi Issue #1136)

배포 토폴로지

  • 학습 워크로드 namespace (gend-training): KAI Scheduler (gang + queue + topology)
  • 추론 워크로드 namespace (gend-serving, KServe RawDeployment): KAI Scheduler default. 단, 여러 모델이 단일 GPU 공유 + vCUDA 격리 명시 필요 시 HAMi 보조
  • GenD 거버넌스 plane (GpuQuotaService): 두 백엔드 모두 admission webhook 호환 (DCGM + K8s API read-only). GpuQuota 데이터 모델은 백엔드 중립

재검토 트리거

  • HAMi 가 gang scheduling / queue 를 GA 로 추가 → 단일 백엔드 통일 검토
  • AMD MI300 / Huawei Ascend 도입 → HAMi 비중 확대
  • KAI Scheduler 의 vCUDA 류 격리 모드 추가 → HAMi 보조 해제

거부된 대안

(B) HAMi 단독

  • 멀티벤더 (Ascend/AMD), vCUDA 격리 강함
  • 거부 사유: gang scheduling 부재 → 학습 워크로드 큐 처리 제한, 단일 NVIDIA 환경에선 멀티벤더 강점 의미 없음

(C) 어댑터 패턴 (둘 다 동일 가중치)

  • 미래 멀티벤더 대비
  • 거부 사유: operational complexity ROI 부족, 두 백엔드 동시 운영 부담

영향

인프라 (GenOS 책임)

  • infra/helm/kai-scheduler/ Helm chart 신규 도입
  • 기존 HAMi 와 namespace 분리 (학습 / 추론 보조)
  • DCGM Exporter 는 양 백엔드 공통 메트릭

GenD 거버넌스 plane

  • services/gpu_quota_service.py (구현 #996) 는 백엔드 중립
  • GpuSpec SoT 는 sdk/_base.py (한 위치, 메모리 feedback_gend_vs_genos_responsibility)
  • admission webhook 평가는 백엔드 무관 (Pod spec annotation 기반)

운영 (GenOS 인프라팀)

  • 학습 / 추론 namespace 분리 + scheduler 라벨링
  • project_gend_vs_genos_responsibility 원칙 — GenD 는 quota / billing 정책, GenOS 는 scheduler 실행

영향 자식 이슈

  • #996 GPU Quota & Billing 본문 갱신 (별도 코멘트)

회귀 가드 (구현 시 추가)

  • GenD admission webhook 이 KAI / HAMi 양쪽 annotation 처리
  • GpuQuota 데이터 모델이 백엔드 중립 (테스트로 보장)
  • Helm chart 배포 후 e2e: 학습 namespace 에서 gang scheduling 동작 확인

관련