MultiCoreMatmulGetTmpBufSize

Function

Obtains the used L1 Buffer, Unified Buffer, or L0C Buffer size based on the tiling structure information after the multi-core Matmul tiling calls the GetTiling API to obtain tiling parameters.

Prototype

1
int32_t MultiCoreMatmulGetTmpBufSize(optiling::TCubeTiling &tiling, matmul_tiling::SysTilingTempBufSize &bufSize)

Parameters

Table 1 Parameters

Parameter

Input/Output

Description

tiling

Input

Matmul multi-core tiling structure, which is the TCubeTiling structure obtained by the MultiCoreMatmulTiling object.

bufSize

Output

Used L1 Buffer, Unified Buffer, or L0C Buffer size obtained based on the TCubeTiling structure information. The SysTilingTempBufSize structure is defined as follows:

1
2
3
4
5
struct SysTilingTempBufSize {
    int32_t ubSize = 0; // Size of the unified buffer
    int32_t l1Size = 0; // Size of the L1 buffer
    int32_t l0cSize = 0; // Size of the L0C buffer
};

Returns

-1: setting failed; 0: setting succeeded.

Restrictions

None

Example

1
2
3
4
5
6
7
auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo());
matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); 
optiling::TCubeTiling tilingData;
...  // Initialize tilingData. For details, see the usage description of MatmulTiling APIs.
int ret = tiling.GetTiling(tilingData);    // Obtain tiling parameters.
SysTilingTempBufSize bufSize;
MultiCoreMatmulGetTmpBufSize(tilingData, bufSize);