SetFixSplit
功能说明
设置固定的baseM、baseN、baseK,单位为元素个数。
函数原型
1
|
int32_t SetFixSplit(int32_t baseM = -1, int32_t baseN = -1, int32_t baseK = -1) |
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
baseM |
输入 |
设置固定的baseM,默认值为-1,表示不设置固定baseM,由tiling函数进行计算。 |
baseN |
输入 |
设置固定的baseN,默认值为-1,表示不设置固定baseN,由tiling函数进行计算。 |
baseK |
输入 |
当前暂不支持设置固定baseK,默认值为-1。 |
返回值
-1表示设置失败; 0表示设置成功。
注意事项
- baseM*baseN个输出元素所占的存储空间大小不能超过L0C Buffer大小,即baseM * baseN * sizeof(outputType) <= L0CSize。
- baseM需要小于等于singleM以16个元素向上对齐的值,baseN需要小于等于singleN以16个元素向上对齐的值。例如singleM=12,则baseM需要小于等于16,同时baseM需要满足分形对齐的要求,所以baseM只能取16;如果baseM取其他超过16的值,获取Tiling将失败。
调用示例
auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); matmul_tiling::MatmulApiTiling tiling(ascendcPlatform); tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); tiling.SetBType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); tiling.SetCType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); tiling.SetBiasType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); tiling.SetShape(1024, 1024, 1024); tiling.SetOrgShape(1024, 1024, 1024); tiling.SetBias(true); tiling.SetFixSplit(16, 16, 16); // 设置固定的baseM、baseN、baseK tiling.SetBufferSpace(-1, -1, -1); optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData);
父主题: Matmul Tiling类