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

CANN/HCOMM线程读取归约操作

HcommReadReduceOnThread

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

产品支持情况

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

[!NOTE]说明 针对Atlas A2 训练系列产品/Atlas A2 推理系列产品,仅支持Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框。

功能说明

从channel上的指定内存读数据,从src中读取长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。接口调用方为dst所在节点。

函数原型

int32_t HcommReadReduceOnThread(ThreadHandle thread, ChannelHandle channel, void *dst, const void *src, uint64_t count, HcommDataType dataType, HcommReduceOp reduceOp)

参数说明

参数名输入/输出描述
thread输入通信线程句柄,为通过HcclThreadAcquire接口获取到的threads。
ThreadHandle类型的定义可参见ThreadHandle。
channel输入通信通道句柄,为通过HcclChannelAcquire接口获取到的channels。
ChannelHandle类型的定义可参见ChannelHandle。
dst输出目的内存地址,使用HcclGetHcclBuffer、HcclChannelGetHcclBuffer获取到的内存。
src输入源内存地址,使用HcclGetHcclBuffer、HcclChannelGetHcclBuffer获取到的内存。
count输入元素个数。
dataType输入数据类型。
HcommDataType类型的定义请参见HcommDataType。
针对Ascend 950PR/Ascend 950DT,支持的数据类型:int8、int16、int32、uint8、uint16、uint32、fp16、fp32、bfp16。
针对Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持数据类型:int8、int16、int32、float16、float32、bfp16。
针对Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持数据类型:int8、int16、int32、float16、float32、bfp16。
reduceOp输入归约操作类型,支持:sum、max、min。
HcommReduceOp类型的定义请参见HcommReduceOp。

返回值

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

约束说明

调用示例

// 申请通信线程资源 CommEngine engine = CommEngine::COMM_ENGINE_CPU_TS; // Atlas A3 训练系列产品/Atlas A3 推理系列产品使用 CommEngine engine = CommEngine::COMM_ENGINE_AICPU_TS; // Ascend 950PR/Ascend 950DT使用 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 count = std::min(localBufferSize/sizeof(uint64_t), remoteBufferSize/sizeof(uint64_t)); // 将本端内存和对端内存数据进行reduce,输出到本端内存上 HcommReadReduceOnThread(thread, channel, localBuffer, remoteBuffer, count, HCOMM_DATA_TYPE_INT32, HCOMM_REDUCE_SUM);

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

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

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

相关文章:

  • CANN Add算子Kernel执行样例
  • CANN/cann-recipes-infer:Kimi-K2-Thinking NPU推理
  • IT疑难杂症诊疗室:从蓝屏到勒索软件全攻略
  • 三步解锁QQ音乐加密文件:qmc-decoder让你的音乐真正自由播放
  • 深度剖析Go语言,一文告诉你为什么大厂开始增加Go的招聘量
  • AI与Web3.0融合:技术路径、挑战与实践指南
  • 小红书内容采集终极指南:5种高效下载方案全解析
  • 网络交换芯片:从25.6T到51.2T的技术演进与挑战
  • XUnity Auto Translator:如何在5分钟内为任何Unity游戏添加多语言支持
  • CANN/ops-cv双三次上采样梯度算子
  • CANN ops-math clamp算子
  • CANN/hccl:自定义通信算子 - 点对点通信
  • CANN/GE添加控制输入API
  • 如何通过数据分析功能解锁数据深度洞察?
  • 如何高效使用Mermaid Live Editor:5个提升技术文档质量的专业技巧
  • 从三星泄密事件看企业AI安全:LLM数据风险与社会中心AI框架
  • XHS-Downloader:小红书内容采集与批量处理的专业级解决方案
  • 购买域名多少钱一个?大家一般都在哪个平台购买?
  • CANN/atvoss加法运算符API文档
  • Oracle数据库开发最佳实践:构建高效、可维护的应用程序
  • CANN/pyasc Gatherb数据收集API
  • IEDM 2013深度解析:相变存储器的可靠性挑战与产业转向
  • 别把 SFT 里的 `packing` 当成白捡吞吐的开关:TRL 里 `bfd`、`bfd_split`、`wrapped` 真正卖掉的不是同一种东西
  • 62.RTOS调度原理
  • CANN/AMCT大模型Cast量化
  • CANN/sip信号处理加速库CalOperation
  • CANN/hixl LLM-DataDist数据结构
  • 6G时代零接触式普适AI即服务架构:融合区块链与DRL的自动化AI交付
  • cann/runtime其他接口API文档
  • 顶会论文模块复现与二次创新:二次创新:将 DETR 的查询式检测头蒸馏进 YOLOv11,打造混合式 Anchor-free 头