CANN/hcomm通信通道销毁

CANN/hcomm通信通道销毁 HcommChannelDestroy【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持功能说明该接口为销毁通信通道的资源管理接口释放由HcommChannelCreate创建的通信通道及其占用的所有系统资源包括网络连接、同步信号、通信队列等。该接口支持批量销毁可在单次调用中释放多个通道提高资源释放效率。函数原型HcommResult HcommChannelDestroy(const ChannelHandle *channels, uint32_t channelNum);参数说明参数名输入/输出说明channels输入待销毁的通道句柄数组每个元素标识一个已创建的通信通道。ChannelHandle类型的定义请参见ChannelHandle。该参数不能为空指针数组中每个通道句柄必须是通过HcommChannelCreate创建的有效句柄未销毁的句柄。channelNum输入待销毁的通道数量。单位为“个”取值范围[1, 1048576]。该参数必须大于 0且等于channels数组中有效句柄的数量。返回值HcommResult接口成功返回0其他失败。约束说明channels数组长度需要与channelNum参数一致。对于通过不同引擎创建的通道可批量销毁。该销毁操作是原子性的要么全部成功要么在遇到第一个无效句柄时返回错误。支持的通信协议包括RoCE、UBC_TP、UBC_CTP、UBoE。调用示例EndpointHandle endpointHandle nullptr; // ... 创建端点的代码省略 // 创建多个通道 const uint32_t CHANNEL_NUM 4; HcommChannelDesc channelDescs[CHANNEL_NUM] {0}; ChannelHandle channels[CHANNEL_NUM] {0}; // 准备通道描述符并创建通道 for (uint32_t i 0; i CHANNEL_NUM; i) { // ... 填充 channelDescs[i] } HcommResult ret HcommChannelCreate(endpointHandle, COMM_ENGINE_CPU, channelDescs, CHANNEL_NUM, channels); if (ret ! 0) { printf(Failed to create channels, ret %d\n, ret); HcommEndpointDestroy(endpointHandle); return ret; } printf(%u channels created successfully\n, CHANNEL_NUM); // 使用通道进行通信 // ... // 批量销毁所有通道 ret HcommChannelDestroy(channels, CHANNEL_NUM); if (ret ! 0) { printf(Failed to destroy channels, ret %d\n, ret); } else { printf(All channels destroyed successfully\n); } // 销毁端点 HcommEndpointDestroy(endpointHandle);【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考