华为CANN/hcomm CCU同步通知接口
NotifyRecord【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持功能说明在CCU kernel内通过channel向远端die发送同步信号的生产者侧接口。运行期通过channel发送die-to-die信号包同device跨die走HCCS跨device/跨节点走RDMA置位远端die对应的notify位。适用于跨die场景同device跨die、同节点跨device、跨节点对应消费侧为NotifyWait。函数原型namespace AscendC { namespace ccu { CcuResult NotifyRecord(ChannelHandle channel, uint32_t remoteNotifyIdx, uint16_t mask 1); } // namespace ccu } // namespace AscendC参数说明参数名输入/输出描述channel输入通信通道句柄为通过建链流程获取的通道资源。ChannelHandle类型的定义可参见ChannelHandle。channel绑定的die必须与本kernel当前die一致。remoteNotifyIdx输入远端notify槽位索引为channel两端协商约定的编号0-based对应消费侧NotifyWait的localNotifyIdx两侧数字必须完全一致。mask输入16位事件掩码指定要置位的bit。默认值为1。必须与消费侧NotifyWait的mask一致。返回值CcuResult接口成功返回CCU_SUCCESS其他值表示失败。返回值说明CCU_SUCCESS操作成功。CCU_E_PTR当前不存在处于注册中的kernel接口在kernel注册阶段之外被调用。[!NOTE]说明 本接口在调用处返回CCU_SUCCESS不校验channel/remoteNotifyIdxchannel绑定die的一致性由HcommCcuKernelRegister统一校验依据本kernel期间用到的全部channel不一致时返回CCU_E_PARA。本接口不拦截硬件Loop body内调用请勿在Loop body内使用参见Loop。约束说明本kernel内所有channel必须属于同一die该一致性由HcommCcuKernelRegister统一校验不一致返回CCU_E_PARA。remoteNotifyIdx与消费侧NotifyWait的localNotifyIdx必须使用相同数值由通信双方在协议层约定框架不自动配对。NotifyRecord是生产侧消费侧NotifyWait必须在NotifyRecord之后到达硬件上先Record 后Wait生产先于消费。若消费侧等不到对应的NotifyRecord未发起、localNotifyIdx/mask不匹配等将永久阻塞导致硬件级死锁。调用示例using namespace AscendC::ccu; // 场景die A 完成写操作后通知die B 可以读取数据 // die A 的CCU kernel函数体内 CcuResult DieSenderKernel(CcuKernelArg arg) { auto *params static_castMyKernelArg *(arg); // CcuKernelArg 为void*先转型为用户入参结构体 // ... 执行写操作将数据写入对端内存 ... // 通知die B 的notify槽位3bit0 已完成 NotifyRecord(params-channel, /*remoteNotifyIdx*/3, 0x1); return CCU_SUCCESS; } // die B 的CCU kernel函数体内与die A 的kernel 对应 CcuResult DieReceiverKernel(CcuKernelArg arg) { auto *params static_castMyKernelArg *(arg); // CcuKernelArg 为void*先转型为用户入参结构体 // 等待来自die A 的信号本地notify槽位3的bit0 NotifyWait(params-channel, /*localNotifyIdx*/3, 0x1); // 此后可安全读取die A 写入的数据 return CCU_SUCCESS; }【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻