跳到主要内容

Dynamia ppu-vgpu-device-plugin Chart 0.0.3

发布时间:2026-09-22

版本上一版本版
Chart0.0.20.0.3
appVersion1.0.41.0.5

本版将每张物理 PPU 的默认虚拟设备数从 2 改为 10,并统一通过设备配置文件读取资源名和切分配置。插件与监控的默认镜像均更新为 ghcr.io/dynamia-ai/ppu-device-plugin:v1.0.5,内置 PPU-HAMi-core 与应用 1.0.4 相同。

HAMi Enterprise 兼容性​

如果 Chart 0.0.2 下的调度、资源切分及授权已正常工作,升级至 0.0.3 无需同步升级 HAMi Enterprise。本次没有改变调度与授权协议;调整切分数前,仍需确认现有工作负载、配额和容量规划是否允许增加共享份数。

功能或使用场景最低可用 HAMi Enterprise 版本本版配套要求与升级结论
PPU 基础调度、显存与算力切分,以及授权下发和续期;使用旧格式 UUID 授权或型号授权v2.9.0-rc2已能发布有效 hami.io/alibaba-license 的调度器可继续使用。默认切分数变化不要求升级 Enterprise。
使用 deviceInstances 格式的实例授权v2.10.0-r0原授权在应用 1.0.4 下已正常生效时,可沿用现有 Enterprise 和授权。

以上版本下限基于发布制品和接口实现核对,不代表已完成各配套版本的 PPU 实机验证。

版本变化​

Chart 变化​

  • config.data.alibaba.deviceSplitCount 默认值由 2 改为 10。使用本 Chart 创建的 ConfigMap 且未覆盖该值时,每张物理 PPU 按 10 个虚拟设备上报。该值控制可分配的共享份数,不增加物理显存或算力;显存和算力缩放默认值仍为 1.0。
  • 插件 DaemonSet 删除 --resource-name、--device-split-count 和 --device-memory-scaling 三个启动参数,仅保留 --config-file=/device-config.yaml。资源名、切分数和缩放系数由挂载的配置文件提供。

应用变化​

应用 1.0.5 移除原有 PPU 扩展命令行参数及其环境变量入口。手工部署清单、Helm 后处理脚本或镜像启动脚本若仍附加这些参数,须同步修改;继续传入已删除的参数会导致命令行解析失败。

已移除的参数本版配置入口
--resource-namealibaba.resourceCountName
--device-split-countalibaba.deviceSplitCount
--device-memory-scalingalibaba.deviceMemoryScaling
--device-cores-scalingalibaba.deviceCoreScaling
--disable-core-limitalibaba.disableCoreLimit
--node-name通过 NODE_NAME 环境变量传入节点名;Chart 已使用 Downward API 设置

表中的 alibaba.* 是实际设备配置文件的键。由 Chart 创建配置时,在 values 中使用 config.data.alibaba.*。旧的 DEVICE_SPLIT_COUNT、DEVICE_MEMORY_SCALING、DEVICE_CORES_SCALING、DISABLE_CORE_LIMIT 和 NodeName 环境变量不再作为这些命令行参数的入口。原有配置文件已经是资源与切分配置的读取来源,本次移除重复入口,不改变授权下发、续期或运行库行为。

升级说明​

明确保留或调整切分数​

希望继续保持每卡 2 份的部署,应在升级 values 中显式固定该值:

config:
data:
alibaba:
deviceSplitCount: 2

希望采用每卡 10 份的部署,应显式设为 10,并检查最终渲染的 ConfigMap。升级时保留的旧 values 可能继续覆盖新默认值,不能仅凭 Chart 版本判断实际份数。自定义切分数、资源名及缩放系数应按现场配置保留。

使用 config.create: false 和 config.existingConfigMapName 的部署,应修改外部 ConfigMap 中的 alibaba.deviceSplitCount 等字段;仅修改 config.data 不会更新该外部对象。插件须重新读取配置后才能按新份数注册,外部 ConfigMap 的修改也不会触发本 Chart 的配置校验和滚动更新,应安排重启插件并核对结果。

切分数由设备插件负责上报。调度器使用节点上报的容量;仅修改 Enterprise 中的调度默认值,不能替代插件配置修改。两端的资源名须保持一致。若减少份数,应先确认已有分配不超过新容量,再安排维护。

同步镜像与部署清单​

  • 保留原 Helm release、命名空间、资源名称和节点选择。插件与监控共用 image.repository、image.tag;image.tag 为空时采用 v1.0.5。固定旧 tag 的部署须更新镜像覆盖值,才能获得应用变更。
  • 清理自定义清单和启动脚本中的已删除参数,并将需要保留的设置写入设备配置文件。不要仅把 Chart 0.0.2 的镜像替换为 v1.0.5:旧 Chart 仍会传入本版已删除的三个参数,应一并升级 Chart 或修正清单。
  • 检查插件和监控 DaemonSet 的实际镜像、插件启动日志、节点 PPU 注册信息以及 alibaba.com/ppu 的容量。对于所有物理 PPU 均健康、可注册且使用同一配置的节点,虚拟设备总数应与物理卡数乘以切分数一致;自定义资源名时检查对应资源。
  • 本次运行库和按容器授权格式没有变化,无需为应用升级统一迁移授权文件或重建全部业务 Pod。若同时调整切分数,应另外验证新建工作负载的调度、分配和资源限制。

查看Chart 与 appVersion 对应关系或软件中心。

Values 说明​

以下参数说明取自 Chart 0.0.3 发布包随附的 README,保留原文。默认配置以该版本的 values.yaml 为准。

展开参数表
KeyTypeDefaultDescription
commonAnnotationsobject{}
commonLabelsobject{}
config.createbooltrue
config.data.alibaba.defaultCoresint0
config.data.alibaba.defaultGPUNumint1
config.data.alibaba.defaultMemoryint0
config.data.alibaba.deviceCoreScalingfloat1
config.data.alibaba.deviceMemoryScalingfloat1
config.data.alibaba.deviceSplitCountint10
config.data.alibaba.gpuCorePolicystring"default"
config.data.alibaba.memoryFactorint1
config.data.alibaba.overwriteEnvboolfalse
config.data.alibaba.resourceCoreNamestring"alibaba.com/gpu-core"
config.data.alibaba.resourceCountNamestring"alibaba.com/ppu"
config.data.alibaba.resourceMemoryNamestring"alibaba.com/ppu-memory"
config.data.alibaba.resourceMemoryPercentageNamestring"alibaba.com/ppu-memory-percentage"
config.data.alibaba.runtimeClassNamestring""
config.existingConfigMapNamestring""
fullnameOverridestring""
image.pullPolicystring"IfNotPresent"
image.pullSecretslist[]
image.repositorystring"ghcr.io/dynamia-ai/ppu-device-plugin"
image.tagstring""
monitor.enabledbooltrue
monitor.resourcesobject{}
monitor.service.enabledbooltrue
monitor.service.nodePortint31992
monitor.service.portint31992
monitor.service.typestring"NodePort"
nameOverridestring""
namespaceOverridestring"hami-system"
nodeSelector.alibabappustring"on"
plugin.enabledbooltrue
plugin.resources.limits.cpustring"500m"
plugin.resources.limits.memorystring"512Mi"
plugin.resources.requests.cpustring"100m"
plugin.resources.requests.memorystring"128Mi"
priorityClassNamestring"system-node-critical"
tolerations[0].keystring"CriticalAddonsOnly"
tolerations[0].operatorstring"Exists"
tolerations[1].effectstring"NoSchedule"
tolerations[1].operatorstring"Exists"