GetCoreNum
Function Usage
Obtains the BlockDim used after multi-core tiling.
Prototype
- MultiCoreMatmulTiling class
1int32_t GetCoreNum(int32_t &dim, int32_t &mDim, int32_t &nDim)
- BatchMatmulTiling class
1int32_t GetCoreNum(int32_t &dim, int32_t &mDim, int32_t &nDim, int32_t &batchM, int32_t &batchN)
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
dim |
Output |
Obtains the number of cores required for computation (dim = mDim x nDim). |
mDim |
Output |
Obtains the number of cores required in the M direction during computation. |
nDim |
Output |
Obtains the number of cores required in the N direction during computation. |
batchM |
Output |
Obtains the number of cores required in the batch M direction during computation. |
batchN |
Output |
Obtains the number of cores required in the batch N direction during computation. |
Returns
-1: setting failed; 0: setting succeeded.
Precautions
None
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); tiling.SetDim(1); 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.SetSingleShape(1024, 1024, 1024); tiling.SetOrgShape(1024, 1024, 1024); tiling.SetBias(true); tiling.SetBufferSpace(-1, -1, -1); optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // Obtains the BlockDim used after multi-core tiling. int32_t dim, mDim, nDim; int ret1 = tiling.GetCoreNum(dim, mDim, nDim); |
Parent topic: Matmul Tiling Class