CANN/asc-devkit HCCL初始化接口

CANN/asc-devkit HCCL初始化接口
InitV2产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明HCCL客户端初始化接口。该接口默认在所有核上工作用户也可以在调用前通过GetBlockIdx指定其在某一个核上运行。函数原型__aicore__ inline void InitV2(GM_ADDR context, const void *initTiling)参数说明表 1接口参数说明参数名输入/输出描述context输入通信上下文包含rankDimrankID等相关信息。通过框架提供的获取通信上下文的接口GetHcclContext获取context。initTiling输入通信域初始化Mc2InitTiling的地址。Mc2InitTiling在Host侧计算得出具体请参考表1 Mc2InitTiling参数说明由框架传递到Kernel函数中使用。返回值说明无约束说明本接口必须与SetCcTilingV2接口配合使用。调用本接口时必须使用标准C语法定义TilingData结构体的开发方式。调用本接口传入的initTiling参数不能使用Global Memory地址建议通过GET_TILING_DATA_WITH_STRUCT接口获取TilingData的栈地址。本接口不支持使用相同的context初始化多个HCCL对象。调用示例用户自定义TilingData结构体class UserCustomTilingData { AscendC::tiling::Mc2InitTiling initTiling; AscendC::tiling::Mc2CcTiling tiling; CustomTiling param; };在所有核上创建HCCL对象并调用InitV2接口初始化extern C __global__ __aicore__ void userKernel(GM_ADDR aGM, GM_ADDR workspaceGM, GM_ADDR tilingGM) { REGISTER_TILING_DEFAULT(UserCustomTilingData); GET_TILING_DATA_WITH_STRUCT(UserCustomTilingData,tilingData,tilingGM); GM_ADDR contextGM AscendC::GetHcclContext0(); Hccl hccl; hccl.InitV2(contextGM, tilingData); hccl.SetCcTilingV2(offsetof(UserCustomTilingData, tiling)); // 调用HCCL的Prepare、Commit、Wait、Finalize接口 }创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考