当前位置: 首页 > news >正文

CANN hixl 与集合通信库的接口抽象与协同设计

相关链接

  • CANN 组织主页:https://atomgit.com/cann
  • hixl 仓库地址:https://atomgit.com/cann/hixl

前言

在 CANN(Compute Architecture for Neural Networks)高性能计算生态中,高效的点对点(Point-to-Point, P2P)通信能力是构建上层集合通信(Collective Communication)操作(如 AllReduce、Broadcast)的基石。HIXL(Huawei Xfer Library)作为 CANN 生态中的单边通信库,其核心使命不仅是提供极致性能的 P2P 传输,更是要为上层集合通信库(特别是HCCL)提供一套简洁、高效且语义丰富的接口抽象。这种接口抽象与协同设计,是实现从底层硬件到高层分布式训练框架无缝衔接的关键。

一、定位与角色:HIXL 在 CANN 通信栈中的位置

在 CANN 的通信软件栈中,各组件的职责清晰分层:

  • 底层驱动/硬件:提供物理链路(如 RDMA, HCCS)。
  • HIXL:提供单边、零拷贝的 P2P 通信原语,并屏蔽底层硬件差异。
  • HCCL:基于 HIXL 等 P2P 原语,构建多节点、多设备间的集合通信操作。
  • 上层框架(PyTorch/MindSpore):调用 HCCL 的 AllReduce 等接口进行分布式训练。

HIXL 的核心价值在于,它将复杂的、协议相关的 P2P 通信细节封装起来,向上层(HCCL)暴露一个统一的、高性能的“内存到内存”传输接口。这种设计使得 HCCL 可以专注于集合通信算法的优化,而无需关心底层网络的具体实现。


二、核心抽象 I:HIXL Engine—— 通用 P2P 传输原语

HIXL Engine是 HIXL 库的基础,它定义了一套通用的 P2P 通信接口。这些接口是 HCCL 构建其集合通信树或环等拓扑结构的基本构件。

2.1HixlEngine接口定义

include/hixl/hixl_engine.h中,HixlEngine类提供了核心的异步传输方法:

// include/hixl/hixl_engine.hnamespacehixl{classHixlEngine{public:// 初始化引擎StatusInit(constHixlEngineConfig&config);// 连接到远程节点StatusConnect(intremote_rank,conststd::string&remote_ip,intport);// 【核心】单边写:将本地内存数据直接写入远端内存StatusPutAsync(void*local_ptr,size_t size,RemoteMemoryHandle remote_handle,// 远端内存句柄std::function<void(Status)>callback=nullptr);// 【核心】单边读:从远端内存直接读取数据到本地内存StatusGetAsync(void*local_ptr,size_t size,RemoteMemoryHandle remote_handle,std::function<void(Status)>callback=nullptr);// 注册本地内存,获取可被远端访问的句柄StatusRegisterMemory(void*ptr,size_t size,RemoteMemoryHandle&handle);// 取消注册内存StatusUnregisterMemory(RemoteMemoryHandle handle);};}

2.2 与 HCCL 的协同:构建集合通信

HCCL 在初始化时,会为每个参与通信的设备对创建一个HixlEngine实例。当执行一个AllReduce操作时,HCCL 的 Ring-AllReduce 算法可能会分解为以下步骤,每一步都调用HixlEnginePutAsyncGetAsync

  1. Reduce-Scatter 阶段:每个节点将其部分数据发送给下一个节点。HCCL 调用engine.PutAsync(local_chunk, remote_handle_of_next_node)
  2. All-Gather 阶段:每个节点将其累加后的数据广播给所有其他节点。HCCL 再次使用PutAsync将数据推送到各个目标节点。

通过这种方式,HIXL 的高性能单边操作成为了 HCCL 集合通信的“原子操作”。


三、核心抽象 II:LLM-DataDist—— 面向大模型的语义化接口

随着大语言模型(LLM)的兴起,传统的 P2P 接口在处理KV Cache等特定数据结构时显得过于底层和繁琐。为此,HIXL 引入了更高层次的抽象——LLM-DataDist,它专门为 LLM 推理中的 PD 分离(Prefill/Decode Separation)和 KV Cache 传输场景设计。

3.1LlmDataDist接口定义

LlmDataDistinclude/llm_datadist/llm_datadist.h中定义,其接口直接携带了 LLM 的语义:

// include/llm_datadist/llm_datadist.hnamespacellm_datadist{structKvBlock{void*key_ptr;void*value_ptr;size_t token_num;size_t head_num;size_t head_dim;};classLlmDataDist{public:StatusInit(constLlmDataDistConfig&config);// 【语义化接口】将本地的 KV Block 发送给指定的远端设备StatusSendKvBlockAsync(intdst_device_id,constKvBlock&kv_block,std::function<void(Status)>callback=nullptr);// 【语义化接口】从指定的远端设备接收 KV BlockStatusRecvKvBlockAsync(intsrc_device_id,KvBlock&kv_block,// 输出参数std::function<void(Status)>callback=nullptr);};}

3.2 与 vLLM/SGLang 等推理引擎的集成

LLM-DataDist的设计使其能够被主流的 LLM 推理引擎(如 vLLM, SGLang)直接调用。这些引擎在调度推理任务时,如果发现需要跨设备传输 KV Cache,就可以直接调用SendKvBlockAsync,而无需自己去管理底层的内存注册、地址转换和 P2P 传输细节。

3.3 与 HCCL 的互补关系

值得注意的是,LLM-DataDist并非要取代 HCCL,而是与之形成互补。HCCL 专注于同步、集体的通信模式(所有参与者必须同时参与),而LLM-DataDist则专注于异步、点对点的 KV Cache 传输,后者在自回归解码的动态调度中更为灵活。两者共同构成了 CANN 应对不同分布式 AI 场景的完整通信解决方案。


四、内部实现协同:内存管理与错误处理

为了确保与上层库的高效协同,HIXL 在内部实现上也做了深度优化。

4.1 统一的内存注册机制

无论是HixlEngine还是LlmDataDist,它们都共享同一个底层的内存注册/注销逻辑。当LlmDataDist::SendKvBlockAsync被调用时,它会自动将KvBlock中的key_ptrvalue_ptr通过 HIXL 的内存管理器注册为可远程访问的内存区域,并获取RemoteMemoryHandle,然后交由HixlEngine执行实际的PutAsync操作。这个过程对上层完全透明。

4.2 健壮的错误处理与资源清理

根据仓库中最新的【BugFix】修复LLM-DataDist支持hixl backend时...提交(见src/llm_datadist/llm_datadist.cc),HIXL 特别注重析构顺序和资源清理的健壮性。它确保在通信域销毁之前,所有已注册的内存都会被正确解注册,所有未完成的传输请求都会被安全地取消。这种严谨的资源管理是保证长时间运行的分布式训练/推理任务稳定性的关键。


五、总结

CANN HIXL 通过其双层抽象——通用的HIXL Engine和面向场景的LLM-DataDist——成功地实现了与上层集合通信库(HCCL)及推理引擎的高效协同。HIXL Engine为 HCCL 提供了构建高性能集合通信的坚实 P2P 原语,而LLM-DataDist则为新兴的大模型推理场景提供了语义丰富、易于集成的专用接口。

这种“通用+专用”的接口设计哲学,使得 HIXL 既能满足传统分布式训练对底层通信原语的需求,又能快速适配前沿 AI 应用的特定模式。作为 CANN 通信能力的核心载体,HIXL 的接口抽象与协同设计,是整个生态能够高效支撑从经典 CNN 到超大规模 LLM 全谱系 AI 工作负载的关键所在。


相关链接

  • CANN 组织主页:https://atomgit.com/cann
  • hixl 仓库地址:https://atomgit.com/cann/hixl
http://www.jsqmd.com/news/368626/

相关文章:

  • 【 Java 性能调优 | 问题定位与测试验证 】
  • 2026年焊烟净化器设备厂家权威推荐榜:焊烟净化器除尘器/自循环焊烟净化器/集中式焊烟净化器/高负压焊烟净化器/选择指南 - 优质品牌商家
  • 2026年评价高的老人上楼简易电梯公司推荐:别墅家用座椅式电梯/北京座椅电梯/家用座椅式电梯/座椅升降电梯/选择指南 - 优质品牌商家
  • 2026年漯河旧房换新家:实力公司全景解析与避坑指南 - 2026年企业推荐榜
  • 2026可变情报板 车道指示器厂家怎么选?答案在这! - 栗子测评
  • Redis配置文件介绍
  • 2026年焊烟净化器除尘器厂家推荐:焊接烟尘除尘器/焊接除尘设备/焊烟除尘器/自循环焊烟净化器/选择指南 - 优质品牌商家
  • 2026年大型卫生纸加工设备厂家权威推荐榜:卫生纸抽纸加工设备/小型抽纸加工设备/1880卫生纸加工设备/选择指南 - 优质品牌商家
  • 2026年反应釜品牌选择指南与顶尖厂商评估 - 2026年企业推荐榜
  • 2026年评价高的全自动抽纸加工设备公司推荐:1880型卫生纸加工设备、1880抽纸加工设备选择指南 - 优质品牌商家
  • 2026年生命线厂家权威推荐榜:织带速差器/行车水平生命线装置/钢索型速差器/镀锌钢丝绳速差器/选择指南 - 优质品牌商家
  • 应用安全 --- 安卓加固 之 克隆函数
  • 2026年评价高的电动升降机公司推荐:液压升降平台/液压升降机/液压家用电梯/电动升降平台/科技电梯/选择指南 - 优质品牌商家
  • 2026年河北镀膜机机构实力盘点与选择指南 - 2026年企业推荐榜
  • 2026年垂直生命线厂家最新推荐:屋面水平生命线、水平生命线系统、水平钢缆生命线、爬梯生命线系统、织带速差器选择指南 - 优质品牌商家
  • 【Dubbo服务找不到?从抓耳挠腮到一键解决,全流程干货!】
  • 2026年近期可靠石榴汁批发厂家综合评估与精选推荐 - 2026年企业推荐榜
  • 2026年成都铝合金电缆服务商综合评测与选型指南 - 2026年企业推荐榜
  • 2026年水平生命线系统厂家权威推荐榜:钢索型速差器、镀锌钢丝绳速差器、厂房内水平生命线、垂直生命线系统选择指南 - 优质品牌商家
  • 2026年四川照明灯具厂家综合实力与选型指南 - 2026年企业推荐榜
  • 2026年初四川集成墙板制造厂盘点与选型指南 - 2026年企业推荐榜
  • 2026年医用蒸馏水厂家权威推荐榜:工业软水、蒸馏水价格、蒸馏水生产、除盐水、去离子水批发、工业去离子水采购选择指南 - 优质品牌商家
  • 2026年Q1新疆高起专服务靠谱机构深度测评与推荐 - 2026年企业推荐榜
  • 2026健康消费新趋势:三家顶尖无添加石榴汁加工厂深度评测 - 2026年企业推荐榜
  • 2026年无胶蜂窝板吊顶厂家最新推荐:蜂窝板吊顶定制、大板蜂窝板吊顶、无胶蜂窝板吊顶、蜂窝板大板吊顶选择指南 - 优质品牌商家
  • 2026年蜂窝板吊顶定制厂家推荐:铝蜂窝板吊顶/大板蜂窝板吊顶/无胶蜂窝板吊顶/蜂窝板吊顶定制/蜂窝板大板吊顶/选择指南 - 优质品牌商家
  • 安徽公考机构深度评测:2026年备考如何选择靠谱辅导? - 2026年企业推荐榜
  • 2026年兰州医院污水处理设备厂家推荐:兰州工业污水处理设备、兰州污水处理设备、兰州食品厂污水处理设备选择指南 - 优质品牌商家
  • 2026年长沙足浴品牌深度评测:谁才是健康休闲的优选? - 2026年企业推荐榜
  • 2026年国土空间规划调整技术服务专业单位评选指南 - 2026年企业推荐榜