| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[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 | 18 天前 | |
feat: pymotor支持CP + parallel_config重构 Co-authored-by: yilunh<hanyilun1@huawei.com> Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !111 merge pcpdcp into master feat: pymotor支持CP + parallel_config重构 Created-by: yilunh Commit-by: yilunh;tobking Merged-by: towncharlie Description: ## **1. 合入背景** 1、pymotor支持cp配置 2、重构parallel_config,支持引擎原生并行配置参数在engine_config中解析,同时前向兼容model_config fixes [#78](https://gitcode.com/Ascend/MindIE-PyMotor/issues/78) ## **2. 修改内容** 1、支持CP配置: instance.py扩展parallelConfig,支持pcp_size配置,重计算world_size nodemanager.py调整并行相关配置,修改打印 controller装配:修改instance_assembler.py组装实例时world_size计算公式 daemon.py修改nodemanager守护进程中的local_world_size计算 endpoint.py支持cp相关字段 vllm_config.py新增常量配置对接CP 2、重构parallel_config: 配置架构从 model_config /parallel_config 双配置块统一迁移为以 engine_config 为核心,新增配置解析器统一处理,兼容旧配置,优先级engine_config > model_config  ## **3. 资料变更** 适配cp配置 user_config接口变更,engine_config中支持引擎原生参数,逐步日落model_config ## **4. 接口变更** user_config的并行配置中新增pcp_size和cp_kv_cache_interleave_size参数 user_config接口变更,engine_config中支持引擎原生参数,逐步日落model_config ## **5. 测试结果**     ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!111 | 1 个月前 | |
【Bugfix】: vLLM handoff payload must carry only kv_transfer_params Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !356 merge fix/vllm-handoff-kv-transfer-params into master 【Bugfix】: vLLM handoff payload must carry only kv_transfer_params 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替代. handoff模式下,decode 的vllm adapter修改kv transfer存在问题 ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 handoff模式下,对齐proxy,修复上述问题 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!356 | 1 天前 | |
[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 | 2 个月前 | |
fix: 并行执行虚拟推理HTTP与AICore采样,并区分AICore不可用与零使用率 Co-authored-by: Jechin<yuzechen1@huawei.com> # message auto-generated for no-merge-commit merge: !321 merge fix/sim-inference-aicore-cycle-and-unavailable into master fix: 并行执行虚拟推理HTTP与AICore采样,并区分AICore不可用与零使用率 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 [#203](https://gitcode.com/Ascend/MindIE-PyMotor/issues/203) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ### 1. aicore.py — npu-smi 命令修正 移除了 npu-smi info watch -s a 的 -d 1 参数。原先带 -d 1 可能指定了 duration/interval,但也许在某些版本的 npu-smi 上导致输出延迟或不兼容。代码通过读取第一行输出后即终止进程,去掉 -d 1 后进程会持续输出,但同样读取首行即 kill,行为一致。 ### 2. sim_inference.py — 核心重构(4 大改动) #### A. 提取 _sample_aicore_usage() 方法 将 AICore 采样逻辑从 worker 线程中提取为独立方法,返回 (max_usage, usage_available) 元组: - **修正了循环条件的 bug**:旧代码 while time.time() < end_time or check_count <= max(or 意味着时间到了还会继续),新代码改为 and,正确地在时间和次数之间做双重上限约束 - 遇到 get_aicore_usage() 报错时立即 break,不再重试整个窗口 #### B. 基于 "代数" (generation) 的协调机制 新增了 3 个 generation 计数器 + 1 个 Event: - _trigger_aicore_sample() — 递增 generation,清空 Event,通知 worker - _read_aicore_sample(generation, sample_finished) — 只在 worker 完成的 generation 与请求的 generation 匹配时才返回结果,**防御了过时数据 (stale data)** 这解决了关键竞态问题:之前的代码在 health_check_loop 中直接读 _max_aicore_usage,没有任何机制保证它来自当前轮次的采样。 #### C. HTTP 请求与 AICore 采样并行执行(最重要的架构改进) **之前(串行):** 发送虚拟请求 → 等待完成 → 通知 worker 开始采样 → Condition.wait(5s) 阻塞事件循环 → 读取结果 **之后(并行):** python sim_inference_success, sample_finished = await asyncio.gather( self._send_virtual_request_safe(timeout), # HTTP 请求 asyncio.to_thread( # AICore 采样等待 self._aicore_sample_done.wait, _AICORE_SAMPLE_WINDOW_SEC ), ) - 两个操作同时进行,健康检查周期从 "HTTP时间 + 采样时间" 变为 max(HTTP时间, 采样时间) - 原先在 async 函数中直接调用 threading.Condition.wait() **会阻塞整个 asyncio 事件循环**最多 3 秒,现在通过 asyncio.to_thread 将阻塞操作移到线程池,正确释放事件循环 - 采样等待被限制在 _AICORE_SAMPLE_WINDOW_SEC (5s) 内,超时则标记 sample_finished=False #### D. 区分 "AICore 不可用" 与 "零使用率" 新增 _aicore_usage_available 状态标记: - get_aicore_usage() 成功返回 0% → **可用,使用率为零** - get_aicore_usage() 报错 / 采样超时 → **不可用** 对应的决策逻辑变化: | 场景 | 旧行为 | 新行为 | |---|---|---| | AICore 不可用 + 请求失败 | 会累计失败次数 | **跳过失败计数**(不确定系统真实状态) | | AICore 可用 + 使用率低 + 请求失败 | 累计失败次数 | 累计失败次数(不变) | | AICore 不可用 + 请求成功 | 重置失败计数 | 重置失败计数(合理,系统能正常工作) | ## **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!321 | 5 天前 | |
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 | 4 个月前 | |
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 | 4 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 18 天前 | ||
| 1 个月前 | ||
| 1 天前 | ||
| 2 个月前 | ||
| 5 天前 | ||
| 4 个月前 | ||
| 4 个月前 |