news 2026/5/9 22:41:31

CANN/hcomm通信通道创建API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/hcomm通信通道创建API

HcommChannelCreate

【免费下载链接】hcommHCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持

功能说明

该接口为创建通信通道的资源管理接口,基于已创建的网络端点(Endpoint),根据给定的通道描述信息批量创建通信通道,为点对点通信或集合通信提供数据传输的基础设施。

函数原型

HcommResult HcommChannelCreate(EndpointHandle endpointHandle, CommEngine engine, HcommChannelDesc *channelDescs, uint32_t channelNum, ChannelHandle *channels);

参数说明

参数名输入/输出说明
endpointHandle输入网络设备端点句柄,标识一个已创建的本地网络设备端点。
EndpointHandle类型的定义请参见EndpointHandle,该句柄必须通过HcommEndpointCreate成功创建,且未销毁。
engine输入通信引擎类型,指定通道的执行位置。
CommEngine类型的定义请参见CommEngine。
需要注意:必须是有效的引擎类型。
channelDescs输入通道描述符数组,每个元素描述一个待创建通道的属性信息。
HcommChannelDesc类型的定义请参见HcommChannelDesc。
数组元素数量必须等于channelNum,每个元素需正确填充必要字段。
channelNum输入待创建的通道数量。
单位:个,取值范围:[1, 1048576]。
该参数需要大于 0。
channels输出通道句柄数组,用于返回创建成功的通道句柄列表。
ChannelHandle类型的定义请参见ChannelHandle。
调用者分配的数组,需要至少包含channelNum个元素的空间。

返回值

HcommResult:接口成功返回0,其他失败。

约束说明

  • channelDescs数组长度必须与channelNum参数一致。
  • HcommChannelDesc中的remoteEndpoint必须正确填充远端端点信息。
  • 当HcommChannelDesc中exchangeAllMems为false时,必须配置memHandles和memHandleNum。
  • 当前CommEngine配置为CCU时,仅支持交换1份memHandle。
  • 当前CommEngine配置为CCU时,不支持外部配置NotifyNum,默认为8个CCU Notify。
  • 支持的通信协议包括:RoCE、UBC_TP、UBC_CTP、UBoE。

调用示例

// 1. 调用 HcclRankGraphGetLinks 获取链路信息 CommLink *linkList = nullptr; uint32_t listSize; CHK_RET(HcclRankGraphGetLinks(comm, netLayer, myRank, rank, &linkList, &listSize)); // 2. 遍历每个 CommLink,填充 HcommChannelDesc uint32_t channelNum = listSize; std::vector<HcommChannelDesc> hcommDescVec(channelNum); HcommChannelDescInit(hcommDescVec.data(), hcommDescVec.size()); for (uint32_t idx = 0; idx < listSize; idx++) { HcommChannelDesc channelDesc; CommLink link = linkList[idx]; // 核心映射:从 CommLink 提取 Endpoint 信息 channelDesc.localEndpoint.protocol = link.srcEndpointDesc.protocol; channelDesc.localEndpoint.commAddr = link.srcEndpointDesc.commAddr; channelDesc.localEndpoint.loc = link.srcEndpointDesc.loc; channelDesc.remoteEndpoint.protocol = link.dstEndpointDesc.protocol; channelDesc.remoteEndpoint.commAddr = link.dstEndpointDesc.commAddr; channelDesc.remoteEndpoint.loc = link.dstEndpointDesc.loc; channelDesc.channelProtocol = link.linkAttr.linkProtocol; channelDesc.notifyNum = NORMAL_NOTIFY_NUM; hcommDescVec[idx] = channelDesc; // socket配置为空 HcommSocket hcommSocket = nullptr; hcommDescVec[idx].socket = hcommSocket; } // 参考 MyRank 下 BatchCreateChannels 获取 EndpointHandle EndpointHandle epHandle = nullptr; ... // 3. 批量创建 Channel CommEngine engine = CommEngine::COMM_ENGINE_CPU_TS; std::vector<ChannelHandle> channels(channelNum); HcommChannelCreate(epHandle, engine, hcommDescVec.data(), channelNum, channels.data());

【免费下载链接】hcommHCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 22:41:29

毕业设计 基于深度学习的抽烟行为检测算法实现(源码分享)

文章目录 0 简介1 系统概述系统设计原则3 实现效果4 Yolov5算法4.1 简介4.2 相关技术 5 数据集处理及实验6 部分核心代码最后 0 简介 今天学长向大家分享一个毕业设计项目 毕业设计 基于深度学习的抽烟行为检测算法实现(源码分享) 项目运行效果&#xff1a; 毕业设计 深度学…

作者头像 李华
网站建设 2026/5/9 22:28:31

从零构建私有化AI对话平台:LibreChat部署与多模型管理实战

1. 项目概述&#xff1a;从零到一&#xff0c;构建你的私有化AI对话平台如果你和我一样&#xff0c;对ChatGPT这类大语言模型&#xff08;LLM&#xff09;的对话能力着迷&#xff0c;但又对数据隐私、API调用成本、以及模型选择的灵活性有更高的要求&#xff0c;那么你很可能已…

作者头像 李华
网站建设 2026/5/9 22:26:00

基于NGSI-LD的物联网数据质量评估与增强实践

1. 项目概述&#xff1a;当物联网数据“生病”了&#xff0c;我们如何诊断与治疗&#xff1f;在物联网&#xff08;IoT&#xff09;项目里摸爬滚打这么多年&#xff0c;我见过太多团队在数据上栽跟头。大家往往把精力都花在了设备连接、平台搭建和酷炫的可视化大屏上&#xff0…

作者头像 李华
网站建设 2026/5/9 22:23:58

互联网大厂Java求职者面试:微服务与云原生的挑战

互联网大厂Java求职者面试&#xff1a;微服务与云原生的挑战 场景&#xff1a;在一家互联网大厂的面试中&#xff0c;面试官是一位严肃的技术专家&#xff0c;而候选人燕双非则是一位幽默风趣的程序员。面试官试图通过一系列问题了解燕双非对微服务和云原生的掌握程度。第一轮提…

作者头像 李华
网站建设 2026/5/9 22:23:46

对比直接使用厂商 API 与通过 Taotoken 调用的便捷性差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商 API 与通过 Taotoken 调用的便捷性差异 作为一名个人开发者&#xff0c;我曾直接使用多家模型厂商的原生 API 来…

作者头像 李华
网站建设 2026/5/9 22:23:37

AI驱动的Go语言交互式学习平台GO-Companion深度体验与架构解析

1. 项目概述&#xff1a;一个AI赋能的Go语言交互式学习与练习平台如果你正在学习Go语言&#xff0c;或者已经是一名Gopher但想更系统地提升自己的工程能力&#xff0c;那么你很可能和我一样&#xff0c;经历过这样的困境&#xff1a;官方文档看完了&#xff0c;语法也基本掌握了…

作者头像 李华