产品 |
是否支持 |
|---|---|
Ascend 950PR/Ascend 950DT |
√ |
√ |
|
√ |
|
x |
|
x |
|
x |
|
x |
HCCL客户端初始化接口。该接口默认在所有核上工作,用户也可以在调用前通过GetBlockIdx指定其在某一个核上运行。
1 | __aicore__ inline void InitV2(GM_ADDR context, const void *initTiling) |
参数名 |
输入/输出 |
描述 |
|---|---|---|
context |
输入 |
通信上下文,包含rankDim,rankID等相关信息。通过框架提供的获取通信上下文的接口GetHcclContext获取context。 |
initTiling |
输入 |
通信域初始化Mc2InitTiling的地址。Mc2InitTiling在Host侧计算得出,具体请参考表1 Mc2InitTiling参数说明,由框架传递到Kernel函数中使用。 |
无
用户自定义TilingData结构体:
1 2 3 4 5 | class UserCustomTilingData { AscendC::tiling::Mc2InitTiling initTiling; AscendC::tiling::Mc2CcTiling tiling; CustomTiling param; }; |
1 2 3 4 5 6 7 8 9 10 11 | 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::GetHcclContext<0>(); Hccl hccl; hccl.InitV2(contextGM, &tilingData); hccl.SetCcTilingV2(offsetof(UserCustomTilingData, tiling)); // 调用HCCL的Prepare、Commit、Wait、Finalize接口 } |