Project-HAMi/HAMi
Heterogeneous GPU Sharing on Kubernetes
它解决了什么问题
AI 基础设施团队经常在 Kubernetes 中面临 GPU 使用效率低下的问题,因为整个 GPU 被分配给小型任务,造成资源稀缺和资源竞争。HAMi 通过允许多个工作负载共享单个物理加速器来解决此问题,提供细粒度的资源隔离和跨不同硬件供应商的设备感知调度。
它的运作方式
HAMi 作为 Kubernetes 原生的虚拟化中间件。它使用可变的 webhook、调度器扩展程序和设备插件来拦截 Pod 提交,并分配加速器内存或计算核心的特定部分。这允许工作负载请求特定数量的 GPU 内存(例如 3 GiB),而无需更改其应用程序代码,同时 HAMi 协调这些资源在物理硬件上的调度和隔离。
适用对象
管理 Kubernetes 集群的平台工程师和 AI 基础设施团队,这些集群在异构加速器池(NVIDIA、Ascend、Cambricon 等)上运行多租户 AI 工作负载,例如笔记本、训练和推理服务器。
重点特性
- 设备共享:按内存、核心或设备数量分配物理加速器的部分资源。
- 异构支持:通过单一工作流程管理多种加速器类型(GPU、NPU、HCU、MLU)。
- 设备感知调度:支持 binpack、spread 和拓扑感知调度策略,以优化放置。
- 零应用程序更改:与标准 Kubernetes 资源请求和限制兼容。
- 动态 MIG:动态创建、缓存和回收 NVIDIA 多实例 GPU(MIG)实例。
- 生态系统集成:与 vLLM 集成以进行内存上限推理,并与 Volcano 集成以进行批处理调度。
相关
- 项目
- 项目
- 项目
- 项目
- 项目