昆仑芯 X HAMi X 百度智能云 | 昆仑芯 P800 XPU/vXPU 双模式算力调度方案落地
关键词: 昆仑芯 P800 | XPU | vXPU | HAMi | 百度智能云 | 虚拟化算力 | 混合云调度
百度智能云混合云联合昆仑芯、HAMi(密瓜智能发起并主导的 CNCF 开源项目),正式推出基于昆仑芯 P800 的 XPU/vXPU 双模式算力调度方案。
该方案已率先在某金融客户的昆仑芯集群中落地,为智能客服、营销辅助等十余类 AI 业务提供兼具稳定性与灵活性的算力支撑。 客户可在同一集群内灵活调用昆仑芯 P800 的整卡 XPU 与虚拟化 vXPU 资源,让国产算力既高效匹配业务需求,又实现资源的最大化利用。
💡 一、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),并提供以下功能:
-
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,清单如下:
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: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: vxpu-device-plugin
subjects:
- kind: ServiceAccount
name: vxpu-device-plugin
namespace: kube-system
roleRef:
kind: ClusterRole
name: vxpu-device-plugin
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vxpu-device-plugin
namespace: kube-system
---
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 支持 2 种切分方式:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
🧠 九、运行 XPU 任务示例
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 选择与查询
apiVersion: v1
kind: Pod
metadata:
name: poddemo
annotations:
hami.io/use-xpu-uuid: ""
hami.io/no-use-xpu-uuid: ""
查询设备 UUID:
kubectl get pod <pod-name> -o yaml | grep -A 10 "hami.io/xpu-devices-allocated"
或:
kubectl get node <node-name> -o yaml | grep -A 10 "hami.io/node-register-xpu"
⚠️ 十一、注意事项
当前昆仑芯驱动最多支持 32 个句柄,8 张设备占 8 个句柄,无法同时切分为 4 份。
# ✅ 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

