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

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),仅供参考

http://www.jsqmd.com/news/785753/

相关文章:

  • 6个免费的降AI率的提示词,不花钱也能把论文AI率降到30%以内。
  • CANN PyPTO安全声明
  • 基于区块链的AI资产溯源:构建可信机器学习协作生态
  • CANN/pyasc加法ReLU类型转换API
  • CANN/pyto Pass模块功能总结
  • Python 爬虫高级实战:学术文献高效采集与整理
  • 利用Taotoken为内容生成平台动态选择高性价比模型
  • AI赋能优化算法:从LSTM、RL到GNN的智能选择与参数调优实践
  • CANN/ge: GE 图拆分特性分析
  • Docker化下载中心部署指南:集成Aria2、qBittorrent与Rclone的自动化方案
  • 使用curl命令快速测试Taotoken大模型API连通性与基础功能
  • CANN / pto-isa文档更新模式
  • 【新手放心进】Numpy 零基础超全入门教程,从安装到矩阵运算一站式学会
  • GE自定义算子IR实现开发指南
  • 数据就绪度:AI项目成功的隐形地基与可视化诊断实践
  • CEM算法出处 —— 交叉熵强化学习算法 —— 强化学习算法中经典的CEM算法
  • Python 爬虫高级实战:百亿级数据爬虫架构优化
  • 数字孪生与物联网安全:AI驱动的威胁检测与防御技术解析
  • 使用python在ubuntu上编写第一个调用taotoken多模型广场的脚本
  • CANN oam-tools运维工具集
  • 生成式AI如何重塑社会工程攻击与防御策略
  • 机考question2、question3
  • 从草图到3D:基于NeRF与生成式AI的智能设计工作流解析
  • 呼和浩特搬家机构最新推荐:专业搬家服务企业实力对比与选择指南 - 品牌策略师
  • 《深入浅出通信原理》连载081-085
  • CANN/ops-cv双线性插值调整算子
  • 不知道如何降AI率?2026年保姆级降AI提示词总结,教你分分钟去除aigc痕迹!
  • 为AI编程助手构建持久记忆层:amem架构解析与实战指南
  • 如何快速获取百度网盘提取码:终极智能解析工具完整指南
  • 如何3秒获取百度网盘提取码:开源智能工具实战指南