HAMi 项目概览
HAMi 将 Kubernetes 变成一个 GPU 感知的控制平面,让 AI 工作负载能够按需获取 GPU 资源,而不需要独占整张显卡。
什么是 HAMi
HAMi 是一个 CNCF Sandbox 项目,定位为 GPU Resource Control Plane for Kubernetes。它的核心使命是将 Kubernetes 变成一个 GPU 感知的资源管理平台,让 AI 工作负载能够以显存、算力或设备数量为单位精细地获取 GPU 资源。
一句话概括:HAMi turns Kubernetes into a GPU-aware control plane for AI workloads.
HAMi 不是一个 GPU 驱动,不是 CUDA 的替代品,也不是一个模型服务框架。它专注于一个精确的定位,在 Kubernetes 调度层面解决 GPU 资源的管理和分配问题。
核心能力
加速器共享
HAMi 允许将一张物理 GPU 切分为多个逻辑单元,分配给不同的工作负载。支持三种维度的资源分配:
- 按显存分配指定工作负载可使用的显存上限
- 按算力分配指定工作负载可使用的 GPU 计算核心比例
- 按设备数量分配指定工作负载可见的 GPU 设备数
apiVersion: v1
kind: Pod
metadata:
name: ai-inference
spec:
containers:
- name: inference
image: tensorflow-serving:latest
resources:
limits:
nvidia.com/gpu: 3 # 使用 3 个 GPU 设备
nvidia.com/gpumem: 4000 # 每个设备 4000MB 显存这个 Pod 使用 3 个 GPU 设备,每个设备分配 4000MB 显存。
资源隔离
每个工作负载的显存和算力使用都被限制在配额范围内:
- 显存隔离超过配额的显存分配请求会被拒绝,防止一个工作负载耗尽整张 GPU 的显存
- 算力隔离通过底层机制限制每个工作负载的 GPU 计算时间占比
- 故障隔离一个工作负载的异常不会影响共享同一 GPU 的其他工作负载
设备感知调度
HAMi 的调度器扩展(Scheduler Extender)能够感知 GPU 的硬件拓扑和设备属性:
- 拓扑感知优先将 Pod 调度到 NVLink 互联的 GPU 上,提升多卡通信性能
- 类型感知区分不同型号的 GPU(如 A100 与 T4),按需匹配
- 策略调度支持 binpack(紧凑装箱)、spread(分散部署)等策略
- 自定义调度通过 Node Selector、Affinity 等标准 K8s 语义灵活控制
异构统一管理
HAMi 为不同厂商的加速器提供统一的资源抽象:
| 厂商 | 设备类型 | 资源标识 | 支持状态 |
|---|---|---|---|
| NVIDIA | GPU | nvidia.com/gpu | 稳定支持 |
| 华为昇腾 | NPU | huawei.com/Ascend910B3 | 稳定支持 |
| 寒武纪 | MLU | cambricon.com/vmlu | 稳定支持 |
| 海光 | DCU | hygon.com/dcunum | 稳定支持 |
| 摩尔线程 | GPU | mthreads.com/vgpu | 稳定支持 |
| 昆仑芯 | XPU | kunlunxin.com/vxpu | 稳定支持 |
无论底层硬件是什么,工作负载都使用统一的资源配置方式。平台团队可以用一套流程管理所有厂商的设备,更多厂商与资源名示例见“异构设备支持”章节。
零应用改造
HAMi 的接入不需要修改应用代码。工作负载使用标准的 Kubernetes 资源声明即可启用 GPU 共享:
# 无需修改应用代码,只需在 resources 中声明
resources:
limits:
nvidia.com/gpu: 3 # 使用 3 个 GPU 设备
nvidia.com/gpumem: 4000 # 4000MB 显存对于已有的使用 nvidia.com/gpu 的工作负载,HAMi 通过 Mutating Webhook 自动转换资源请求,实现无缝迁移。
生产就绪
HAMi 提供完整的生产环境支持:
- Prometheus:指标 GPU 利用率、显存使用、调度延迟等核心指标
- WebUI:可视化查看 GPU 资源分配和使用情况
- HelmChart:一键安装和升级
- 事件增强调度:决策、资源分配等关键事件可追踪
- 多租户支持:通过 Namespace 和 ResourceQuota 实现团队级别的资源配额
应用场景
AI 推理服务:多模型共享 GPU
推理场景是 HAMi 最典型的应用。一个在线服务平台通常需要同时部署多个模型,每个模型的资源需求远低于一张完整 GPU。
实际案例:一个 AI 平台需要同时部署 6 个推理模型(文本分类、图像识别、语音转写等),每个模型需要 8-12GB 显存。在传统模式下需要 6 张 GPU,使用 HAMi 后只需要 2 张 A100(80GB)。
# 模型 A:12GB 显存,20% 算力
apiVersion: apps/v1
kind: Deployment
metadata:
name: text-classifier
spec:
replicas: 2
template:
spec:
containers:
- name: server
image: text-classifier:latest
resources:
limits:
nvidia.com/gpu: 1 # 使用 1 个 GPU
nvidia.com/cores: 20 # 20% 算力
nvidia.com/gpumem: 12000 # 12GB 显存训练与推理混合部署
在同一集群中混合运行训练和推理任务,最大化 GPU 利用率:
- 训练任务:在非高峰期使用更多 GPU 资源
- 推理任务:保持稳定的在线服务
- 弹性调度:根据实际负载动态调整资源分配
企业 AI 平台:多团队共享
大型企业中多个 AI 团队共享 GPU 集群,需要公平、高效的资源分配:
- 团队 A(NLP):运行大语言模型微调
- 团队 B(视觉):运行目标检测训练
- 团队 C(推荐):运行推荐模型推理
- 团队 D(研究):运行实验性模型
HAMi 通过精细的资源分配和隔离,确保每个团队都能获得公平的 GPU 资源,同时最大化集群整体利用率。
主权 AI 基础设施:国产加速器支持
在需要国产化替代的场景中,HAMi 提供了统一的异构管理能力:
- 同时管理 NVIDIA GPU 和昇腾 NPU
- 工作负载无需针对不同硬件分别适配
- 可以制定调度策略,将特定工作负载优先调度到国产加速器
- 渐进式替代,无需一次性迁移所有工作负载
AI 云服务:GPU-as-a-Service
云服务商和 MLOps 平台可以使用 HAMi 构建 GPU 即服务:
- 将物理 GPU 切分为多个逻辑单元,按需出租
- 精确计量每个用户的 GPU 资源使用量
- 支持弹性伸缩,根据负载自动调整 GPU 分配
与其他方案对比
vs 原生 Kubernetes Device Plugin
| 维度 | 原生 Device Plugin | HAMi |
|---|---|---|
| 资源粒度 | 整卡 | 显存/算力/设备数 |
| 共享能力 | 不支持 | 原生支持 |
| 多厂商统一 | 各自独立 | 统一抽象 |
| 调度策略 | 无 GPU 感知 | 拓扑/类型/策略感知 |
| 应用改动 | 无 | 无 |
vs NVIDIA MIG (Multi-Instance GPU)
| 维度 | NVIDIA MIG | HAMi |
|---|---|---|
| 硬件要求 | 仅 A100/H100 等 Ampere+ | 支持更广泛的 GPU 型号 |
| 切分粒度 | 固定配额(1g.5gb、2g.10gb 等) | 灵活配额(任意显存和算力组合) |
| 多厂商 | 仅 NVIDIA | 多厂商统一 |
| 动态调整 | 需要重启实例 | 支持动态分配 |
| 配置复杂度 | 需要手动配置 MIG Profile | 标准 Kubernetes 资源声明 |
vs 云厂商 GPU 虚拟化
| 维度 | 云厂商方案 | HAMi |
|---|---|---|
| 部署位置 | 仅限特定云平台 | 任意 Kubernetes 集群 |
| 厂商锁定 | 强锁定 | 无锁定 |
| 成本 | 按云厂商定价 | 开源免费 |
| 灵活性 | 受限于云厂商能力 | 完全可控 |
| 异构支持 | 通常仅支持该云提供的 GPU | 多厂商统一支持 |
vs GPU 时间片方案
| 维度 | 时间片方案 | HAMi |
|---|---|---|
| 隔离性 | 弱(时间片切换) | 强(显存和算力硬隔离) |
| 可预测性 | 差(性能波动大) | 好(配额保障) |
| 显存隔离 | 通常不支持 | 支持 |
| 适用场景 | 低负载容忍度高 | 生产级工作负载 |
社区与生态
HAMi 是 CNCF Sandbox 项目,拥有活跃的开源社区:
作为 CNCF Sandbox 项目,HAMi 遵循云原生社区的最佳实践,包括开放的治理流程、清晰的贡献指南和透明的路线图规划。
小结
本章介绍了 HAMi 项目的核心定位和能力:
- 定位:GPU Resource Control Plane for Kubernetes,CNCF Sandbox 项目
- 核心能力:加速器共享、资源隔离、设备感知调度、异构统一管理、零应用改造、生产就绪
- 应用场景:AI 推理服务、训练推理混合、企业 AI 平台、主权 AI 基础设施、AI 云服务
- 方案优势:相比原生 Device Plugin、MIG、云厂商方案和 GPU 时间片,HAMi 在灵活性、多厂商支持和生产就绪度方面具有显著优势
下一章将进入动手实践环节,带你完成 HAMi 的安装和第一个工作负载的部署。