跳转到文档内容

1 篇文章 文档包含 "Ascend"

查看全部标签

用 Volcano + HAMi-core 软切分昇腾 vNPU:原理与真机验证

· 阅读需要 15 分钟

Volcano 是很多 AI 集群的批量调度器首选,HAMi-core 则是让共享加速器"守规矩"的运行时。本文关注两者在昇腾硬件上的交汇点:在 Volcano 调度器下运行 hami-vnpu-core 软切分的 vNPU,让批量调度语义(队列、Gang、binpack)与容器级隔离(在昇腾 API 层强制生效的显存与算力上限)协同工作。

我们在一台昇腾 310P3 aarch64 服务器的单节点 Kubernetes 集群上验证了完整链路:源码编译 Volcano 镜像、部署官方 ascend-device-plugin v1.4.0 镜像,并确认申请 8192 MiB 切片的容器恰好只能看到这么多显存;同时第二个 Pod 以 binpack 方式落到同一张物理卡上、拿到独立切片,插件的 Prometheus 端点也如实上报了两个容器的配额。完整步骤(含每条命令与真实输出)见 实验 13:用 Volcano + HAMi-core 软切分昇腾 310P3 vNPU

这个话题里混着好几个经常被混为一谈的概念,所以本文先把层次分开:vNPU 是什么、硬切分和软切分有何不同、Volcano 集成相比已有的 HAMi 调度器路径到底新增了什么。

关于本文中的输出

本文所有输出均采集自真实的昇腾 310P3 物理服务器,截至撰写本文时已在真机上验证:麒麟 V10 aarch64 节点、2× 昇腾 310P3(驱动/npu-smi 25.5.1)、Kubernetes v1.28.15、containerd 1.7.1。其他集群中的 UUID、IP、Pod 后缀会不同;请对比组件名、调度位置与测量值。

CNCFHAMi 是 CNCF 孵化项目