| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[refractor] 重构deployer Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !286 merge refractor_deployer into master [refractor] 重构deployer Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: ascend-robot Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-pyMotor-private/issues/147 ## **2. 修改内容** 1、拆分deploy.py文件 2、拆分boot.sh文件【以及调整文件夹名称】 3、重命名deployment文件夹 4、调整examples结构【详见ISSUE】 ## **3. 资料变更** 设计 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 1、CRD:正常拉起(压测),静态扩缩无问题 2、多Deployment:正常拉起(压测),静态扩缩无问题 3、单容器:正常拉起(压测) ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-pyMotor-private!286 | 4 个月前 | |
[Feature] 增加云原生部署器 Co-authored-by: sceneryback<afterbreeze@hotmail.com> # message auto-generated for no-merge-commit merge: !67 merge feature/add-deployer into master [Feature] 增加云原生部署器 Created-by: gcw_gxG14I7x Commit-by: sceneryback Merged-by: zhoujing101 Description: ## **1. 合入背景** 本次改动提供一套面向 examples/deployer/deploy.py 的云原生部署方式。它的目标是让部署过程不再依赖人工登录宿主机,也不依赖宿主机上的本地配置文件,而是能够被云平台直接触发。来自真实的云厂商部署需求,在内部平台已验证。 项目原始部署方式默认由运维人员登录某个 Kubernetes 节点,手工执行 examples/deployer/deploy.py,并从本地目录读取配置文件。 这种方式适合开发调试和人工验证,但在云平台场景下会遇到明显问题: * 集群通常是多租户的,同一集群内会并行部署多个推理服务,并通过 namespace 做隔离。 * 云平台用户不应被要求拥有节点登录权限。 * 部署请求通常来自平台控制面或 API,而不是人工在宿主机执行脚本。 * 交付物应该是容器镜像和 Kubernetes 清单,而不是依赖宿主机本地状态。 * 扩缩容、清理等动作也应该被表达为 Kubernetes Job,便于平台统一审计、重试和观测。 因此,这里把现有的部署逻辑封装成了适合容器执行的形式。对云平台而言,只需要两步: 1. 准备一个包含 user_config.json 和 env.json 的 ConfigMap。 2. 创建对应的 deploy / scale / cleanup Job。 底层真正执行部署的仍然是现有的 examples/deployer/deploy.py,这样可以保持与当前人工部署行为一致,同时把入口改造成云原生形态。示意如图:  Fixes https://gitcode.com/Ascend/MindIE-PyMotor/issues/345 ## **2. 修改内容** 本次仅涉及 deployer 部分。 1. 新增 examples/cloud_native_deploy 云原生部署目录,补齐 deployer 镜像 Dockerfile、deploy/scale/cleanup 入口脚本,以及对应的 Kubernetes Job、RBAC 和配置清单;同时将 user_config.json 与 env.json 统一封装进同一个 ConfigMap,并在 Job 中映射为容器内配置文件,使云平台可以通过 “ConfigMap + Job” 方式直接触发部署、扩缩容和清理,而不再依赖人工登录宿主机。 2. 在 user_config.json 中新增 scheduling_queue、coordinator_service_name、prefill_node_selector 和 decode_node_selector 等配置 3. 调整云原生 cleanup 逻辑,使用独立 cleanup.sh 按 namespace 清理集群资源,而不是依赖宿主机上的 output_yamls 4. 修正多服务并存时的 RBAC 冲突问题:保留共享的 ClusterRole,将生成出来的 ClusterRoleBinding 改为按 namespace 唯一化,并让 cleanup 只删除当前 namespace 对应的 binding,不再删除共享的 ClusterRole 5. 新增根目录 Makefile,统一提供 wheel 构建、云原生 deployer 镜像本地构建和 buildx 多架构推送入口,默认镜像仓库为 Docker Hub(在另一个 PR 提交)。 6. 新增 helm 部署,通过 helm install 一键部署,更符合云原生组件的部署规范 ## **3. 资料变更** 涉及部署方式变更,已描述 ## **4. 接口变更** 涉及 user_config.json 变更 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!67 | 13 天前 | |
[Feature] 增加云原生部署器 Co-authored-by: sceneryback<afterbreeze@hotmail.com> # message auto-generated for no-merge-commit merge: !67 merge feature/add-deployer into master [Feature] 增加云原生部署器 Created-by: gcw_gxG14I7x Commit-by: sceneryback Merged-by: zhoujing101 Description: ## **1. 合入背景** 本次改动提供一套面向 examples/deployer/deploy.py 的云原生部署方式。它的目标是让部署过程不再依赖人工登录宿主机,也不依赖宿主机上的本地配置文件,而是能够被云平台直接触发。来自真实的云厂商部署需求,在内部平台已验证。 项目原始部署方式默认由运维人员登录某个 Kubernetes 节点,手工执行 examples/deployer/deploy.py,并从本地目录读取配置文件。 这种方式适合开发调试和人工验证,但在云平台场景下会遇到明显问题: * 集群通常是多租户的,同一集群内会并行部署多个推理服务,并通过 namespace 做隔离。 * 云平台用户不应被要求拥有节点登录权限。 * 部署请求通常来自平台控制面或 API,而不是人工在宿主机执行脚本。 * 交付物应该是容器镜像和 Kubernetes 清单,而不是依赖宿主机本地状态。 * 扩缩容、清理等动作也应该被表达为 Kubernetes Job,便于平台统一审计、重试和观测。 因此,这里把现有的部署逻辑封装成了适合容器执行的形式。对云平台而言,只需要两步: 1. 准备一个包含 user_config.json 和 env.json 的 ConfigMap。 2. 创建对应的 deploy / scale / cleanup Job。 底层真正执行部署的仍然是现有的 examples/deployer/deploy.py,这样可以保持与当前人工部署行为一致,同时把入口改造成云原生形态。示意如图:  Fixes https://gitcode.com/Ascend/MindIE-PyMotor/issues/345 ## **2. 修改内容** 本次仅涉及 deployer 部分。 1. 新增 examples/cloud_native_deploy 云原生部署目录,补齐 deployer 镜像 Dockerfile、deploy/scale/cleanup 入口脚本,以及对应的 Kubernetes Job、RBAC 和配置清单;同时将 user_config.json 与 env.json 统一封装进同一个 ConfigMap,并在 Job 中映射为容器内配置文件,使云平台可以通过 “ConfigMap + Job” 方式直接触发部署、扩缩容和清理,而不再依赖人工登录宿主机。 2. 在 user_config.json 中新增 scheduling_queue、coordinator_service_name、prefill_node_selector 和 decode_node_selector 等配置 3. 调整云原生 cleanup 逻辑,使用独立 cleanup.sh 按 namespace 清理集群资源,而不是依赖宿主机上的 output_yamls 4. 修正多服务并存时的 RBAC 冲突问题:保留共享的 ClusterRole,将生成出来的 ClusterRoleBinding 改为按 namespace 唯一化,并让 cleanup 只删除当前 namespace 对应的 binding,不再删除共享的 ClusterRole 5. 新增根目录 Makefile,统一提供 wheel 构建、云原生 deployer 镜像本地构建和 buildx 多架构推送入口,默认镜像仓库为 Docker Hub(在另一个 PR 提交)。 6. 新增 helm 部署,通过 helm install 一键部署,更符合云原生组件的部署规范 ## **3. 资料变更** 涉及部署方式变更,已描述 ## **4. 接口变更** 涉及 user_config.json 变更 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!67 | 13 天前 | |
[docs] 补充 Mooncake池化后端 A5 环境变量与网络挂载说明 Co-authored-by: 高鹏<gaopeng140@huawei.com> # message auto-generated for no-merge-commit merge: !616 merge mooncake-a5-docs into master [docs] 补充 Mooncake池化后端 A5 环境变量与网络挂载说明 Created-by: weixin_63825906 Commit-by: 高鹏 Merged-by: towncharlie Description: ## **1. 合入背景** > 当前mooncake池化后端必须使用ipourma网卡,pod默认不挂载该设备,需要文档暂时给出规避方案 Fix part of [#365](https://gitcode.com/Ascend/MindIE-Motor/issues/365) ## **2. 修改内容** 1. 补充A2/A3/A5场景下,需要设置的环境变量,对齐vllm-ascend 2. 新增ipourma网卡挂载指导。 ## **3. 资料变更** 涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** > 服务推理正常  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!616 | 8 天前 | |
【feature】mindie-motor实现跨服务池化功能 Co-authored-by: gitcode-bot<noreply@gitcode.com> Co-authored-by: zhang980530<zhanghao680@h-partners.com> # message auto-generated for no-merge-commit merge: !641 merge master into master 【feature】mindie-motor实现跨服务池化功能 Created-by: zhang980530 Commit-by: zhang980530;gitcode-bot Merged-by: towncharlie Description: ## **1. 合入背景** 此 PR 主要引入了 KV 缓存存储(KV Cache Store)跨部署复用的能力。通过新增 kv_cache_store.py 模块,系统可以在部署时检查指定 target_job_id 的命名空间中是否已有可用的 KV Store 服务和运行中的 Pod,若有则复用而非重新部署,从而节省资源。同时引入了全局标志 g_kv_store_deploy_pod 来控制是否部署本地 KV Store Pod,并在多处调用链路中传递 user_config 以支持该复用逻辑。 Fixes [#392](https://gitcode.com/Ascend/MindIE-PyMotor/issues/392) ## **2. 修改内容** 新增 kv_cache_store.py 模块:实现了 KV Store 复用的核心逻辑,包括 resolve_kv_store_target_job_id(解析目标 job_id)、kv_store_reusable(检查集群中是否存在可复用服务)、apply_kv_store_service_domain(统一配置 KV Store 服务 FQDN 并决定是否部署新 Pod)等函数。 新增全局标志 g_kv_store_deploy_pod:在 k8s_utils.py 中新增该标志(默认 True),由 update_kv_store_enabled_flag 和 apply_kv_store_service_domain 共同控制;当复用已有 KV Store 时设为 False,_configure_kv_store_role 据此将副本数设为 0 以跳过 Pod 部署。 新增配置项 TARGET_JOB_ID 和标签 KV_STORE_APP_LABEL:在 constant.py 中新增 TARGET_JOB_ID = "target_job_id" 和 KV_STORE_APP_LABEL = "mindie-motor-kv-store",分别用于指定复用目标任务和作为 Pod 选择器标签。 重构 init_service_domain_name 与 init_infer_service_domain_name 签名:两函数均新增 user_config 参数,并将 KV Store 服务域名配置逻辑统一委托给 apply_kv_store_service_domain;支持 skip_kv_store 参数以在特定场景跳过 KV Store 域名初始化。 调整 deploy.py 调用链:所有调用 init_service_domain_name 和 init_infer_service_domain_name 的位置均传入 user_config;handle_update_instance_num 中调用时传入 skip_kv_store=True,KV Store 部署增加 g_kv_store_deploy_pod 条件判断。 ## **3. 资料变更** “不涉及”。 ## **4. 接口变更** “不涉及”。 ## **5. 测试结果**   ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!641 | 2 天前 | |
修复 A2 上 sp-block 删除整个 annotations 问题 Co-authored-by: jingyp<jingyp@chinatelecom.cn> # message auto-generated for no-merge-commit merge: !644 merge bugfix/fix-sp-block-annotations into master 修复 A2 上 sp-block 删除整个 annotations 问题 Created-by: gcw_gxG14I7x Commit-by: jingyp Merged-by: towncharlie Description: ## **1. 合入背景** Fixes https://gitcode.com/Ascend/MindIE-Motor/issues/377 ## **2. 修改内容** A2 上仅删除可能的 sp-block annotation,不影响其他 ## **3. 资料变更** 无 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 修复前:  修复后:  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!644 | 2 天前 | |
【feature】mindie-motor实现跨服务池化功能 Co-authored-by: gitcode-bot<noreply@gitcode.com> Co-authored-by: zhang980530<zhanghao680@h-partners.com> # message auto-generated for no-merge-commit merge: !641 merge master into master 【feature】mindie-motor实现跨服务池化功能 Created-by: zhang980530 Commit-by: zhang980530;gitcode-bot Merged-by: towncharlie Description: ## **1. 合入背景** 此 PR 主要引入了 KV 缓存存储(KV Cache Store)跨部署复用的能力。通过新增 kv_cache_store.py 模块,系统可以在部署时检查指定 target_job_id 的命名空间中是否已有可用的 KV Store 服务和运行中的 Pod,若有则复用而非重新部署,从而节省资源。同时引入了全局标志 g_kv_store_deploy_pod 来控制是否部署本地 KV Store Pod,并在多处调用链路中传递 user_config 以支持该复用逻辑。 Fixes [#392](https://gitcode.com/Ascend/MindIE-PyMotor/issues/392) ## **2. 修改内容** 新增 kv_cache_store.py 模块:实现了 KV Store 复用的核心逻辑,包括 resolve_kv_store_target_job_id(解析目标 job_id)、kv_store_reusable(检查集群中是否存在可复用服务)、apply_kv_store_service_domain(统一配置 KV Store 服务 FQDN 并决定是否部署新 Pod)等函数。 新增全局标志 g_kv_store_deploy_pod:在 k8s_utils.py 中新增该标志(默认 True),由 update_kv_store_enabled_flag 和 apply_kv_store_service_domain 共同控制;当复用已有 KV Store 时设为 False,_configure_kv_store_role 据此将副本数设为 0 以跳过 Pod 部署。 新增配置项 TARGET_JOB_ID 和标签 KV_STORE_APP_LABEL:在 constant.py 中新增 TARGET_JOB_ID = "target_job_id" 和 KV_STORE_APP_LABEL = "mindie-motor-kv-store",分别用于指定复用目标任务和作为 Pod 选择器标签。 重构 init_service_domain_name 与 init_infer_service_domain_name 签名:两函数均新增 user_config 参数,并将 KV Store 服务域名配置逻辑统一委托给 apply_kv_store_service_domain;支持 skip_kv_store 参数以在特定场景跳过 KV Store 域名初始化。 调整 deploy.py 调用链:所有调用 init_service_domain_name 和 init_infer_service_domain_name 的位置均传入 user_config;handle_update_instance_num 中调用时传入 skip_kv_store=True,KV Store 部署增加 g_kv_store_deploy_pod 条件判断。 ## **3. 资料变更** “不涉及”。 ## **4. 接口变更** “不涉及”。 ## **5. 测试结果**   ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!641 | 2 天前 | |
【feature】kv-conductor Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !568 merge feat/kv-conductor into master 【feature】kv-conductor Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/338 内部subCMC已经评审,该大PR同意合入 ## **2. 修改内容** 1、引入kv-conductor【rust源代码,测试代码,设计文档】 2、Coordinator conductor client适配kv-conductor 3、新增kv-conductor config 4、kvcache_affine.md重写,以kv-conductor为准 5、build.sh集成kv-conductor二进制打包进whl的能力,支持跳过kv-conductor打包,便于在无rust编译环境上构建基础组件 ## **3. 资料变更** 涉及 ## **4. 接口变更** 涉及 ## **5. 测试结果** whl包版kv-conductor拉起成功,请求命中匹配成功 Looking in indexes: https://repo.huaweicloud.com/repository/pypi/simple, https://mirrors.huaweicloud.com/ascend/repos/pypi Processing ./dist/motor-0.1.0-py3-none-any.whl Installing collected packages: motor Attempting uninstall: motor Found existing installation: motor 0.1.0 Uninstalling motor-0.1.0: Successfully uninstalled motor-0.1.0 Successfully installed motor-0.1.0 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv [notice] A new release of pip is available: 24.0 -> 26.1.2 [notice] To update, run: pip install --upgrade pip Current node role: ROLE=kv_conductor Starting KV Conductor on 0.0.0.0:13333 2026-07-21T17:12:09.17062356+08:00 INFO scoring config hbm_weight=3 cpu_weight=2 disk_weight=1 2026-07-21T17:12:09.17093877+08:00 INFO KV conductor starting on 0.0.0.0:13333 2026-07-21T17:12:10.44555639+08:00 TRACE connection 192.168.196.1:50480 accepted 2026-07-21T17:12:10.44581192+08:00 TRACE connection 192.168.196.1:50480 closed 2026-07-21T18:18:48.26729199+08:00 DEBUG request{method=POST uri=/query version=HTTP/1.1}: started processing request 2026-07-21T18:18:48.26737949+08:00 DEBUG request{method=POST uri=/query version=HTTP/1.1}: query request model=Qwen3-30B-A3B-W8A8 tenant=default num_tokens=1503 2026-07-21T18:18:48.26740762+08:00 DEBUG request{method=POST uri=/query version=HTTP/1.1}: find_matches seq_len=12 depth=11 active_workers=2 elapsed_us=13 2026-07-21T18:18:48.26741747+08:00 DEBUG request{method=POST uri=/query version=HTTP/1.1}: hash_computed num_tokens=1503 block_size=128 num_hashes=12 hash_us=2 scores=2 2026-07-21T18:18:48.26743069+08:00 DEBUG request{method=POST uri=/query version=HTTP/1.1}: query profile num_tokens=1503 block_size=128 hash_us=37 total_us=43 2026-07-21T18:18:48.26745731+08:00 DEBUG request{method=POST uri=/query version=HTTP/1.1}: finished processing request latency=0 ms status=200 Qwen3-30B-A3B,Prefill DP2,Decode DP2测试如下: 发送8个请求,gsm8 未开启亲和性调度: ╒══════════════════════════╤═════════╤═════════════════╤════════════════╤═════════════════╤═════════════════╤═════════════════╤═════════════════╤═════════════════╤═════╕ │ Performance Parameters │ Stage │ Average │ Min │ Max │ Median │ P75 │ P90 │ P99 │ N │ ╞══════════════════════════╪═════════╪═════════════════╪════════════════╪═════════════════╪═════════════════╪═════════════════╪═════════════════╪═════════════════╪═════╡ │ E2EL │ total │ 7389.6 ms │ 4197.7 ms │ 8487.4 ms │ 8063.4 ms │ 8298.8 ms │ 8377.5 ms │ 8476.4 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ TTFT │ total │ 311.4 ms │ 226.1 ms │ 484.5 ms │ 284.1 ms │ 373.7 ms │ 409.9 ms │ 477.0 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ TPOT │ total │ 15.7 ms │ 15.3 ms │ 15.9 ms │ 15.8 ms │ 15.9 ms │ 15.9 ms │ 15.9 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ ITL │ total │ 15.6 ms │ 0.0 ms │ 48.4 ms │ 15.6 ms │ 15.8 ms │ 16.0 ms │ 20.1 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ InputTokens │ total │ 1491.5 │ 1460.0 │ 1545.0 │ 1490.5 │ 1499.25 │ 1515.6 │ 1542.06 │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ OutputTokens │ total │ 452.125 │ 242.0 │ 512.0 │ 509.0 │ 512.0 │ 512.0 │ 512.0 │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ OutputTokenThroughput │ total │ 60.9652 token/s │ 57.651 token/s │ 63.2079 token/s │ 61.2631 token/s │ 62.0915 token/s │ 63.0926 token/s │ 63.1963 token/s │ 8 │ ╘══════════════════════════╧═════════╧═════════════════╧════════════════╧═════════════════╧═════════════════╧═════════════════╧═════════════════╧═════════════════╧═════╛ 开启亲和性: ╒══════════════════════════╤═════════╤═════════════════╤═════════════════╤═════════════════╤═════════════════╤═════════════════╤═════════════════╤═════════════════╤═════╕ │ Performance Parameters │ Stage │ Average │ Min │ Max │ Median │ P75 │ P90 │ P99 │ N │ ╞══════════════════════════╪═════════╪═════════════════╪═════════════════╪═════════════════╪═════════════════╪═════════════════╪═════════════════╪═════════════════╪═════╡ │ E2EL │ total │ 7240.3 ms │ 4261.9 ms │ 8632.0 ms │ 7745.1 ms │ 8326.5 ms │ 8438.4 ms │ 8612.6 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ TTFT │ total │ 320.5 ms │ 241.6 ms │ 519.1 ms │ 260.4 ms │ 393.4 ms │ 432.8 ms │ 510.5 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ TPOT │ total │ 15.8 ms │ 15.4 ms │ 15.9 ms │ 15.9 ms │ 15.9 ms │ 15.9 ms │ 15.9 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ ITL │ total │ 15.7 ms │ 0.0 ms │ 45.1 ms │ 15.6 ms │ 15.9 ms │ 16.1 ms │ 23.1 ms │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ InputTokens │ total │ 1491.5 │ 1460.0 │ 1545.0 │ 1490.5 │ 1499.25 │ 1515.6 │ 1542.06 │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ OutputTokens │ total │ 439.125 │ 254.0 │ 512.0 │ 481.5 │ 512.0 │ 512.0 │ 512.0 │ 8 │ ├──────────────────────────┼─────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┼─────┤ │ OutputTokenThroughput │ total │ 60.5041 token/s │ 58.5203 token/s │ 62.9559 token/s │ 60.4373 token/s │ 61.3642 token/s │ 61.9798 token/s │ 62.8583 token/s │ 8 │ ╘══════════════════════════╧═════════╧═════════════════╧═════════════════╧═════════════════╧═════════════════╧═════════════════╧═════════════════╧═════════════════╧═════╛ ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!568 | 13 天前 | |
[feature]对接SGLang — coordinator、deploy Co-authored-by: l00855614<linghubiao@huawei.com> # message auto-generated for no-merge-commit merge: !9 merge lhb_sglang_dev into master [feature]对接SGLang — coordinator、deploy Created-by: linghb Commit-by: l00855614 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/3 ## **2. 修改内容** 1、coordinator 新增pd_dual_dispatch_router,支持同时P和D双选,并发下发请求的模式; 2、deploy (1)Ascend_MF_STORE 单独部署;(2)user_config 增加sglang配置; ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 部署成功  推理请求成功 v1/completions  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!9 | 4 个月前 | |
修复 A2 上 sp-block 删除整个 annotations 问题 Co-authored-by: jingyp<jingyp@chinatelecom.cn> # message auto-generated for no-merge-commit merge: !644 merge bugfix/fix-sp-block-annotations into master 修复 A2 上 sp-block 删除整个 annotations 问题 Created-by: gcw_gxG14I7x Commit-by: jingyp Merged-by: towncharlie Description: ## **1. 合入背景** Fixes https://gitcode.com/Ascend/MindIE-Motor/issues/377 ## **2. 修改内容** A2 上仅删除可能的 sp-block annotation,不影响其他 ## **3. 资料变更** 无 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 修复前:  修复后:  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!644 | 2 天前 | |
add storage feature Co-authored-by: supermario_leo<leo.stack@outlook.com> # message auto-generated for no-merge-commit merge: !440 merge feature_add_ucm into master add storage feature Created-by: leo6393 Commit-by: supermario_leo Merged-by: towncharlie Description: ## **1. 合入背景** 在分布式 PD 架构上接入 **UCMConnector** 作为 KV 存储层,为 Prefill 节点提供前缀缓存(prefix cache)复用能力,降低重复前缀的 TTFT、提升整体吞吐。 由于 UCM 的 storage_backends 需要一块 **P/D 跨节点共享**的持久化存储,本分支同时补齐了通用的**引擎 Pod 存储能力**(不绑定 UCM),作为 UCM 前缀缓存池的落盘载体。 - 关联特性:UCM 前缀缓存接入(分布式 PD) - 不涉及对既有 PR 问题的修复 ## **2. 修改内容** 1. **UCM Connector 接入(motor/engine_server/core/vllm/vllm_config.py)** - MultiConnector 场景下识别 connectors[1] = UCMConnector:提前处理并强制 kv_role = kv_both(UCM 在 P/D 两端均双向 store),**不注入任何 rpc port**,避免污染 UCM 的内联 kv_connector_extra_config,处理后 return early。 - 独立 UCMConnector 在 prefill/decode 角色下 **fail loud**(该拓扑需额外 dispatch/profile 工作,当前不支持);union 角色原样透传。 - AscendStoreConnector / MooncakeStore 分支行为保持不变,报错信息修正为打印实际 connector 名。 2. **端口注入适配(motor/config/endpoint.py、motor/config/node_manager.py)** - MultiConnector 组装时,UCM store 无 lookup_rpc_port。改用 .get() 判断 connector 类型,**仅跳过 UCM**;其余 store(如 AscendStore)保持直接索引 —— 真正缺失端口时仍按原逻辑 fail fast,不被静默跳过。 3. **常量新增(motor/engine_server/constants/constants.py、motor/config/node_manager.py)** - UCM_CONNECTOR = "UCMConnector"、KV_BOTH = "kv_both"、KV_CONNECTOR_MODULE_PATH。 4. **通用引擎 Pod 存储能力(新增 examples/deployer/lib/generator/storage.py)** - motor_deploy_config.storage 为**列表**,每条目必须声明 type: - pvc —— 两种互斥模式:storage_class_name 动态创建 PVC / claim_name **挂载已有 PVC**(不生成 PVC 对象,且与 size/access_mode/storage_class_name 互斥,混填/漏填均 fail loud;claim_name 用于非 pvc 类型也会被拒绝)。 - nfs —— k8s 原生 NFS 卷直挂(server+path),无需 CSI/供给器。 - hostpath —— 节点本地目录直挂。 - dshm_size —— 独立抬高 /dev/shm emptyDir sizeLimit(容纳 UCM CacheStore),带无单位值校验。 - 挂载逻辑幂等,复用到 engine.py / infer_service.py / single_container.py 三条部署路径;卷名/动态 PVC 名按序号自动生成(mindie-motor-store-<i>)。 5. **示例与镜像** - examples/infer_engines/vllm/ucm_pd/(README + user_config.json):分布式 PD + UCM 内联配置示例。 - docker/mindie-motor-vllm-ucm/(Dockerfile + README):UCM 叠加镜像。 ## **3. 资料变更** **涉及。** - 新增 examples/infer_engines/vllm/ucm_pd/README.md:UCM 前缀缓存拓扑、存储三种类型(pvc/nfs/hostpath)字段表、动态创建 / 挂已有 PVC(claim_name)两种写法示例、dshm_size 说明及硬约束(storage_backends == mount_path)。 - 新增 docker/mindie-motor-vllm-ucm/README.md:UCM 叠加镜像构建说明。 ## **4. 接口变更** **涉及客户面可见的配置项变更(user_config.json),不涉及跨代码仓 API 变更。** - kv_connector 支持 UCMConnector,及 MultiConnector 中内嵌 UCM 作为 connectors[1];需配套 kv_connector_module_path。 - motor_deploy_config 新增 storage 列表(type: pvc/nfs/hostpath,pvc 支持 claim_name 挂已有卷)与 dshm_size。 - 均为新增可选项,对存量配置向后兼容。 ## **5. 测试结果** 新增 / 覆盖 UT: | 用例文件 | 用例数 | 覆盖场景 | |---|---|---| | tests/examples/deployer/test_storage.py | 22 | pvc/nfs/hostpath 三类挂载;pvc 动态创建 vs claim_name 挂已有;参数互斥与缺失校验;非 pvc 类型拒绝 claim_name;多条目/同 claim 多挂载点;挂载幂等;dshm_size 设置与无单位校验 | | tests/engine_server/core/test_vllm_config.py | 13 | UCM kv_role=kv_both、不注入端口;独立 UCM 在 P/D 角色 fail loud;MultiConnector 内嵌 UCM;既有 mooncake/ascend 分支回归 | | tests/node_manager/test_config.py | 33 | MultiConnector 组装跳过 UCM 端口注入;非 UCM store 缺端口仍 fail fast | - 部署方式维度:覆盖 Deployment(engine)、InferServiceSet、single-container 三条路径的存储挂载。 - 本地已执行 deployer UT 套件:54 passed;test_vllm_config.py / test_config.py 依赖运行时环境,请在集成环境执行确认。 - 建议补充:UCM 叠加镜像 + 实机分布式 PD 端到端前缀缓存命中 / TTFT 验证。 ## **6. CheckList** - [x] 代码注释完备 - [x] 正确记录维测日志 - [x] 是否有UT用例 - [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题(本次改动为配置解析 / YAML 生成,无新增多线程逻辑) See merge request: Ascend/MindIE-PyMotor!440 | 16 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 个月前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 8 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 13 天前 | ||
| 4 个月前 | ||
| 2 天前 | ||
| 16 天前 |