【2/100】英伟达没做到的事,国产的 HAMi 做到了!

本期视频从 Kubernetes 原生方案在 GPU 共享和虚拟化方面的局限性入手,指出在 GPU Operator 默认配置下,Kubernetes 的设备插件设计存在以下限制:
扩展资源必须是整数,无法超配;
无法实现多个 Pod 共用同一块 GPU;
不支持细粒度的算力(如 40%)或显存(如 10GiB)切分。
现有方案的比较
视频进一步分析了目前 NVIDIA 的 GPU 共享方案:
Timeslicing:缺乏算力限制和显存隔离;
MPS:不支持显存隔离;
MIG:需要特定硬件支持,且资源切分固定,灵活性差。
HAMi:更灵活的 GPU 虚拟化解决方案
HAMi 致力于在不修改应用的前提下,实现对 NVIDIA GPU 的细粒度切分与隔离:
支持对算力和显存的灵活分配;
覆盖更多虚拟化使用场景;
限制超额显存的申请行为。
视频内容概览
vGPU 的生命周期流程
展示了一个 Pod 从创建到运行过程中,GPU 资源是如何被:
申请 -> 调度 -> 分配 -> 最终在容器中生效的
HAMi 的核心机制
Mutating Webhook
判断是否请求 GPU,并修改调度器为
hami-scheduler
。HAMi Scheduler
接管调度逻辑,支持更复杂的调度策略,包括:
指定 GPU 型号或 UUID;
NUMA 感知;
NVLink 拓扑优化;
Binpack 或 Spread 等调度策略。
HAMi Device Plugin
运行于每个 GPU 节点:
上报节点上的 GPU 信息(UUID、型号、算力、显存等);
写入 Node Annotation;
Pod 调度后,读取 Annotation,准备环境变量并指定 GPU UUID,完成挂载。
HAMi Core(资源限制器)
控制显存与算力的使用上限,确保资源切分后的隔离性与安全性。
适合人群
对 Kubernetes 有基础了解的开发者;
对 GPU 虚拟化、AI 基础设施、调度机制感兴趣的工程师与研究者。
版权声明: 本文为 InfoQ 作者【霓漠Nimbus】的原创文章。
原文链接:【http://xie.infoq.cn/article/5c81488e98788b516cd6720f4】。文章转载请联系作者。
评论