Prhub

#44854 [Connector] Remove `P2pNcclConnector`

原始 PR 作者 NickLucche 合并时间 2026-06-08 18:58 文件变更 18 提交数 1 评论 1 代码增减 +2 / -3069

执行摘要

移除 P2pNcclConnector 及相关代码

根据Issue #33115 的RFC讨论,P2pNcclConnector已不再需要:

1) 社区已有更成熟的NIXL Connector和Mooncake Connector;
2) 项目API已稳定,第三方可自行实现类似连接器;
3) 该连接器缺乏主要用户,同时带来较多维护负担。PR body引用了该issue并感谢了原始贡献者。

本PR反映了项目架构演进中做减法的决策,值得阅读以理解为何在已有替代方案后移除早期原型实现。对于想自定义连接器的开发者,可参考 KVConnectorBase_V1 API。

讨论亮点

此PR没有实质性的review讨论。仅有一个来自mergify[bot]的自动化评论,提供了文档预览链接,以及hmellor的批准,未附带评论。之前的RFC Issue #33115 中讨论了弃用的理由。

实现拆解

本次变更为纯删除操作,未新增任何功能代码。具体步骤包括:

  1. 删除核心连接器模块:移除 vllm/distributed/kv_transfer/kv_connector/v1/p2p/ 目录下的 p2p_nccl_engine.py(632行)、p2p_nccl_connector.py(478行)和 tensor_memory_pool.py(273行),这些是P2pNcclConnector的引擎、连接器接口和底层内存池实现。
  2. 删除基准测试脚本:移除 benchmarks/disagg_benchmarks/ 目录下与P2pNCCL相关的代理服务器和性能基准脚本(共约570行)。
  3. 删除示例和启动脚本:移除 examples/disaggregated/ 下的示例代码和shell启动脚本(共约687行),包括展示如何使用P2pNcclConnector进行分离式推理的完整示例。
  4. 清理配置引用和文档:在 vllm/config/kv_transfer.py 和文档中移除对 P2pNcclConnector 的引用和说明,确保配置文件不再识别该连接器。
文件 模块 状态 重要度
vllm/distributed/kv_transfer/kv_connector/v1/p2p/p2p_nccl_engine.py 分布式层 removed 9.17
vllm/distributed/kv_transfer/kv_connector/v1/p2p/p2p_nccl_connector.py 分布式层 removed 8.99
vllm/distributed/kv_transfer/kv_connector/v1/p2p/tensor_memory_pool.py 分布式层 removed 8.89
benchmarks/disagg_benchmarks/disagg_prefill_proxy_server.py 基准测试 removed 8.98
examples/disaggregated/disaggregated_prefill.py 示例 removed 8.14

关键符号

set_p2p_nccl_context SendQueueItem P2pNcclEngine.__init__ P2pNcclEngine.create_connect P2pNcclEngine.send_tensor P2pNcclEngine.recv_tensor P2pNcclEngine.listen_for_requests ReqMeta P2pNcclConnectorMetadata P2pNcclConnector.__init__ P2pNcclConnector.start_load_kv P2pNcclConnector.inject_kv_into_layer MemoryBlock TensorMemoryPool disagg_prefill_proxy_server.main run_prefill run_decode

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

Documentation Preview documentation

mergify[bot] 发布了文档预览链接。

结论:无实质性讨论,仅自动通知。 · closed

风险与影响

1) 用户迁移风险:若用户环境显式配置了 kv_connector="P2pNcclConnector" ,升级后将报错,需改用其它连接器或外部实现。
2) 稳定性:删除代码经过了充分讨论,且该连接器在早期版本后已不被推荐使用,因此对主流用户影响很小。
3) 维护负担:移除了约3k行代码,降低了项目整体维护成本。

影响范围:仅影响采用了 P2pNcclConnector 进行KV传输的用户,对使用其他连接器(NIXL、Mooncake)或未使用分离式KV传输的用户完全透明。影响程度:中等偏下,因为该连接器已在社区通告中标记为可选,且已有成熟替代方案。团队影响:减少维护工作量,使开发者能聚焦于主要连接器。

核心删除 用户迁移风险 减少维护负担

关联 Issue

#33115 [RFC]: Deprecate NCCL Connector?

完整报告

参与讨论