GET_TILING_DATA_WITH_STRUCT产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品√Atlas 推理系列产品 AI Core√Atlas 推理系列产品 Vector Core√Atlas 训练系列产品x功能说明使用该接口指定结构体名称可获取指定的tiling信息并填入对应的Tiling结构体中此函数会以宏展开的方式进行编译。与GET_TILING_DATA的区别是GET_TILING_DATA只能获取默认注册的结构体该接口可以根据指定的结构体名称获取对应的结构体常用于针对不同的TilingKey注册了不同结构体的情况下。函数原型GET_TILING_DATA_WITH_STRUCT(struct_name, tiling_data, tiling_arg)参数说明参数输入/输出说明struct_name输入指定的结构体名称。tiling_data输出返回指定Tiling结构体变量。tiling_arg输入此参数为算子入口函数处传入的tiling参数。约束说明本函数需在算子Kernel代码处使用并且传入的tiling_data参数不需要声明类型。暂不支持Kernel直调工程。调用示例extern C __global__ __aicore__ void add_custom(__gm__ uint8_t *x, __gm__ uint8_t *y, __gm__ uint8_t *z, __gm__ uint8_t *tiling) { KernelAdd op; if (TILING_KEY_IS(1)) { GET_TILING_DATA_WITH_STRUCT(Add_Struct_Special, tilingData, tiling); // 使用算子指定注册的结构体 op.Init(x, y, z, tilingData.totalLengthSpecial, tilingData.tileNumSpecial); } else { GET_TILING_DATA(tilingData, tiling); // 使用算子默认注册的结构体 op.Init(x, y, z, tilingData.totalLength, tilingData.tileNum); } if (TILING_KEY_IS(1)) { op.Process(); } else if (TILING_KEY_IS(2)) { op.Process(); } else if (TILING_KEY_IS(3)) { op.Process(); } }创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考