本次工作坊来自 ContainerDays 2026 Singapore(10 月 27 日 12:30 至 13:15),由宋净超与 Reza Jelveh 共同主讲。全程在笔记本电脑上的 kind 集群中完成,不需要真实 GPU:mock device plugin 会向节点注入两块模拟的 A100-40GB 显卡,让 CNCF Incubating 项目 HAMi 的每一个调度决策都清晰可见。
下方嵌入了交互式幻灯片,您可以使用控制按钮或键盘快捷键进行导航。
主要议题
- 为什么需要共享 GPU:一个 1 GB 的任务会占用整块 80 GB 显卡,大多数 GPU 大部分时间在闲置
- HAMi 架构:Mutating webhook、调度器扩展、Device Plugin、HAMi-core、vGPUmonitor 五个组件各司其职
- 申请一份显存:跨厂商统一的资源模型,如
nvidia.com/gpumem与nvidia.com/gpucores,业务零改造 - Lab 1 安装:kind 集群、HAMi 2.10.0、mock device plugin、两块模拟 A100
- Lab 2 共享 GPU:细粒度申请、拦截链路全解析,以及一个永远无法调度的 Pod
- Lab 3 调度策略:卡维度上的 binpack 与 spread,以及拓扑感知调度
- Lab 4 超越默认调度器:KAI Scheduler、Volcano vGPU 与 HAMi-DRA 三条进阶路径
- 指标与收尾:分配量与使用量两套指标体系、HAMi WebUI,以及贡献入口
活动信息
- 活动: ContainerDays 2026 Singapore
- 时间: 2026 年 10 月 27 日 12:30 至 13:15
- 演讲者: 宋净超(Dynamia AI 开源生态 VP)、Reza Jelveh(Dynamia AI 解决方案架构师)
- 实验手册: workshop.project-hami.io/labs/containerdays-singapore
- 实验文件: hami-workshop/examples/containerdays-singapore
总结
GPU 共享的本质是把整卡分配变成显存与算力的细粒度分配。HAMi 用一套跨厂商的资源模型、一个调度器扩展和一层容器内隔离库(HAMi-core)把这件事做进了 Kubernetes 原生流程:Pod 声明 gpumem 与 gpucores,webhook 改写 schedulerName,调度器按卡挑选 UUID 并写入注解,device plugin 在 Allocate 阶段完成挂载。实验环境用 mock 组件替换了真实 GPU,让完整链路在笔记本上可复现;而 KAI Scheduler、Volcano 与 DRA 则展示了同一隔离层之上更换调度大脑的可能性。