资讯动态

HAMi 异构AI计算虚拟化实操指南:K8s环境GPU/NPU统一调度与vGPU共享

发布时间:2026/10/17 1:46:39 来源:尧图企业网站定制
HAMi 异构AI计算虚拟化实操指南K8s环境GPU/NPU统一调度与vGPU共享【免费下载链接】HAMiHeterogeneous GPU Sharing on Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ha/HAMiK8s集群AI任务调度绕不开的整卡独占问题集群里同时跑着NVIDIA A100和昇腾910B下一个训练任务该派给谁一个只占10GB显存的小任务把32GB整卡占住另一半资源又归谁原生调度器对这两个问题都答不上来。HAMiHeterogeneous AI Computing Virtualization Middleware就是为此设计的异构AI计算虚拟化中间件它能把一张物理卡按显存、算力比例切分并对不同厂商的加速卡做统一调度。定位单卡切分、多厂商调度、不改应用代码HAMi是运行在Kubernetes上的开源虚拟化中间件也是CNCF Incubating项目核心解决四件事设备共享、资源隔离、设备感知调度、多厂商硬件统一管理。目前覆盖NVIDIA GPU、Ascend NPU、寒武纪MLU、海光DCU、天数智芯GPU等硬件。跟一个Pod的生命周期看HAMi怎么分配vGPU在Pod里写下nvidia.com/gpumem: 3000申请3GB卡显存后提交流程如下Mutating Webhook先拦截请求规范资源描述并在此后拒绝任何人篡改调度器写下的分配结果HAMi Scheduler基于kube-scheduler插件机制也兼容Volcano用binpack、spread等策略对候选节点打分决定任务落到哪张卡把分配结果写进Pod的Annotations节点上的Device Plugin读取Annotations在容器Allocate阶段注入环境变量与挂载容器内再由对应硬件的虚拟化组件接管——NVIDIA用HAMi CORE、寒武纪用smlu-containerd、华为用Ascend runtime——屏蔽真实设备应用只看到分到的3GB显存和算力份额代码零改动。调度决策核心在 pkg/scheduler/节点侧插件逻辑在 pkg/device-plugin/。细粒度共享把两个任务塞进两张卡省出另外两张这是最直接的价值。以4张V10032G的节点为例用户A要2张卡各10GB显存用户B要2张卡各20GB。没有HAMi时两个任务各占整卡4张GPU全部被占用卡利用率约50%启用HAMi后调度器把两个工作负载打包到同样2张卡上另外2张卡完整可用利用率从50%提升到100%且两个负载之间仍有独立的显存与算力配额互不抢占。可以把它理解成按GB租卡而不是整张买卡。实时监控一眼看出哪个容器在吃GPU共享之后新问题出现谁在用哪块vGPU、用了多少HAMi的monitor组件按容器粒度实时采集显存与核利用率上报PrometheusGrafana仪表盘上能看到卡温、功耗、整体利用率以及每个容器的占用明细。发现某节点利用率异常时几十秒内就能定位是哪个训练任务占满了整卡不用再登机器逐张查nvidia-smi。此外还支持NVIDIA卡专属的动态MIG切分和拓扑感知调度配置项即可开启。4步部署HAMi到K8s集群前置条件K8s ≥ 1.23NVIDIA驱动 ≥ 440containerd已配置nvidia为默认运行时已安装Helm 3.0。给GPU节点打标签kubectl label nodes node-name gpuon获取Chart并部署调度器与设备插件git clone https://gitcode.com/GitHub_Trending/ha/HAMi helm dependency update HAMi/charts/hami helm install hami HAMi/charts/hami -n kube-system【免费下载链接】HAMiHeterogeneous GPU Sharing on Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑