CANN/hcomm 通道状态查询
HcommChannelGetStatus【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持功能说明该接口用于查询通信通道的状态支持批量查询多个通道的连接状态用于在通道创建后、通信操作前确认通道是否已就绪。该接口采用轮询机制调用方需要持续调用直到所有通道都返回READY状态。该接口主要用于通道连接建立阶段的同步等待。函数原型HcommResult HcommChannelGetStatus(const ChannelHandle *channelList, uint32_t listNum, int32_t *statusList);参数说明参数名输入/输出说明channelList输入待查询状态的通道句柄数组每个元素标识一个已创建的通信通道。ChannelHandle类型的定义请参见ChannelHandle。。该参数不能为空指针数组中每个通道句柄必须是通过HcommChannelCreate创建的有效句柄。listNum输入待查询的通道数量。单位为“个”取值范围[1, 1048576]。该参数必须大于 0。statusList输出通道状态数组用于返回每个通道的当前状态与channelList一一对应。该参数不能为空指针。调用者分配的数组至少包含listNum个元素的空间。返回值HcommResult接口成功返回0其他失败。约束说明channelList数组长度需要与listNum 参数一致。statusList[i]与channelList[i]一一对应表示第i个通道的状态。支持的通信协议包括RoCE、UBC_TP、UBC_CTP、UBoE。调用示例uint32_t channelNum 50; std::vectorChannelHandle channels(channelNum); // 参考 HcommChannelCreate 进行 Channel 创建 ... uint32_t timeOut 0; while (timeOut 1000) { CHK_RET(HcommChannelGetStatus(channels, channelNum, statuses)); result 0; for (int i 0; i channelNum; i) { result | statuses[i]; } if (result 0) {break;} timeOut 10; } // 通道就绪执行通信操作 // ...【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考