Constructor
Function Usage
Creates a Matmul single-core tiling object, multi-core tiling object, or BatchMatmul tiling object.
Prototype
- Parameterized constructor, which requires the hardware platform information to be passed. You are advised to use this type of constructor to achieve better compatibility.
- Use PlatformAscendC to pass in information.
1explicit MatmulApiTiling(const platform_ascendc::PlatformAscendC& ascendcPlatform)
1explicit MultiCoreMatmulTiling(const platform_ascendc::PlatformAscendC& ascendcPlatform)
1explicit BatchMatmulTiling(const platform_ascendc::PlatformAscendC &ascendcPlatform)
- Use PlatformInfo to pass in information.If platform_ascendc::PlatformAscendC fails to be obtained during tiling running, you need to construct the PlatformInfo structure and transparently transmit it to the MatmulApiTiling constructor.
1explicit MatmulApiTiling(const PlatformInfo& platform)
1explicit MultiCoreMatmulTiling(const PlatformInfo &platform)
- Use PlatformAscendC to pass in information.
- Base class constructor
MatmulApiTiling, MultiCoreMatmulTiling, and BatchMatmulTiling are inherited from the base class MatmulApiTilingBase. Their constructors are as follows:
1explicit MatmulApiTilingBase(const platform_ascendc::PlatformAscendC& ascendcPlatform)
1explicit MatmulApiTilingBase(const PlatformInfo& platform)
Parameters
Parameter |
Input/Output |
Description |
||
|---|---|---|---|---|
ascendcPlatform |
Input |
Hardware platform information that is passed. For details about the definition of PlatformAscendC, see Overview. |
||
platform |
Input |
Passed hardware version and memory size of each hardware unit in the AI Core. The value of is obtained through Overview during PlatformInfo construction. The PlatformInfo structure is defined as follows. socVersion is obtained through GetSocVersion and transparently transmitted. Hardware storage space sizes are obtained through GetCoreMemSize and transparently transmitted.
You are not advised to invoke the constructor by directly typing a value to construct PlatformInfo, for example, PlatformInfo (, 1024, 1024, ...). |
platform_ascendc::PlatformAscendC is used to obtain hardware platform information, such as the number of cores on a hardware platform for tiling computation to implement the Tiling function on the host. The PlatformAscendC class provides a function for obtaining such platform information.
Different from platform_ascendc::PlatformAscendC, PlatformInfo is used to obtain information specific to a single AI Core, such as the chip version and the memory size provided by each hardware unit in the AI Core.
Precautions
None
Examples
- Constructor without parameters
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// Single-core tiling matmul_tiling::MatmulApiTiling tiling; tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); ... optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed // Multi-core tiling matmul_tiling::MultiCoreMatmulTiling tiling; tiling.SetDim(1); ... optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed // BatchMatmul Tiling matmul_tiling::BatchMatmulTiling bmmTiling; bmmTiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); ... optiling::TCubeTiling tilingData; int ret = bmmTiling.GetTiling(tilingData); // if ret = -1, gen tiling failed
- Parameterized constructor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// Single-core 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); ... optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed // Multi-core tiling auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); tiling.SetDim(1); ... optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed // BatchMatmul Tiling auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); matmul_tiling::BatchMatmulTiling bmmTiling(ascendcPlatform); bmmTiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); ... optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed