昆仑芯 X HAMi X 百度智能云 | 昆仑芯 P800 XPU/vXPU 双模式算力调度方案落地
百度智能云混合云联合 昆仑芯 、HAMi(密瓜智能发起并主导的 CNCF 开源项目) ,正式推出基于昆仑芯 P800 的 XPU/vXPU 双模式算力调度方案。
该方案已率先在某金融客户的昆仑芯集群中落地,为智能客服、营销辅助等十余类 AI 业务提供兼具稳定性与灵活性的算力支撑。
客户可在同一集群内灵活调用昆仑芯 P800 的整卡 XPU 与虚拟化 vXPU 资源,让国产算力既高效匹配业务需求,又实现资源的最大化利用。
#昆仑芯P800 #XPU虚拟化 #百度智能云 #HAMi #Kubernetes #AI算力调度

一、XPU/vXPU 双模式调度方案:让 P800 算力用透
百度智能云联合 HAMi,基于昆仑芯 P800 构建了「XPU 整卡 + vXPU 虚拟化」双模式资源调度体系:
-
XPU 整卡模式 :
通过拓扑寻优调度与健康度评估,实现「多卡单任务」的最优资源调度,保障大规模训练性能和稳定性,并避免资源碎片化。
-
vXPU 虚拟化模式 :
以多规格切分支持「单卡多任务」,最大化资源利用率,灵活适配推理、开发等轻量化场景。
双模式协同发力,让昆仑芯 P800 的每一份算力"算尽其用 ",为各类 AI 业务提供高效支撑。

二、XPU 整卡模式:拓扑寻优调度 + 集群健康度评估
在多卡训练等通信性能敏感场景中,调度策略直接决定集群的长期可用性与性能稳定性。
基于昆仑芯 P800 的物理拓扑特性,方案通过两层逻辑保障整卡模式的「高性能和高稳定性」。
-
物理分区识别
系统自动识别服务器左右侧翼物理分区,优先在单侧翼内调度资源,减少跨侧翼通信开销,并避免资源零散占用。
-
拓扑规整度优先
当多个节点满足需求时,系统评估调度对整体拓扑结构的影响,优先选择保持或优化拓扑规整度的节点。
通过「节点内拓扑寻优 + 集群健康度评估」,运维团队无需手动"拼卡",即可实现稳定、高效的大模型训练。
三、vXPU 虚拟化模式:多粒度切分 + 显存自动对齐
针对推理、开发测试、模型验证等轻量化任务,vXPU 虚拟化模式打造了「算力精准切分 + 便捷管理」方案。
- 支持多任务共享单张 P800 显卡;
- 提供 1/4 卡(24GB) 与 1/2 卡(48GB) 两种切分规格;
- 用户仅声明所需显存,系统自动向上匹配最优规格(如申请 20GB → 自动分配 24GB)。
为避免实例间干扰,引入「同规格共享机制 」:
同一物理卡仅允许相同规格虚拟实例共享,极大简化资源隔离与管理复杂度。
四、UUID 精准控卡:自动化打底 + 人工补位
方案在日常场景中实现了高自动化调度;
而针对灰度测试、硬件复现等特殊需求,保留了「人工干预通道」:
运维可通过 指定物理卡 UUID 直接选定或排除设备。
例如:
- 灰度测试时仅调部分卡;
- 故障复现时可精准定位问题卡,无需整机下线。
自动化与人工调节相结合,实现了调度效率 + 灵活性的平衡。
五、组件简介
本组件支持复用昆仑芯 XPU 设备(P800-OAM),并提供类似 vGPU 的复用能力:
- ✅ XPU 共享:任务可共享单卡资源
- ✅ 显存限制分配:可按显存大小分配(如 24576M)
- ✅ 设备 UUID 选择:支持指定或排除特定设备
感谢来自睿思智联与昆仑芯团队的贡献!
六、节点需求
- driver version ≥ 5.0.21.16
- xpu-container-toolkit ≥ xpu_container_1.0.2-1
- XPU device type: P800-OAM
七、开启 GPU 复用
部署 vxpu-device-plugin:
c
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vxpu-device-plugin
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "update", "watch", "patch"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch", "update", "patch"]
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: vxpu-device-plugin
namespace: kube-system
spec:
selector:
matchLabels:
app.kubernetes.io/component: vxpu-device-plugin
template:
metadata:
labels:
app.kubernetes.io/component: vxpu-device-plugin
spec:
serviceAccountName: vxpu-device-plugin
containers:
- image: projecthami/vxpu-device-plugin:v1.0.0
name: device-plugin
args:
- xpu-device-plugin
- --memory-unit=MiB
- --resource-name=kunlunxin.com/vxpu
默认资源名称:
kunlunxin.com/vxpu------ VXPU 数量kunlunxin.com/vxpu-memory------ 内存分配
八、设备粒度切分
XPU P800-OAM 支持两种粒度的切分:
| 申请显存范围 | 自动对齐规格 |
|---|---|
| ≤ 24576M (24G) | 24G |
| 24G < 显存 ≤ 48G | 48G |
| > 48G | 整卡分配 |
九、运行 XPU 任务示例
yaml
apiVersion: v1
kind: Pod
metadata:
name: vxpu-pod-demo
spec:
containers:
- name: vxpu-pod-demo
image: pytorch:resnet50
resources:
limits:
kunlunxin.com/vxpu: 1
kunlunxin.com/vxpu-memory: 24576
更多示例参考:HAMi 官方文档
十、设备 UUID 选择与查询
通过 Pod 注解可指定设备:
yaml
apiVersion: v1
kind: Pod
metadata:
name: poddemo
annotations:
hami.io/use-xpu-uuid: ""
hami.io/no-use-xpu-uuid: ""
查找设备 UUID:
bash
kubectl get pod <pod-name> -o yaml | grep -A 10 "hami.io/xpu-devices-allocated"
或:
bash
kubectl get node <node-name> -o yaml | grep -A 10 "hami.io/node-register-xpu"
十一、注意事项
当前昆仑芯驱动最多支持 32 个句柄,8 张设备占 8 个句柄,无法同时切成 4 份。
c
# ✅ valid
kunlunxin.com/vxpu: 8
# ✅ valid
kunlunxin.com/vxpu: 6
kunlunxin.com/vxpu-memory: 24576
# ✅ valid
kunlunxin.com/vxpu: 8
kunlunxin.com/vxpu-memory: 49152
# ❌ invalid
kunlunxin.com/vxpu: 8
kunlunxin.com/vxpu-memory: 24576
十二、结语
XPU/vXPU 双模式协同调度方案在金融行业的落地,是百度智能云混合云联合 HAMi 在国产 AI 硬件调度领域的重要实践。
它验证了「场景驱动调度策略 」的技术创新价值,也展示了「开源生态 + 企业服务」结合的落地能力。
📖 想了解更多昆仑芯 P800 虚拟化方案:
👉 https://github.com/Project-HAMi/HAMi/blob/master/docs/kunlun-vxpu-support_cn.md