ADR-005 — GPU 스케줄러 KAI Scheduler default + HAMi 추론 보조
| 항목 | 값 |
|---|---|
| Status | Accepted (2026-05-24 — Epic #1003) |
| Date | 2026-05-24 |
| Decider | GenD 코어팀 + 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.9 | KAI Scheduler |
|---|---|---|
| 라이선스 | Apache 2.0 | Apache 2.0 |
| CNCF | Sandbox (2024-08) | Sandbox (2025) |
| 모회사 | 4Paradigm + Dynamia AI 다중 벤더 | NVIDIA (Run:AI 인수) |
| GPU 벤더 | NVIDIA + Ascend + Hygon + Cambricon + Iluvatar | NVIDIA 중심 |
| 격리 | vCUDA (user-space) + MIG | MIG + 시분할 (메모리 격리 미보장) |
| Gang scheduling | 부재 | GA |
| Queue / Fairness / Hierarchical quota | 부재 | GA (Run:AI 엔터프라이즈 자산) |
| NVLink topology-aware | 후순위 | 적극 지원 (NCCL 최적화) |
| DRA (K8s 1.32) | v2.9.0 GA | 차세대 설계 |
| HAMi 호환 | n/a | active 논의 (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) 는 백엔드 중립GpuSpecSoT 는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 동작 확인
관련
- Epic: #1003 (본 ADR), 영향 자식 #996
- 자매 ADR: ADR-004 _protected_routers, ADR-006 Ontology Packaging
- 메모리:
project_gend_vs_genos_responsibility - 외부: KAI Scheduler GitHub (NVIDIA/KAI-scheduler), HAMi v2.9 (Project-HAMi/HAMi), CNCF Sandbox