| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[feature]增加Mooncake Conductor故障恢复的RAS能力 Co-authored-by: zhoujing101<zhoujing101@huawei.com> # message auto-generated for no-merge-commit merge: !337 merge master into master [feature]增加Mooncake Conductor故障恢复的RAS能力 Created-by: zhoujing101 Commit-by: zhoujing101 Merged-by: towncharlie Description: ## **1. 合入背景** Mooncake Conductor缺少RAS能力,发生故障重启后,无法正常重新工作。 需要增加重注册能力,依赖mooncake社区PR( https://github.com/kvcache-ai/Mooncake/pull/2595 ) 合入后提供查询已注册实例信息接口。 [#212](https://gitcode.com/Ascend/MindIE-PyMotor/issues/212) ## **2. 修改内容** 开启kv cache亲和性调度时,每隔30秒(可配置,配置为0则不重注册)会去conductor获取一次实例列表(依赖PR: https://github.com/kvcache-ai/Mooncake/pull/2595 ),对比差异,将缺少的实例补注册到Condutor。 ## **3. 资料变更** “不涉及”。 ## **4. 接口变更** “不涉及”。 ## **5. 测试结果** 正常情况:  当mooncake conductor发生重启时:  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 --- # 测试用例总结 ## 1. tests/config/test_config_utils.py — 配置解析(9 个用例) ### TestResolveReRegisterIntervalSec | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_returns_default_when_motor_coordinator_missing | 顶层 motor_coordinator_config 键缺失 | 返回 DEFAULT_RE_REGISTER_INTERVAL_SEC (30) | | test_returns_default_when_motor_coordinator_not_dict | motor_coordinator_config 值不是 dict | 返回默认值 30 | | test_returns_default_when_prefill_kv_event_config_missing | motor_coordinator 存在但缺少 prefill_kv_event_config | 返回默认值 30 | | test_returns_default_when_prefill_kv_event_config_not_dict | prefill_kv_event_config 存在但不是 dict | 返回默认值 30 | | test_returns_default_when_re_register_interval_missing | prefill_kv_event_config 中缺少 re_register_interval_sec | 返回默认值 30 | | test_returns_default_when_re_register_interval_is_none | re_register_interval_sec 显式设为 None | 返回默认值 30 | | test_returns_configured_value | 正常传入 120 | 返回 int 120 | | test_accepts_string_value | 传入字符串 "45" | 返回 int 45 | | test_accepts_zero | 传入 0(禁用定时器) | 返回 int 0 | --- ## 2. tests/coordinator/api_client/test_conductor_api_client.py — Conductor API 客户端(28 个用例) ### TestConductorInstanceId(4 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_role_u_returns_union_prefix | ROLE_U 实例 | conductor_instance_id() 返回 "vllm-union-7" | | test_role_p_returns_prefill_prefix | ROLE_P 实例 | conductor_instance_id() 返回 "vllm-prefill-3" | | test_role_e_falls_to_prefill_prefix | ROLE_E 实例(非 U 回退) | conductor_instance_id() 返回 "vllm-prefill-5" | | test_role_d_falls_to_prefill_prefix | ROLE_D 实例(非 U 回退) | conductor_instance_id() 返回 "vllm-prefill-9" | ### TestBuildRegisterPayload(5 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_returns_empty_dict_when_endpoint_format_invalid | endpoint 没有 *: 分隔符 | 返回空 dict {} | | test_basic_payload_without_replay | 标准 payload,无 replay_endpoint | 返回含 endpoint/type/modelname/block_size/instance_id/dp_rank 的 dict | | test_payload_with_replay_endpoint | 带 replay_endpoint 配置 | payload 包含 replay_endpoint 字段,端口为 base + endpoint.id | | test_payload_dp_rank_uses_endpoint_id | dp_rank 取自 endpoint.id(非 0) | dp_rank == 5,endpoint 端口为 5557 + 5 = 5562 | | test_replay_endpoint_format_invalid_no_star_colon | replay_endpoint 没有 *: 分隔符 | payload 中**不包含** replay_endpoint 键 | ### TestNormalizeServiceKey(9 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_all_uppercase_keys | Conductor 返回大写 key | 正确提取四个字段值 | | test_lowercase_keys_not_found_by_uppercase_lookup | 只有小写 key(大写 key 不存在) | 全部返回默认值 ("", -1, "", "") | | test_dp_rank_zero | dp_rank=0被正确解析 | dp_rank == 0 | | test_dp_rank_missing_defaults_to_minus_one | DPRank 完全缺失 | 默认 -1 | | test_dp_rank_non_numeric_string_returns_minus_one | DPRank 为非数值字符串 "abc" | 返回 -1 | | test_dp_rank_empty_string_returns_minus_one | DPRank 为空字符串 "" | 返回 -1(isdigit=False) | | test_instance_id_empty_when_missing | InstanceID 缺失 | instance_id == "" | | test_endpoint_empty_when_missing | Endpoint 缺失 | endpoint == "" | | test_replay_endpoint_empty_when_missing | ReplayEndpoint 缺失 | replay_endpoint == "" | | test_instance_id_empty_when_missing | InstanceID 缺失 | instance_id == "" | | test_endpoint_empty_when_missing | Endpoint 缺失 | endpoint == "" | | test_replay_endpoint_empty_when_missing | ReplayEndpoint 缺失 | replay_endpoint == "" | ### TestGetRegisteredServices(4 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_returns_services_list | Conductor /services 正常返回 | 返回 services 列表 | | test_returns_empty_when_response_not_dict | 响应不是 dict | 返回空列表 [] | | test_returns_empty_when_services_not_list | services 字段不是 list | 返回空列表 [] | | test_raises_on_http_error | HTTP 请求异常 | 向上抛出原始异常 | ### TestReRegisterKvInstances(6 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_skip_when_no_registered_services | get_registered_services() 抛出异常(Conductor 不可用) | 跳过,register_post 不被调用 | | test_skip_non_kva_roles | ROLE_D / ROLE_E 不在 _KVA_ROLES 中 | register_post 不被调用 | | test_skip_when_payload_empty | _build_register_payload() 返回空 dict | register_post 不被调用 | | test_re_registers_when_service_missing | 本地实例在 Conductor 中不存在 | register_post 被调用一次 | | test_skips_when_already_registered | 实例已在 Conductor 中注册(所有字段匹配) | register_post **不**被调用 | | test_re_registers_only_missing_among_multiple | 多个 endpoint,仅 dp_rank=1 缺失 | register_post 仅被调用一次(ep_id=1) | --- ## 覆盖率统计 | 模块 | 覆盖函数/方法 | |---|---| | motor.config.config_utils._resolve_re_register_interval_sec | 全部 9 条分支 | | motor.coordinator.api_client.conductor_api_client.conductor_instance_id | 2 条分支(U / 非 U) | | ConductorApiClient._build_register_payload | endpoint 格式、replay 有无、replay 格式 | | ConductorApiClient._normalize_service_key | 大写/小写 key、dp_rank=0 边界、字段缺失默认值、非数值字符串、空字符串 | | ConductorApiClient.get_registered_services | 正常/格式错误/异常 | | ConductorApiClient.re_register_kv_instances | Conductor 不可用、非 KVA 跳过、payload 为空、新注册、已注册跳过、部分缺失 | See merge request: Ascend/MindIE-PyMotor!337 | 3 天前 | |
[feature]增加Mooncake Conductor故障恢复的RAS能力 Co-authored-by: zhoujing101<zhoujing101@huawei.com> # message auto-generated for no-merge-commit merge: !337 merge master into master [feature]增加Mooncake Conductor故障恢复的RAS能力 Created-by: zhoujing101 Commit-by: zhoujing101 Merged-by: towncharlie Description: ## **1. 合入背景** Mooncake Conductor缺少RAS能力,发生故障重启后,无法正常重新工作。 需要增加重注册能力,依赖mooncake社区PR( https://github.com/kvcache-ai/Mooncake/pull/2595 ) 合入后提供查询已注册实例信息接口。 [#212](https://gitcode.com/Ascend/MindIE-PyMotor/issues/212) ## **2. 修改内容** 开启kv cache亲和性调度时,每隔30秒(可配置,配置为0则不重注册)会去conductor获取一次实例列表(依赖PR: https://github.com/kvcache-ai/Mooncake/pull/2595 ),对比差异,将缺少的实例补注册到Condutor。 ## **3. 资料变更** “不涉及”。 ## **4. 接口变更** “不涉及”。 ## **5. 测试结果** 正常情况:  当mooncake conductor发生重启时:  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 --- # 测试用例总结 ## 1. tests/config/test_config_utils.py — 配置解析(9 个用例) ### TestResolveReRegisterIntervalSec | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_returns_default_when_motor_coordinator_missing | 顶层 motor_coordinator_config 键缺失 | 返回 DEFAULT_RE_REGISTER_INTERVAL_SEC (30) | | test_returns_default_when_motor_coordinator_not_dict | motor_coordinator_config 值不是 dict | 返回默认值 30 | | test_returns_default_when_prefill_kv_event_config_missing | motor_coordinator 存在但缺少 prefill_kv_event_config | 返回默认值 30 | | test_returns_default_when_prefill_kv_event_config_not_dict | prefill_kv_event_config 存在但不是 dict | 返回默认值 30 | | test_returns_default_when_re_register_interval_missing | prefill_kv_event_config 中缺少 re_register_interval_sec | 返回默认值 30 | | test_returns_default_when_re_register_interval_is_none | re_register_interval_sec 显式设为 None | 返回默认值 30 | | test_returns_configured_value | 正常传入 120 | 返回 int 120 | | test_accepts_string_value | 传入字符串 "45" | 返回 int 45 | | test_accepts_zero | 传入 0(禁用定时器) | 返回 int 0 | --- ## 2. tests/coordinator/api_client/test_conductor_api_client.py — Conductor API 客户端(28 个用例) ### TestConductorInstanceId(4 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_role_u_returns_union_prefix | ROLE_U 实例 | conductor_instance_id() 返回 "vllm-union-7" | | test_role_p_returns_prefill_prefix | ROLE_P 实例 | conductor_instance_id() 返回 "vllm-prefill-3" | | test_role_e_falls_to_prefill_prefix | ROLE_E 实例(非 U 回退) | conductor_instance_id() 返回 "vllm-prefill-5" | | test_role_d_falls_to_prefill_prefix | ROLE_D 实例(非 U 回退) | conductor_instance_id() 返回 "vllm-prefill-9" | ### TestBuildRegisterPayload(5 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_returns_empty_dict_when_endpoint_format_invalid | endpoint 没有 *: 分隔符 | 返回空 dict {} | | test_basic_payload_without_replay | 标准 payload,无 replay_endpoint | 返回含 endpoint/type/modelname/block_size/instance_id/dp_rank 的 dict | | test_payload_with_replay_endpoint | 带 replay_endpoint 配置 | payload 包含 replay_endpoint 字段,端口为 base + endpoint.id | | test_payload_dp_rank_uses_endpoint_id | dp_rank 取自 endpoint.id(非 0) | dp_rank == 5,endpoint 端口为 5557 + 5 = 5562 | | test_replay_endpoint_format_invalid_no_star_colon | replay_endpoint 没有 *: 分隔符 | payload 中**不包含** replay_endpoint 键 | ### TestNormalizeServiceKey(9 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_all_uppercase_keys | Conductor 返回大写 key | 正确提取四个字段值 | | test_lowercase_keys_not_found_by_uppercase_lookup | 只有小写 key(大写 key 不存在) | 全部返回默认值 ("", -1, "", "") | | test_dp_rank_zero | dp_rank=0被正确解析 | dp_rank == 0 | | test_dp_rank_missing_defaults_to_minus_one | DPRank 完全缺失 | 默认 -1 | | test_dp_rank_non_numeric_string_returns_minus_one | DPRank 为非数值字符串 "abc" | 返回 -1 | | test_dp_rank_empty_string_returns_minus_one | DPRank 为空字符串 "" | 返回 -1(isdigit=False) | | test_instance_id_empty_when_missing | InstanceID 缺失 | instance_id == "" | | test_endpoint_empty_when_missing | Endpoint 缺失 | endpoint == "" | | test_replay_endpoint_empty_when_missing | ReplayEndpoint 缺失 | replay_endpoint == "" | | test_instance_id_empty_when_missing | InstanceID 缺失 | instance_id == "" | | test_endpoint_empty_when_missing | Endpoint 缺失 | endpoint == "" | | test_replay_endpoint_empty_when_missing | ReplayEndpoint 缺失 | replay_endpoint == "" | ### TestGetRegisteredServices(4 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_returns_services_list | Conductor /services 正常返回 | 返回 services 列表 | | test_returns_empty_when_response_not_dict | 响应不是 dict | 返回空列表 [] | | test_returns_empty_when_services_not_list | services 字段不是 list | 返回空列表 [] | | test_raises_on_http_error | HTTP 请求异常 | 向上抛出原始异常 | ### TestReRegisterKvInstances(6 个) | 测试方法 | 覆盖场景 | 预期结果 | |---|---|---| | test_skip_when_no_registered_services | get_registered_services() 抛出异常(Conductor 不可用) | 跳过,register_post 不被调用 | | test_skip_non_kva_roles | ROLE_D / ROLE_E 不在 _KVA_ROLES 中 | register_post 不被调用 | | test_skip_when_payload_empty | _build_register_payload() 返回空 dict | register_post 不被调用 | | test_re_registers_when_service_missing | 本地实例在 Conductor 中不存在 | register_post 被调用一次 | | test_skips_when_already_registered | 实例已在 Conductor 中注册(所有字段匹配) | register_post **不**被调用 | | test_re_registers_only_missing_among_multiple | 多个 endpoint,仅 dp_rank=1 缺失 | register_post 仅被调用一次(ep_id=1) | --- ## 覆盖率统计 | 模块 | 覆盖函数/方法 | |---|---| | motor.config.config_utils._resolve_re_register_interval_sec | 全部 9 条分支 | | motor.coordinator.api_client.conductor_api_client.conductor_instance_id | 2 条分支(U / 非 U) | | ConductorApiClient._build_register_payload | endpoint 格式、replay 有无、replay 格式 | | ConductorApiClient._normalize_service_key | 大写/小写 key、dp_rank=0 边界、字段缺失默认值、非数值字符串、空字符串 | | ConductorApiClient.get_registered_services | 正常/格式错误/异常 | | ConductorApiClient.re_register_kv_instances | Conductor 不可用、非 KVA 跳过、payload 为空、新注册、已注册跳过、部分缺失 | See merge request: Ascend/MindIE-PyMotor!337 | 3 天前 | |
[metric] 移除Controller metrics接口,统一使用Coordinator提供的接口【提供新端口】,CCAE_Reporter改为对接Coordinator Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !165 merge metrics_optimize into master [metric] 移除Controller metrics接口,统一使用Coordinator提供的接口【提供新端口】,CCAE_Reporter改为对接Coordinator Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/106 ## **2. 修改内容** 1、弃用Controller对外metrics接口【保留接口,增加warning告知用户弃用了,引导其使用Coordinator的接口】 2、ccae_reporter对接Coordinator metrics接口 3、Coordinator新增Observability API-Server,独立进程,MetricsCollector模块移动到该进程中,新增1027可观测性接口(NodePort) ## **3. 资料变更** 涉及 ## **4. 接口变更** 涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!165 | 1 个月前 | |
引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !304 merge sched-final-allocation-log into master 引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK 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替代. [#183](https://gitcode.com/Ascend/MindIE-PyMotor/issues/183) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. 删除内部错误码500,改为透传引擎侧真实错误码 2.流式请求,在与D\P真实握手后,再返回客户端状态码 3. kv亲和调度,当多请求同时到达,scheduler server在check时,根据全局负载选择加权,而不是top K. ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!304 | 4 天前 | |
删除coordinator中depoly mode冗余配置,可靠性加强 Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !272 merge br_decouple_add_0603 into master 删除coordinator中depoly mode冗余配置,可靠性加强 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替代. [#178](https://gitcode.com/Ascend/MindIE-PyMotor/issues/178) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 删除coordinator的depoly_mode冗余配置,代码流程根据connector确认走CPCD还是CDP ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 userconfig中删除coordinator的depoly_mode ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!272 | 17 天前 | |
Fix 解决vllm-ascend中扩展指标带空格导致的解析失败,调整grafana dashboard json Co-authored-by: LinWei100<linwei100@huawei.com> # message auto-generated for no-merge-commit merge: !339 merge fix/metric-parse into master Fix 解决vllm-ascend中扩展指标带空格导致的解析失败,调整grafana dashboard json Created-by: LinWei100 Commit-by: LinWei100 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!339 | 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 | 2 个月前 | |
引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !304 merge sched-final-allocation-log into master 引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK 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替代. [#183](https://gitcode.com/Ascend/MindIE-PyMotor/issues/183) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. 删除内部错误码500,改为透传引擎侧真实错误码 2.流式请求,在与D\P真实握手后,再返回客户端状态码 3. kv亲和调度,当多请求同时到达,scheduler server在check时,根据全局负载选择加权,而不是top K. ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!304 | 4 天前 | |
feat(IPv6): A3 单栈 PD 推理 Co-authored-by: LinWei100<linwei100@huawei.com> # message auto-generated for no-merge-commit merge: !330 merge feat/a3-ipv6-pd-inference into master feat(IPv6): A3 单栈 PD 推理 Created-by: LinWei100 Commit-by: LinWei100 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!330 | 3 天前 | |
feat(IPv6): A3 单栈 PD 推理 Co-authored-by: LinWei100<linwei100@huawei.com> # message auto-generated for no-merge-commit merge: !330 merge feat/a3-ipv6-pd-inference into master feat(IPv6): A3 单栈 PD 推理 Created-by: LinWei100 Commit-by: LinWei100 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!330 | 3 天前 | |
引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !304 merge sched-final-allocation-log into master 引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK 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替代. [#183](https://gitcode.com/Ascend/MindIE-PyMotor/issues/183) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. 删除内部错误码500,改为透传引擎侧真实错误码 2.流式请求,在与D\P真实握手后,再返回客户端状态码 3. kv亲和调度,当多请求同时到达,scheduler server在check时,根据全局负载选择加权,而不是top K. ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!304 | 4 天前 | |
【Feature】OpenTelemetry全套指标监控 Co-authored-by: zhang980530<zhanghao680@h-partners.com> # message auto-generated for no-merge-commit merge: !268 merge master into master 【Feature】OpenTelemetry全套指标监控 Created-by: zhang980530 Commit-by: zhang980530 Merged-by: towncharlie Description: ## **1. 合入背景** Fixes [#98](https://gitcode.com/Ascend/MindIE-PyMotor/issues/98) ## **2. 修改内容** 添加OpenTelemetry全套指标监控 ## **3. 资料变更** “不涉及”。 ## **4. 接口变更** “不涉及”。 ## **5. 测试结果**  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!268 | 17 天前 | |
coordinator多进程版本合入主干 Co-authored-by: ganglv<lvgang1@huawei.com> Co-authored-by: tobking<wangjun292@huawei.com> Co-authored-by: j00813896<jiangwentao7@huawei.com> # message auto-generated for no-merge-commit merge: !251 merge br_home_base_multiprocess into master coordinator多进程版本合入主干 Created-by: tobking Commit-by: tobking;j00813896;ganglv Merged-by: ascend-robot Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. coordinator优化为多进程版本,提升高QPS场景下推理性能 [#158](https://gitcode.com/Ascend/MindIE-pyMotor-private/issues/158) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.coordinator拆分为mgmt,scheduler,infer 三种独立进程 2.coordinator主进程为deamon进程,其负责拉起上述三种子进程 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 涉及,userconfig新增多进程相关配置项 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-pyMotor-private!251 | 3 个月前 | |
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 | 19 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 4 天前 | ||
| 17 天前 | ||
| 2 天前 | ||
| 2 个月前 | ||
| 4 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 17 天前 | ||
| 3 个月前 | ||
| 19 天前 |