提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。
用户A:希望Ascend Device Plugin在热复位前后,记录时间点及最终结果,方便上层监控芯片复位过程 用户B:希望Ascend Device Plugin在复位前,调用一个工具采集,采集一下NPU中的信息,因为复位后这些信息就丢失了,不利于后续的问题根因分析
Ascend Device Plugin热复位现状 -hotReset=0 开启推理离线复位 -hotReset=1 开启训练在线复位 -hotReset=2 开启训练离线复位
离线复位:当芯片处于空闲状态时,执行芯片复位命令 在线复位:不删除容器,和容器内的管理进程通信,停止进程后执行芯片复位命令。有了Clusterd的grpc通道的进程级重调度后,该功能非必要,也不易用。 推理训练的区分:在设计之初,推理卡是310系列,训练卡是910系列,因此设计了两个不同分支的代码。当前训练推理都是910系列芯片,复位的区别只是一次复位芯片范围的不同。重复代码过多,可以优化
PreReset([]deviceList) : 正式复位前执行,允许在复位前记录一下日志、NPU状态。 CustomReset([]deviceList, err error) err error: 自定义复位操作,入参为执行复位的芯片ID列表,以及内部复位的结果,若内部的复位操作失败,可以用此方法通过其他方式去修复芯片,若修复成功,则将返回值error置为空就行。 AfterReset([]deviceList, err error):复位完成后执行。入参为执行复位的芯片ID列表,以及最终的复位结果,可以在此记录复位的结果。
钩子函数的执行有时间限制,超过则停止
PreReset([]deviceList) :10秒 CustomReset([]deviceList, err error) err error:5分钟 AfterReset([]deviceList, err error):10秒
考虑兼容性,仍然支持hotReset=0、hotReset=2的启动配置
2026-5-8
欢迎加入社区,感谢您对社区的贡献 🎉!
/label add triaged
提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。
需求背景
外部诉求
用户A:希望Ascend Device Plugin在热复位前后,记录时间点及最终结果,方便上层监控芯片复位过程
用户B:希望Ascend Device Plugin在复位前,调用一个工具采集,采集一下NPU中的信息,因为复位后这些信息就丢失了,不利于后续的问题根因分析
内部架构优化
Ascend Device Plugin热复位现状
-hotReset=0 开启推理离线复位
-hotReset=1 开启训练在线复位
-hotReset=2 开启训练离线复位
离线复位:当芯片处于空闲状态时,执行芯片复位命令
在线复位:不删除容器,和容器内的管理进程通信,停止进程后执行芯片复位命令。有了Clusterd的grpc通道的进程级重调度后,该功能非必要,也不易用。
推理训练的区分:在设计之初,推理卡是310系列,训练卡是910系列,因此设计了两个不同分支的代码。当前训练推理都是910系列芯片,复位的区别只是一次复位芯片范围的不同。重复代码过多,可以优化
需求描述
价值
提议方案
方案设计
1. 梳理新流程单线程、非并发
-> PreReset([]deviceList) //10s
-> CustomReset([]deviceList, err error) err error (A3的特殊处理)//5分钟
-> AfterReset([]deviceList, err error) // 10s
2. 添加插件机制
3. 实现插件
健壮性设计
钩子函数的执行有时间限制,超过则停止
考虑兼容性,仍然支持hotReset=0、hotReset=2的启动配置
验收标准
意见征集周期
2026-5-8
抄送名单
其他补充说明
欢迎加入社区,感谢您对社区的贡献 🎉!