Matmul Tiling 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 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 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 information.
- Constructor without parameters
1MatmulApiTiling()
1MultiCoreMatmulTiling()
1BatchMatmulTiling()
For constructors without parameters, only the following product models are supported:
Atlas A2 training product /Atlas A2 inference product Ascend 910C AI Processor
- Base class constructor
MatmulApiTiling, MultiCoreMatmulTiling, and BatchMatmulTiling are inherited from the base class MatmulApiTilingBase. Their constructors are as follows:
1MatmulApiTilingBase()
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 Constructor and Destructor. |
||
platform |
Input |
Passed hardware version and memory size of each hardware unit in the AI Core. The value is obtained through Constructor and Destructor 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 advised not to invoke the constructor by directly filling a value to construct PlatformInfo, for example, PlatformInfo(socVersion, 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.
Restrictions
None
Examples
- Constructor without parameters
1 2 3 4 5 6 7 8 9 10 11
// Single-core tiling matmul_tiling::MatmulApiTiling tiling; tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); // Multi-core tiling matmul_tiling::MultiCoreMatmulTiling tiling; tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); // BatchMatmul Tiling matmul_tiling::BatchMatmulTiling bmmTiling; bmmTiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16);
- Parameterized constructor
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// 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); // Multi-core tiling auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); // 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);