
HcclGroupStart【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm产品支持情况Ascend 950PR/Ascend 950DT不支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 推理系列产品不支持Atlas 训练系列产品不支持[!NOTE]说明 针对Atlas A2 训练系列产品/Atlas A2 推理系列产品仅支持Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框。功能说明开始一个组调用。在HcclGroupStart和HcclGroupEnd之间调用多个函数作为一个整体执行组调用支持以下三种场景单进程多线程管理NPU支持调用通信域管理接口HcclCommInitClusterInfo、HcclCommInitClusterInfoConfig、HcclCommInitRootInfo、HcclCommInitRootInfoConfig 、HcclCommDestroy。合并多个集合通信。合并多个点对点通信。函数原型HcclResult HcclGroupStart()参数说明无返回值HcclResult接口成功返回HCCL_SUCCESS其他失败。约束说明仅支持在单机环境中使用组调用接口进行通信域管理。在一个组调用中通信域管理、集合通信、点对点通信类型的接口不可混用。合并多个点对点通信时不支持调用HcclBatchSendRecv接口。HcclGroupStart必须和HcclGroupEnd配套使用HcclGroupStart在前HcclGroupEnd在后。调用示例示例一单进程多线程管理NPUHcclComm hccl_comms[devCount]; HcclGroupStart(); for(int i 0; i lt; ndev; i){ // aclrtSetDevice(i); HcclCommInitRootInfo(devCount, rootInfo, global_rank, (hccl_comms[i])); } HcclGroupEnd();示例二合并多个集合通信操作HcclGroupStart(); HCCLCHECK(HcclReduceScatter(sendBuf, recvBuf, 1, HCCL_DATA_TYPE_FP32, HCCL_REDUCE_SUM, hcclComm, stream)); HCCLCHECK(HcclAllGather(recvBuf, sendBuf, 1, HCCL_DATA_TYPE_FP32, hcclComm, stream)); HcclGroupEnd();示例三合并多个点对点通信HcclGroupStart(); for(int i 0; i lt; devCount; i){ HCCLCHECK(HcclSend(sendBuf[i], count, HCCL_DATA_TYPE_FP32, i, hcclComm, stream)); } for(int i 0; i lt; devCount; i){ HCCLCHECK(HcclRecv(recvBuf[i], count, HCCL_DATA_TYPE_FP32, i, hcclComm, stream)); } HcclGroupEnd();【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考