昆仑芯 X HAMi X 百度智能云 | 昆仑芯 P800 XPU/vXPU 双模式算力调度方案落地 - 详解

昆仑芯 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 的物理拓扑特性,方案通过两层逻辑保障整卡模式的「高性能和高稳定性」。

  1. 物理分区识别
    系统自动识别服务器左右侧翼物理分区,优先在单侧翼内调度资源,减少跨侧翼通信开销,并避免资源零散占用。

  2. 拓扑规整度优先
    当多个节点满足需求时,系统评估调度对整体拓扑结构的影响,优先选择保持或优化拓扑规整度的节点。

通过「节点内拓扑寻优 + 集群健康度评估」,运维团队无需手动“拼卡”,即可实现稳定、高效的大模型训练。


三、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

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 < 显存 ≤ 48G48G
> 48G整卡分配

九、运行 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 选择与查询

通过 Pod 注解可指定设备:

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


posted @ 2025-12-02 17:51  gccbuaa  阅读(0)  评论(0)    收藏  举报