InitV2
产品支持情况
产品 |
是否支持 |
---|---|
|
√ |
|
√ |
|
x |
|
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函数中使用。 |
返回值说明
无
约束说明
- 本接口必须与SetCcTilingV2接口配合使用。
- 调用本接口时,必须使用标准C++语法定义TilingData结构体的开发方式,具体请参考使用标准C++语法定义Tiling结构体。
- 调用本接口传入的initTiling参数,不能使用Global Memory地址,建议通过GET_TILING_DATA_WITH_STRUCT接口获取TilingData的栈地址。
- 本接口不支持使用相同的context初始化多个Hccl对象。
调用示例
用户自定义TilingData结构体:
1 2 3 4 5 |
class UserCustomTilingData { Mc2InitTiling initTiling; Mc2CcTiling tiling; CustomTiling param; }; |
在所有核上创建Hccl对象,并调用InitV2接口初始化:
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接口 } |
父主题: Hccl