| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
update license Co-authored-by: y1lou<louyi6@huawei.com> # message auto-generated for no-merge-commit merge: !185 merge update_license into master update license Created-by: y1lou Commit-by: y1lou Merged-by: ascend-robot Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-pyMotor!185 | 6 个月前 | |
PyMotor支持port自动检测 Co-authored-by: yangan7<yangan7@h-partners.com> # message auto-generated for no-merge-commit merge: !247 merge port_detect into master PyMotor支持port自动检测 Created-by: mindie_yangan Commit-by: yangan7 Merged-by: towncharlie Description: ## **1. 合入背景** Fixes [#157](https://gitcode.com/Ascend/MindIE-PyMotor/issues/157) ## **2. 修改内容** 1、port_allocator.py — 端口探测/避让/严格报错 + 三组件接入 + 通信矩阵打印 2、port_allocator_config.py — 开关与扫描范围配置 3、motor/config/{coordinator,controller,node_manager}.py — 增加 port_allocator_config 配置项 4、motor/{coordinator,controller,node_manager}/main.py — 启动前调用端口分配 5、tests/coordinator/test_main.py、tests/node_manager/test_config.py — UT 适配 内部端口冲突自动避让并写回配置;对外端口(Coordinator 1025、Controller 1026)冲突则报错退出;启动日志打印[Port matrix]。 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 1、controller pod port矩阵打印效果展示  coordinator pod port矩阵打印效果展示  prefill pod port矩阵打印效果展示  decode pod port矩阵打印效果展示  2、使用脚本强行抢占prefill pod 1026的port  自动检测后该prefill pod避让port为1027,该pods删除重启  重新加载权重后curl通推理请求  重新分配pod和port  3、严格独占类port直接给出清晰报错,不可抢占  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!247 | 2 个月前 | |
[refractor] 提取http相关公共文件,简化utils文件夹内文件数量 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge master into master [refractor] 提取http相关公共文件,简化utils文件夹内文件数量 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/47 ## **2. 修改内容** 提取utils函数,汇聚目录 ## **3. 资料变更** 涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 服务能正常拉起 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!55 | 3 个月前 | |
【feature】新增精度检测:基础设施与Controller自动恢复 Co-authored-by: wangyang<kevin.wangyang@huawei.com> # message auto-generated for no-merge-commit merge: !262 merge master into master 【feature】新增精度检测:基础设施与Controller自动恢复 Created-by: towncharlie Commit-by: wangyang Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!262 | 2 个月前 | |
[Feature] 引擎重启兜底策略:容器不重启重拉引擎 + 自杀裁决收敛 Daemon Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !710 merge feature/engine_relaunch into master [Feature] 引擎重启兜底策略:容器不重启重拉引擎 + 自杀裁决收敛 Daemon Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: tobking Description: ### 1. 合入背景 引擎进程死亡后,当前唯一兜底是「NodeManager 心跳 abnormal ×5(约 15s)→ 自杀 → k8s 重启 pod」,代价是全容器重建。本 PR 实现「容器不重启重拉引擎」:Controller 协同实例的**所有** NodeManager 一起重拉全部引擎(rank 集合通信组一致性),重拉失败再回退到容器重启;同时把自杀裁决权收敛到 Daemon(进程生命周期管理者)。 本 PR 基于最新主线:原生引擎拉起(#698:NodeManager 直接 spawn 原生 vLLM/SGLang,删除 EngineServer 层)与 EngineServer 删除收尾(#717)均已合入,重拉链路已对接原生拉起路径。 关联 ISSUE:#472 ### 2. 修改内容 1. **Controller 引擎重启兜底策略**( motor/controller/fault_tolerance/strategy/engine_relaunch.py,两阶段): - Phase 1 重启引擎:探活实例全部 NodeManager(任一不可达 → 直接 Phase 2,保证 rank 一致性)→ 逐个下发 POST /node-manager/engine-restart → 轮询 /node-manager/status 全部 NORMAL → 成功 - Phase 2 重启容器:仅对**未成功派发重启**的 NM 发 abort 解冻自杀(已派发 NM 保持 freeze,避免打断正在恢复的引擎)→ 心跳机制触发容器重启(k8s);abort 发送失败补 error 日志指名 NM;实例 DELETED/消失提前结束 - stop() 被打断时 fire-and-forget 发 abort(防冻结窗口内 NM 自杀被延迟) 2. **策略失败升级机制(可复用)**:StrategyBase.mark_failed() + InstanceMetadata.prev_strategy_failed——token 重推/UCE/弹性扩缩容等「期望引擎不重启快速恢复」的策略失败后,策略中心自动降级到 EngineRelaunchStrategy(兜底链);升级分支同样受 enable_engine_relaunch 门控 3. **level2_strategy 挂钩**:ENGINE_DEAD 软件故障直接触发 EngineRelaunchStrategy(开关关闭 → None) 4. **NodeManager 新路由** POST /node-manager/engine-restart(node_manager_api.py):body {"action": "restart"|"abort", "instance_id"};**薄路由**——restart 整体委托 Daemon.restart_engine(Daemon 内部解析启动参数、冻结自杀、暂停/恢复 FaultReporter、只停引擎服务重拉不动 KV store/监控线程),路由只做 HTTP 语义映射(并发 409、快照恢复中 409、未 start 400、失败 500,零锁零状态)。部分失联协同**复用既有 /node-manager/stop**(不在 restart 路由新加 shutdown action) 5. **自杀冻结**(daemon.py):截止时间制 freeze/unfreeze(abort 丢失自动过期,容器重启兜底永存);**freeze 仅在死亡上报成功后才执行**(上报失败 → Controller 不可达 → 不冻结,仲裁继续计数,容器重启兜底不被拖死);**freeze 受 enable_engine_relaunch 门控**(未开开关 → 不上报后不冻结,pod 快速自终止走 k8s 容器重启,不被 180s 冻结窗口拖延) 6. **FaultReporter 重拉编排**:重拉期间由 Daemon 暂停轮询(引擎被杀期间 FT 端口不可达,poll 失败会被误报死亡),重拉成功后 Daemon 恢复轮询并清空轮询状态(新引擎自然重新起算启动宽限);另修复首次 poll 失败即冻结自杀的时序竞态(自杀 ~15s vs DEAD 上报 15-30s) 7. **自杀裁决收敛 Daemon**:心跳模块收敛为状态源(has_abnormal_endpoints/endpoints_generation/is_within_grace_period),Daemon 独立 3s 仲裁线程统一裁决(5×3s≈15s,间隔跟随 heartbeat_interval_seconds 配置)+ 统一 freeze/should_suicide;**冷启动误判门槛**:只有「曾经 NORMAL」的 endpoint 异常才上报死亡(模型加载期不误报) 8. **引擎就绪等待下沉**:_engine_ready 握手事件 + Daemon 后台 wait_ready——heartbeat 不再感知引擎就绪、不再 import Daemon(循环依赖解除),状态线程在探测前等待握手 9. **改名**:EngineManager → RegisterManager(register_manager.py,职责=注册/元数据管理,与 Daemon 进程管理区分) 10. **结构**:StrategyBase 移至 strategy/base.py(消除循环 import) 11. **配置收敛(唯一开关)**:enable_engine_relaunch(默认开)为「容器不重启重拉引擎」唯一开关——Controller 侧 fault_tolerance_config(策略选择门控)+ NodeManager 侧 fault_tolerance_config(同名配置,freeze 门控);**删除 MOTOR_RESTART_ENGINE 环境变量及 health_check 的 SIGTERM 自杀快路径**,恢复路径统一由 Daemon 按开关决策 12. **重拉日志分隔标记**:旧引擎 stop 后、新引擎 pull 前,print 直达容器 stdout 打印 [ENGINE RELAUNCH #N] banner(容器生命周期内重拉计数 + 时间),多次重拉日志按次分区检索 13. **原生拉起适配(rebase #698/#717)**:重拉/就绪握手/死亡上报链路对接 native_engine;心跳经 RuntimeState probe 查询(STARTING/STOPPING 保留原状态);进程组清理(start_new_session + killpg + 退出等待 + 僵尸收割);bootstrap_port 字段;过时 EngineServer 提法清理 ### 3. 资料变更 涉及,同步更新: - docs/zh/developer_guide/components/node_manager.md:模块表(RegisterManager)、自杀裁决章节 - docs/zh/design/fault_tolerance/overview.md / fault_manager.md:策略/模块引用同步 - examples/features/config_sample.json:两侧 fault_tolerance_config 新字段 - skill refs(nodeman.md、controller.md、code-style.md)——nodeman.md 已随 #717 文档清理合并 ### 4. 接口变更 涉及(NodeManager 管理面接口 + 配置): - 新增 POST /node-manager/engine-restart:body {"action": "restart"|"abort", "instance_id": int?},200/400/409/500 - /node-manager/stop 语义补全为「自杀」:停引擎后延时 SIGTERM 自身(退出 -1 → k8s 重启 pod)。部分失联时 Controller 对存活 NM 复用该接口下发自杀(不再依赖引擎重拉路由) - 新增 Controller 配置 fault_tolerance_config.enable_engine_relaunch(默认 true)/ engine_relaunch_complete_timeout_sec / engine_relaunch_poll_interval_sec / engine_relaunch_dispatch_retries / engine_relaunch_nm_unreachable_threshold - 新增 NodeManager 配置 fault_tolerance_config.enable_engine_relaunch(默认 true,与 Controller 对齐)/ engine_restart_wait_timeout_sec(180s)/ engine_restart_freeze_sec(720s) - **删除** MOTOR_RESTART_ENGINE 环境变量(配置收敛,统一由 enable_engine_relaunch 决策) ### 5. 测试结果 **单测**(bash tests/run_tests.sh 全量):**2665 passed**(rebase #698/#717 后全量基线之上) 新增/重写测试覆盖: - EngineRelaunchStrategy:Phase 1 探活全部 NM / 探活失败直接 Phase 2 / 下发全部 NM / 轮询成功 / NM 连续不可达进 Phase 2 / 超时 abort / 实例消失提前结束 / event 打断 / Phase 2 只 abort 未派发 NM - 策略失败升级:StrategyBase 失败标记 / 策略中心 prev_strategy_failed 置位与清除 / 升级选择 EngineRelaunchStrategy - level2_strategy 挂钩:ENGINE_DEAD → EngineRelaunchStrategy、开关关闭 → None、UNHEALTHY → None - engine-restart 路由:restart/abort/400/409(并发、快照恢复中)/500(pull 失败且解冻) - /node-manager/stop 自杀语义:停引擎 + 延时 SIGTERM 自身(pod 重启) - 自杀冻结与裁决:freeze 清零复位 / 冻结期不计数 / 解冻恢复 / 冻结到期自动恢复 / generation 变化重置 / grace 期跳过 / 阈值触发 / **上报失败不冻结** / **未开 enable_engine_relaunch 不冻结** - 引擎死亡双信号源:PID 死亡事件(monitor health_check 返回死亡列表 + pid 去重)/ 心跳 ABNORMAL 上报(ep 去重 + 恢复清除 + 失败重试) - FaultReporter:回归纯 FT 状态上报 - 心跳状态源:has_abnormal_endpoints / abnormal_endpoint_ids / endpoints_generation / grace getter - daemon:restart_engine 只动引擎服务(KV/监控线程不动)/ 裁决(阈值、重置条件、冻结窗口与过期)/ PID 死亡上报去重与失败重试 / 冷启动不误报、曾 NORMAL 后异常上报 / 重拉分隔标记(计数 + banner 打印) - RegisterManager:master_dp_ip/role 持久化、get_restart_params - 配置:两侧新字段默认值与校验 **静态检查**:pylint / ruff 通过 **K8s e2e(infer195,A2 跨机 EP16 = 2 pod × 8 卡)**:已验证通过—— - 杀 vLLM 进程 → 双信号检测 → EngineRelaunchStrategy 协同两个 pod 一起重拉全部引擎 → 实例回 ACTIVE - 杀 NodeManager 进程 → 实例稳定 INACTIVE(无 ACTIVE↔INACTIVE 震荡)→ volcano podgroup 自动重启两个 pod(既有机制)→ 新实例组装恢复 - 冷启动加载期(30B 模型 > grace 120s)不再被误判死亡:新增「曾 NORMAL 门槛」——e2e 对比:修复前加载期多条误报触发重拉打断加载(恶性循环),修复后误报 0、实例平滑 ACTIVE e2e 定位并修复的问题: - engine-restart 路由快照恢复检查条件错误(非快照部署误拒 409) - EngineServer SIGKILL 后子进程孤儿残留(占旧 ZMQ 端口 → 重拉引擎握手 5 分钟超时)——进程组管理修复(start_new_session + killpg + 退出等待 + 僵尸收割) - 重拉与 FaultReporter 解耦:PID 级检测 + 心跳 ABNORMAL 双信号源,不依赖 FT 配置 - 部分节点失联防震荡:转 ACTIVE 加心跳新鲜度门槛 + 存活 NM 经既有 /node-manager/stop(自杀语义)协同退出(volcano 兜底) - daemon 职责收敛:engine 重启生命周期(stop/分隔标记/pull)下沉 EngineService.restart,daemon 回归 service 无关的编排者 ### 6. CheckList - [x] 代码注释完备 - [x] 正确记录维测日志(错误场景 error_window 防刷屏) See merge request: Ascend/MindIE-Motor!710 | 2 天前 | |
解决日志重复问题 Co-authored-by: wenkea<tianmengx12@163.com> Co-authored-by: 吴铭泾<wumingjing@huawei.com> # message auto-generated for no-merge-commit merge: !446 merge fix/request-cancel-and-logger into master 解决日志重复问题 Created-by: wenkea Commit-by: wenkea;吴铭泾 Merged-by: towncharlie Description: ## **1. 合入背景** Unified PD 路由在客户端断开、dispatch 取消等预期取消场景下,原先会将 asyncio.CancelledError 包装成 RuntimeError,在 dispatch.handle_request 中落入通用 Exception 分支,以 ERROR 级别打印完整堆栈,容易被误判为系统故障,干扰问题定位。 同时,日志模块在处理多行 message 和 exc_info 堆栈时,NewLineFormatter / MaxLengthFormatter 存在格式异常(堆栈 header 重复、换行截断不当),影响维测日志可读性。 #ISSUE ID: https://gitcode.com/Ascend/MindIE-PyMotor/issues/342 ## **2. 修改内容** 1.新增 RequestCancelledError 异常类型(motor/common/utils/error.py) 用于标识客户端断开、dispatch 取消等预期取消场景 携带 reason 字段,便于日志与 trace 记录 Unified PD 路由取消路径改造(motor/coordinator/router/strategies/unified_pd.py) 2.在 _process_response_error 中,将 asyncio.CancelledError 包装为 RequestCancelledError,替代原 RuntimeError 取消原因仍通过 check_cancel_error 解析,重试逻辑不变 Dispatch 层单独处理取消异常(motor/coordinator/router/dispatch.py) 3.新增 RequestCancelledError 捕获分支 以 debug 级别记录 api / req_id / reason,不再走通用 error 堆栈日志 仍返回 HTTP 500,并通过 sanitize_error_message 做安全处理 日志格式化修复(motor/common/logger/formatter.py、motor/common/logger/logger.py) 4.NewLineFormatter:仅对 message 内换行做 header 前缀扩展,避免 exc_info 堆栈 header 重复 MaxLengthFormatter:新增 _escape_for_single_line,将换行转义为 \n,保证单行日志长度截断正确 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及。 ## **5. 测试结果** 1.取消异常类型与 reason 传递 pytest tests/coordinator/router/test_cancel_error.py PASSED 2.Dispatch 取消时不打 ERROR 堆栈 test_dispatch_request_cancelled_does_not_log_error PASSED 3.非预期异常仍打 ERROR 堆栈 test_dispatch_unexpected_exception_still_logs_error PASSED 4.Unified PD 取消包装为 RequestCancelledError test_unified_pd_process_response_error_wraps_cancelled_as_request_cancelled_error PASSED 5.多行日志 / exc_info / MaxLength 转义 pytest tests/common/logger/test_logger.py PASSED 7.构造真实推理场景测试日志打印效果 问题已解决 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!446 | 29 天前 | |
[feature]支持EPD分离部署能力 Co-authored-by: zhoujing101<zhoujing101@huawei.com> # message auto-generated for no-merge-commit merge: !122 merge EPD_1 into master [feature]支持EPD分离部署能力 Created-by: zhoujing101 Commit-by: zhoujing101 Merged-by: towncharlie Description: ## **1. 合入背景** PyMotor支持EPD分离部署 [#85](https://gitcode.com/Ascend/MindIE-PyMotor/issues/85) ## **2. 修改内容** 增加PyMotor支持EPD分离部署能力  ## **3. 资料变更** “不涉及”。 ## **4. 接口变更** “不涉及”。 ## **5. 测试结果** 部署效果:  多模态图片识别:   ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!122 | 3 个月前 | |
支持Nodemanager原生拉起引擎,解除Engine Server层依赖 Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !698 merge feat/pr2-native-engine-routing into master 支持Nodemanager原生拉起引擎,解除Engine Server层依赖 Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. **当前Motor侵入式修改引擎侧API SERVER,会导致引擎版本变更时,不兼容变更。且Coordinator组件无法支持独立部署。** [#394](https://gitcode.com/Ascend/MindIE-Motor/issues/394) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. NodeManager 不再拉起Engine Server, 直接通过原生指令拉起引擎; 2. Engine server中vllm \sglang adapter 上移到coordinator中; 3. Coordinator直连原生引擎做PD调度; 4. 虚推、容器快照相关逻辑上移到nodemanager,心跳和健康检查改为引擎0原生状态查询(health); 当前PR未删除Engine Server代码,后续单独PR统一删除冗余代码 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 [引擎原生拉起验证报告](https://wiki.huawei.com/domains/114540/wiki/411410/WIKI2026081412302804) See merge request: Ascend/MindIE-Motor!698 | 6 天前 | |
[feature] 支持引擎原生拉起: layerwise CDP调度模式适配 Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !773 merge master_0819 into master [feature] 支持引擎原生拉起: layerwise CDP调度模式适配 Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. vLLM layerwise P/D 由 Decode 先接收请求,再通过 metaserver callback 触发 Prefill 和逐层 KV 传输。Coordinator 当前缺少完整的 Trigger 调度链路,无法保证 callback 回到持有原始请求状态的 Worker,也无法将异步 Prefill 纳入原请求的取消、重试和 workload 回收生命周期。 本改动补齐 vLLM concurrent_engine_sync 的端到端调度,并处理 callback 并发幂等、资源回滚以及 IPv4/IPv6 回调地址可达性。 [#503](https://gitcode.com/Ascend/MindIE-Motor/issues/503) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1)增加 vLLM P/D 协同模式选择: prefill_handoff_decode 继续使用现有 handoff 流程。 concurrent_engine_sync 使用 Trigger 流程,先分配并请求 Decode,再由 Decode callback 触发 Prefill。 对同一拓扑中 handoff/trigger 能力混用返回 HTTP 503。 2)增加 Trigger 协议适配: Decode 请求注入 do_remote_prefill 和 metaserver URL。 callback 携带的远端 block、host、port 参数转换为 Prefill 请求。 NodeManager 原生 vLLM backend 根据 layerwise 配置上报对应 dispatch capability。 3)增加每 Worker 独立 metaserver: 新增 inference_workers_config.worker_metaserver_base_port,默认 0 表示关闭。 Worker i 使用 base_port + i,独立 uvicorn app 仅暴露 POST /v1/metaserver。 callback 通过 request_id + attempt 找到发起 Decode 的同一 Worker 和当前 attempt。 4)完善 callback 生命周期: 使用 AttemptContext.trigger_lock 串行化并发 callback。 将 callback task 注册为 Prefill task,客户端断开、Decode 失败或 callback 取消时停止整个 attempt。 Prefill 已完成后的重复 callback 返回幂等成功,不重复分配实例。 Scheduler 分配成功但 Worker 本地 workload 登记失败时立即回滚。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 更新 P/D 分离设计文档,说明 vLLM layerwise Trigger 调度流程。 更新 Coordinator 开发文档,说明每 Worker metaserver、attempt 校验、callback 生命周期和地址选择。 更新配置参考及示例配置,说明 worker_metaserver_base_port 的用途和端口范围。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!773 | 12 小时前 | |
[refractor] 提取http相关公共文件,简化utils文件夹内文件数量 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge master into master [refractor] 提取http相关公共文件,简化utils文件夹内文件数量 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/47 ## **2. 修改内容** 提取utils函数,汇聚目录 ## **3. 资料变更** 涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 服务能正常拉起 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!55 | 3 个月前 | |
支持引擎原生拉起:删除Engine Server冗余代码 Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !717 merge feat/pr3-remove-engine-server into master 支持引擎原生拉起:删除Engine Server冗余代码 Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. 在 NodeManager 原生拉起 vLLM/SGLang、Coordinator 直连原生推理端口(前序原生引擎 / PD 路由能力)落地后,motor/engine_server 已不再承担启动、推理转发与管理面职责,继续保留会带来: 1. **双栈维护成本**:EngineServer 与 Native Runtime 两套启动、健康检查与错误处理路径并存; 2. **架构不一致**:文档与部署仍暗示存在独立 EngineServer 进程,而实际链路为 Controller → NodeManager → 原生引擎; 3. **遗留协议负担**:EngineServer 侧 dispatch 信封、管理 HTTP、虚推(sim_inference)等与原生路径无关的代码/文档仍残留。 本 PR 是「删除 EngineServer、收敛到 Native Runtime」系列的收尾重构:删除 motor/engine_server 及其测试/入口,清理仅服务于 EngineServer 的 dispatch/配置/文档。容器快照中,显存保存/恢复由具备快照能力的引擎镜像自闭环完成;NodeManager 不再触发 /suspend、/device_unlock、/resume,只保留框架侧状态刷新、元数据准备和完成态感知。 - **关联前序能力**:NodeManager 原生拉起引擎、解除 Engine Server 层依赖;同系列 PR2(原生引擎直连 / PD 路由)。 - **关联 Issue**:[\#486](https://gitcode.com/Ascend/MindIE-Motor/issues/486) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. **删除 EngineServer 组件** 移除 motor/engine_server/(CLI、推理/管理 Endpoint、dispatch adapter、vLLM/SGLang 封装、sim_inference、snapshot_sentinel 等)、setup.py 入口及相关 UT;进程模型收敛为 NodeManager 直接拉起 vllm serve / sglang.launch_server。 2. **容器快照职责切分(vLLM 快照镜像)** 显存快照保存/恢复是引擎原子能力,由支持快照的独立引擎镜像自闭环完成。NodeManager 在整个快照生命周期只做框架侧编排: - 快照前后刷新服务框架状态(Controller 域名、job_name、pod_ip),保证恢复后能向 Controller 注册; - 准备显存快照所需元数据(model_save_path / model_load_path、data_parallel_master_ip 等); - 通过引擎就绪状态和 Host 侧 checkpoint 标记感知保存/恢复是否完成(心跳屏障、readiness)。 因此删除 native_engine/snapshot.py(SnapshotOrchestrator / NativeSnapshotControl)及其在 EngineManager、Daemon、NativeEngineService 上的触发接线。原先 EngineServer 的 snapshot_sentinel 下沉到引擎原生 server(如 api_server),不在 NodeManager 中重建。 总开关 motor_container_snapshot_config.enable_snapshot 默认 false;SGLang 开启该开关时配置校验失败。 3. **配置与公共协议精简** - 去掉 EndpointConfig 的 EngineServer CLI / init_endpoint_config / snapshot_metadata 等入口;TLS 更新改为 _update_native_engine_tls_config; - 删除 engine_constants 中仅 EngineServer 使用的常量; - 精简 dispatch.py:移除 EngineServer 侧 dispatch 信封模型与相关 helper,保留原生路由所需的 DispatchProfile / capability 分类。 4. **资料与开发指南同步** 删除 EngineServer 架构/接口/虚推文档与插图;更新 architecture、NodeManager/Coordinator 开发指南、container_snapshot、部署与配置参考;管理面文档补充原生场景下 mgmt_port / bootstrap_port 语义说明,并修正失效链接。快照文档改为:引擎负责 Device 侧 suspend/resume/unlock,NodeManager 负责元数据、注册与状态感知。 5. **测试** 删除 tests/engine_server/** 以及 NodeManager 侧 snapshot orchestrator UT(test_snapshot.py 及 snapshot_targets 相关用例);保留 metadata 准备、restore 注册刷新、checkpoint 屏障等框架侧 UT。 ### 上下游关系(简要) text Controller └─ start/stop/pause → NodeManager API ├─ NativeEngineService → ProcessSupervisor → vLLM/SGLang ├─ HeartbeatManager → Controller(checkpoint 屏障、restore 后重新注册) └─ snapshot metadata / job_name / pod_ip 刷新 Coordinator └─ 直连原生 business_port(不再经 EngineServer) Engine(快照能力镜像) └─ Device 侧 suspend / device_unlock / resume 自闭环 Host/MindCluster └─ checkpoint 元数据 ↔ NodeManager readiness/status ### 设计文档位置 - .agent/skills/motor-dev/references/nodeman.md(Native Runtime + Snapshot Boundary) - docs/zh/user_guide/features/container_snapshot.md - docs/zh/developer_guide/components/node_manager.md - docs/zh/architecture.md / docs/zh/design/pd_disaggregation.md ### DFX - 快照框架侧日志前缀 [snapshot];恢复后刷新注册信息并重试向 Controller 注册; - 健康探测仍走原生 /health;pause 返回原生 metrics URL; - 不引入 EngineServer 管理端口,也不由 NodeManager 调用引擎快照 HTTP 接口。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 涉及。删除 EngineServer 文档与插图;更新 NodeManager / 容器快照 / 架构与配置说明,明确显存快照由引擎自闭环、NodeManager 只做框架侧编排。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及对外客户面接口变更。删除的是 Motor 内部 EngineServer 进程及 NodeManager 对引擎 /suspend、/device_unlock、/resume 的主动调用;容器快照仍通过 motor_container_snapshot_config.enable_snapshot 显式打开,默认关闭。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 - 单元测试:tests/node_manager/core/test_engine_manager.py、test_daemon.py、native_engine/test_service.py 等框架侧用例通过(含 snapshot metadata / restore 准备、原生拉起与恢复门闩)。 - 删除 EngineServer 及 snapshot orchestrator 后,不再保留对 NodeManager 主动调用 /suspend /resume 的 UT。 - 容器快照端到端需使用支持镜像快照的引擎独立镜像,并显式打开 enable_snapshot 后验证:冷启动稳态点、Host checkpoint、恢复后重新注册与推理恢复。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!717 | 3 天前 | |
Feature:Server日志进程名称MainProcess整改 Co-authored-by: Jechin<yuzechen1@huawei.com> # message auto-generated for no-merge-commit merge: !232 merge feat/nm-engine-process-title into master Feature:Server日志进程名称MainProcess整改 Created-by: Jechin Commit-by: Jechin Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. Fixes [#156](https://gitcode.com/Ascend/MindIE-PyMotor/issues/156) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 日志中进程名修改为对应组件名称 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 日志截图   ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!232 | 2 个月前 | |
update license Co-authored-by: y1lou<louyi6@huawei.com> # message auto-generated for no-merge-commit merge: !185 merge update_license into master update license Created-by: y1lou Commit-by: y1lou Merged-by: ascend-robot Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-pyMotor!185 | 6 个月前 | |
[feature] Motor适配容器快恢, 支持混部/大EP场景 Co-authored-by: lbr711<liuboru1@huawei.com> # message auto-generated for no-merge-commit merge: !108 merge snapshot_engine_server into master [feature] Motor适配容器快恢, 支持混部/大EP场景 Created-by: lbr711 Commit-by: lbr711 Merged-by: towncharlie Description: ## **1. 合入背景** Motor适配容器快恢, 支持混部/大EP场景 Fixes #77 ## **2. 修改内容** 1. pymotor支持配置容器快照功能(开关默认关) 2. 配置容器快照时,容器内服务ready后engineserver自动调用engine suspend(device侧快照保存/保存运行时权重),接着容器进入稳态点 3. 可通过pod readiness探针探测是否进入稳态点 4. 容器从快照恢复后,nodemanager以新身份向controller注册,engineserver自动调用engine resume(device侧快照恢复/重建进程组/重建通信域/重新加载运行时权重/重捕获图), 接着容器进入可服务状态 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 业务面新增接口: /suspend /resume ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!108 | 2 个月前 | |
[feature] Print MindIE-Motor ASCII logo on component startup Co-authored-by: Jechin<yuzechen1@huawei.com> # message auto-generated for no-merge-commit merge: !588 merge feat/startup-logo into master [feature] Print MindIE-Motor ASCII logo on component startup Created-by: Jechin Commit-by: Jechin Merged-by: towncharlie Description: ## **1. 合入背景** 组件启动缺少统一品牌识别,且 setup.py / motor.__version__ / version.info 三处版本硬编码不一致。 Fixes #347 双合 PR:[#589](https://gitcode.com/Ascend/MindIE-PyMotor/merge_requests/589)(合入 v3.1.0)。 ## **2. 修改内容** 1. 新增 motor/common/utils/startup_banner.py,以 Unicode Block MOTOR 字样打印启动 Banner;副标题为 MindIE-Motor · v{version} · {role},与字画左对齐,上方留空行。 2. 在 coordinator / controller / node_manager 的 main 入口调用 log_startup_banner(不接入 EngineServer)。 3. 支持环境变量 MOTOR_DISABLE_LOG_LOGO(与 vLLM 对齐):置 1 时不打印 ASCII 字画,改为单行 MindIE-Motor version …, role …;单容器启动脚本 all_combine_in_single_container.sh 中默认开启,避免多进程刷屏。 4. 以 motor/__init__.py 的 __version__(现为 3.1.0)为唯一版本源;setup.py 解析该字段作为 wheel 版本;build.sh 读取后写入 version.info 的 motor_version(兼容单/双引号),并删除未使用的 vllm_version / vllm_ascend_version 字段。 5. 安装文档/脚本中的 wheel 路径改为 motor-*.whl 通配,避免写死版本号。 6. 补充 tests/common/utils/test_startup_banner.py 单测(含 disable 环境变量路径)。 ## **3. 资料变更** 涉及:构建/部署文档与 ModelArts 安装示例中的 wheel 安装路径改为通配(motor-*.whl)。 ## **4. 接口变更** 不涉及跨仓或客户面接口变更。新增可选环境变量 MOTOR_DISABLE_LOG_LOGO(默认 0,关闭 logo 时设为 1)。 ## **5. 测试结果**   - 场景:本地渲染 Banner / UT;单容器脚本关闭 logo - 方法:pytest tests/common/utils/test_startup_banner.py;验证 setup.py/build.sh 读取版本与 __version__ 一致;MOTOR_DISABLE_LOG_LOGO=1 时输出单行文案 - 结果:单测通过;版本读取一致为 3.1.0 ## **6. CheckList** [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!588 | 28 天前 | |
支持Nodemanager原生拉起引擎,解除Engine Server层依赖 Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !698 merge feat/pr2-native-engine-routing into master 支持Nodemanager原生拉起引擎,解除Engine Server层依赖 Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. **当前Motor侵入式修改引擎侧API SERVER,会导致引擎版本变更时,不兼容变更。且Coordinator组件无法支持独立部署。** [#394](https://gitcode.com/Ascend/MindIE-Motor/issues/394) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. NodeManager 不再拉起Engine Server, 直接通过原生指令拉起引擎; 2. Engine server中vllm \sglang adapter 上移到coordinator中; 3. Coordinator直连原生引擎做PD调度; 4. 虚推、容器快照相关逻辑上移到nodemanager,心跳和健康检查改为引擎0原生状态查询(health); 当前PR未删除Engine Server代码,后续单独PR统一删除冗余代码 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 [引擎原生拉起验证报告](https://wiki.huawei.com/domains/114540/wiki/411410/WIKI2026081412302804) See merge request: Ascend/MindIE-Motor!698 | 6 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 天前 | ||
| 29 天前 | ||
| 3 个月前 | ||
| 6 天前 | ||
| 12 小时前 | ||
| 3 个月前 | ||
| 3 天前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 28 天前 | ||
| 6 天前 |