Project-HAMi/HAMi
Heterogeneous GPU Sharing on Kubernetes
해결하는 문제
AI 인프라 팀은 Kubernetes에서 GPU 활용 효율성이 낮은 문제를 자주 겪습니다. 전체 GPU가 작은 작업에 할당되어 리소스 부족과 경합이 발생합니다. HAMi는 여러 워크로드가 단일 물리적 가속기를 공유할 수 있도록 하여 세분화된 리소스 격리와 다양한 하드웨어 공급업체 간의 장치 인식 스케줄링을 제공함으로써 이 문제를 해결합니다.
작동 방식
HAMi는 Kubernetes 네이티브 가상화 미들웨어로 작동합니다. 변경 웹훅, 스케줄러 확장기 및 장치 플러그인을 사용하여 Pod 제출을 가로채고 가속기 메모리 또는 컴퓨트 코어의 특정 비율을 할당합니다. 이를 통해 워크로드는 애플리케이션 코드를 변경하지 않고도 특정 양의 GPU 메모리(예: 3GiB)를 요청할 수 있으며, HAMi는 물리적 하드웨어에서 이러한 리소스의 스케줄링과 격리를 조정합니다.
대상 사용자
이기종 가속기 풀(NVIDIA, Ascend, Cambricon 등)에서 노트북, 훈련, 추론 서버와 같은 멀티 테넌트 AI 워크로드를 실행하는 Kubernetes 클러스터를 관리하는 플랫폼 엔지니어 및 AI 인프라 팀.
주요 기능
- 장치 공유: 메모리, 코어 또는 장치 수로 물리적 가속기의 일부를 할당합니다.
- 이기종 지원: 단일 워크플로우로 여러 가속기 유형(GPU, NPU, HCU, MLU)을 관리합니다.
- 장치 인식 스케줄링: binpack, spread 및 토폴로지 인식 스케줄링 정책을 지원하여 배치를 최적화합니다.
- 애플리케이션 변경 불필요: 표준 Kubernetes 리소스 요청 및 제한과 함께 작동합니다.
- 동적 MIG: NVIDIA 다중 인스턴스 GPU(MIG) 인스턴스를 동적으로 생성, 캐시 및 회수합니다.
- 에코시스템 통합: 메모리 제한 추론을 위해 vLLM과, 배치 스케줄링을 위해 Volcano와 통합합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트