CANN开源助力大模型PD分离部署D2D特性快速实现
在大规模模型推理过程中,预填充(Prefill)和解码(Decode)两个阶段的计算特点存在显著差异:Prefill阶段主要处理较长的输入序列,对计算资源的需求较高;而Decode阶段则是逐个token生成,涉及大量的数据交换。传统的部署方式是将这两个阶段绑定在同一硬件上,导致资源利用不充分。因此,将Prefill和Decode阶段分别部署到不同的资源节点上,成为提高大规模模型推理性能的关键。
昇腾CANN的全面开源,极大地促进了PD分离部署方案的实施。通过开放CANN HIXL(华为单边通信库)等组件,开发者能够高效地实现PD分离部署中的KV Cache在Prefill节点和Decode节点之间的快速传输。此外,借助SGLang和Mooncake框架的支持,进一步加速了D2D同构特性的实现。
在CANN开源之前,新的功能和特性往往需要等待新版CANN的发布,这一过程大约需要3个月。如今,随着CANN各组件的开源,开发者可以通过编译开源组件来即时应用最新的特性,甚至可以根据自身需求对代码进行定制化改造,从而大幅加快项目落地的速度,同时提高了项目的灵活性和性能上限。
核心技术:三大技术协同创新
该方案通过SGLang实现了PD分离架构的实际部署,Mooncake提供了传输适配层,而CANN开源的HIXL组件则解决了通信瓶颈问题,共同实现了“架构解耦+高效通信”的双重优势:

- SGLang:提供了一个成熟的PD分离部署框架,支持Prefill和Decode节点的独立调度,通过设置如disaggregation-mode等参数实现灵活配置。
- Mooncake:作为传输引擎的中间件,兼容多种通信后端,为HIXL与SGLang的集成提供了必要的适配支持。
- CANN HIXL:华为开源的单边通信组件,具备高性能、零拷贝的点对点数据传输能力,并通过简单的API接口对外开放,为PD分离方案中KV Cache在Prefill和Decode节点间的高效传输提供了基础支持。
关键技术详解:HIXL功能解析
3.1 HIXL核心功能接口
HIXL是CANN开源生态系统的一个重要组成部分,已在GitCode社区公开,提供了一套简单易用的单边通信接口,便于开发者实现跨设备的数据高效传输。以下是HIXL的一些主要接口及其功能说明:
| 接口名称 | 功能介绍 |
|---|---|
| Initialize() | Hixl资源初始化,所有其他Hixl操作均需在此基础上执行。 |
| Finalize() | 释放已初始化的Hixl资源。 |
| RegisterMem() | 注册用于发送或接收数据的内存地址。 |
| DeregisterMem() | 取消注册的内存地址。 |
| Connect() | 与远程Hixl建立连接。 |
| Disconnect() | 与远程Hixl断开连接。 |
| TransferSync() | 与远程Hixl同步进行内存传输。 |
3.2 基于HIXL接口实现节点间高性能数据传输的方法
假设有两个NPU节点,分别为客户端(Client)和服务端(Server)。为了使客户端从服务端获取数据或将自己的数据发送至服务端(如PD分离方案中Prefill节点向Decode节点传输KV Cache),整个过程可以分解为以下几个步骤:
客户端:
- Initialize:初始化客户端的Hixl环境。
- RegisterMem:注册用于接收或发送数据的内存地址。
- Connect:与服务端建立单向连接,此步骤应在服务端完成Initialize之后执行。
- TransferSync:从服务端拉取数据或向服务端发送数据,这一步骤需在服务端完成RegisterMem后执行。
- Disconnect:断开与服务端的单向连接。
- DeregisterMem:取消注册用于接收或发送数据的内存地址。
- Finalize:去初始化客户端的Hixl环境并释放资源。
服务端:
- Initialize:初始化服务端的Hixl环境。
- RegisterMem:注册用于接收或发送数据的内存地址。
- DeregisterMem:在客户端完成TransferSync后,取消注册用于接收或发送数据的内存地址。
- Finalize:去初始化服务端的Hixl环境并释放资源。
具体的代码实现可以参考HIXL示例。
总结与未来展望
通过昇腾CANN的全面开源,不仅加速了大规模模型PD分离部署方案的实现,也为开发者提供了更多的自定义空间,极大地提升了项目实施的效率和灵活性。展望未来,随着更多开发者和技术人员的加入,这一领域的创新和发展将更加活跃。
昇腾 CANN 的全面开源开放为开发者提供了一条直达硬件能力的“快车道”。在这个案例中,HIXL 组件的快速集成就是最好的证明。借助 SGLang、Mooncake 和 HIXL 的协同作用,开发者不仅成功实现了 PD 分离部署的高效实施,还验证了开源生态在技术创新中的核心价值。
展望未来,随着昇腾 CANN 开源生态的不断完善,开发者能够充分发挥自己的创造力,在昇腾硬件的基础上开发出适用于各个行业的 AI 应用,形成一片丰富多彩的 AI 应用森林。


雷达卡


京公网安备 11010802022788号







