news 2026/6/5 18:01:55

CANN/hcomm线程写通知API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/hcomm线程写通知API

HcommWriteWithNotifyOnThread

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

产品支持情况

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

功能说明

向channel上的指定内存写数据,将src中长度为len的内存数据写入dst所指向的相同长度的内存区域,并且向dst所在节点发送同步信号。接口调用方为src所在节点,该接口为异步接口。

函数原型

int32_t HcommWriteWithNotifyOnThread(ThreadHandle thread, ChannelHandle channel, void *dst, const void *src, uint64_t len, uint32_t remoteNotifyIdx)

参数说明

参数名输入/输出描述
thread输入通信线程句柄,为通过HcclThreadAcquire接口获取到的threads。
ThreadHandle类型的定义可参见ThreadHandle。
channel输入通信通道句柄,为通过HcclChannelAcquire接口获取到的channels。
ChannelHandle类型的定义可参见ChannelHandle。
dst输出目的内存地址,使用HcclGetHcclBuffer、HcclChannelGetHcclBuffer获取到的内存。
src输入源内存地址,使用HcclGetHcclBuffer、HcclChannelGetHcclBuffer获取到的内存。
len输入数据长度(字节)。
remoteNotifyIdx输入通信通道另一端的Notify索引。
取值范围:[0, HcclChannelAcquire接口传入的channelDescs参数中的notifyNum)。

返回值

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

约束说明

该接口需要配合HcommChannelNotifyWaitOnThread使用。

在Ascend 950PR/Ascend 950DT上,仅支持AICPU_TS模式下、在Device侧调用该接口。

调用示例

// 申请通信线程资源 CommEngine engine = CommEngine::COMM_ENGINE_AICPU_TS; uint32_t threadNum = 1; uint32_t notifyNumPerThread = 1; ThreadHandle thread; HcclThreadAcquire(engine, threadNum, notifyNumPerThread, &thread); // 申请通信通道资源 uint32_t channelNum = 1; HcclChannelDesc channelDesc; HcclChannelDescInit(&channelDesc, channelNum); HcclComm comm; ChannelHandle channel; HcclChannelAcquire(comm, engine, &channelDesc, channelNum, &channel); // 获取本端通信内存信息 void * localBuffer; uint64_t localBufferSize; HcclGetHcclBuffer(comm, &localBuffer, &localBufferSize); // 获取对端通信内存信息 void * remoteBuffer; uint64_t remoteBufferSize; HcclChannelGetHcclBuffer(comm, channel, &remoteBuffer, &remoteBufferSize); uint64_t len = std::min(localBufferSize, remoteBufferSize); // 针对Ascend 950PR/Ascend 950DT,需要在 Device 侧调用以下接口 // 将本端内存的内容写到对端内存上并通知对端 uint32_t rmtNotifyIdx = 0; HcommWriteWithNotifyOnThread(thread, channel, remoteBuffer, localBuffer, len, rmtNotifyIdx); // 数据面操作 // ... // 等待对端通知本端 uint32_t lclNotifyIdx = 0; uint32_t notifyTimeout = 0; HcommChannelNotifyWaitOnThread(thread, channel, lclNotifyIdx, notifyTimeout);

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

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

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

终极Gaggiuino咖啡机改造指南:3个技巧让你轻松实现专业级萃取

终极Gaggiuino咖啡机改造指南:3个技巧让你轻松实现专业级萃取 【免费下载链接】gaggiuino A Gaggia Classic control project using microcontrollers. 项目地址: https://gitcode.com/gh_mirrors/ga/gaggiuino 你是否想过将普通的家用咖啡机升级为能够精准控…

作者头像 李华
网站建设 2026/6/5 17:57:17

WPS-Zotero终极指南:3步实现跨平台文献管理无缝对接

WPS-Zotero终极指南:3步实现跨平台文献管理无缝对接 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为学术论文的文献引用而烦恼吗?WPS-Zotero插…

作者头像 李华
网站建设 2026/6/5 17:57:06

VidMuse模型详解:CompressionModel与LMModel协同工作的底层原理

VidMuse模型详解:CompressionModel与LMModel协同工作的底层原理 【免费下载链接】VidMuse 项目地址: https://ai.gitcode.com/hf_mirrors/HKUSTAudio/VidMuse VidMuse是一个强大的音频生成模型,它通过CompressionModel与LMModel的协同工作&#…

作者头像 李华
网站建设 2026/6/5 17:56:45

Zoo Design Studio安装与配置:跨平台CAD建模环境搭建教程

Zoo Design Studio安装与配置:跨平台CAD建模环境搭建教程 【免费下载链接】modeling-app The Zoo Design Studio app. 项目地址: https://gitcode.com/gh_mirrors/mo/modeling-app 想要体验下一代CAD建模工具吗?Zoo Design Studio是一款革命性的跨…

作者头像 李华
网站建设 2026/6/5 17:55:48

原生Android电视直播应用架构解析与实战指南

原生Android电视直播应用架构解析与实战指南 【免费下载链接】mytv-android 使用Android原生开发的电视直播软件 项目地址: https://gitcode.com/gh_mirrors/myt/mytv-android 在智能电视生态快速发展的今天,如何构建一个性能优异、体验流畅的直播应用成为开…

作者头像 李华