产品 |
是否支持 |
|---|---|
Ascend 950PR/Ascend 950DT |
√ |
√ |
|
√ |
|
√ |
|
√ |
|
√ |
|
x |
拷贝Tiling结构体,并返回指向拷贝后的Tiling结构体的指针。该宏适用于嵌套结构体场景,可拷贝结构体的子结构体成员变量。该宏将指定结构体拷贝至栈上,适用于频繁访问Tiling数据的场景,能够加快数据访问速度。
1 | COPY_TILING_WITH_STRUCT(tiling_struct, src_ptr, dst_ptr) |
参数 |
输入/输出 |
说明 |
|---|---|---|
tiling_struct |
输入 |
指定的结构体名称。 |
src_ptr |
输入 |
指向tiling_struct结构体的指针。 |
dst_ptr |
输出 |
返回拷贝后的指向tiling_struct结构体的指针。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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; GET_TILING_DATA_PTR_WITH_STRUCT(AddCustomTilingData, tilingDataPtr, tiling); if ASCEND_IS_AIV { COPY_TILING_WITH_STRUCT(VectorTilingStruct, tilingDataPtr->vectorTiling, vTilingStructPtr); // Vector侧使用VectorTilingStruct op.Init(x, y, z, vTilingStructPtr->totalLength, vTilingStructPtr->tileNum); op.Process(); } else { COPY_TILING_WITH_STRUCT(CubeTilingStruct, tilingDataPtr->cubeTiling, cTilingStructPtr); // Cube侧使用CubeTilingStruct op.Init(x, y, z, *cTilingStructPtr); op.Process(); } } |