
Matmul Tiling类构造函数【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明用于创建一个Matmul单核Tiling对象或者多核Tiling对象或者BatchMatmul Tiling对象。函数原型带参构造函数需要传入硬件平台信息推荐使用这类构造函数来获得更好的兼容性。使用PlatformAscendC类传入信息explicit MatmulApiTiling(const platform_ascendc::PlatformAscendC ascendcPlatform)explicit MultiCoreMatmulTiling(const platform_ascendc::PlatformAscendC ascendcPlatform)explicit BatchMatmulTiling(const platform_ascendc::PlatformAscendC ascendcPlatform)使用PlatformInfo传入信息当platform_ascendc::PlatformAscendC无法在Tiling运行时获取时需要用户自行构造PlatformInfo结构体透传给MatmulApiTiling构造函数。explicit MatmulApiTiling(const PlatformInfo platform)explicit MultiCoreMatmulTiling(const PlatformInfo platform)无参构造函数MatmulApiTiling()MultiCoreMatmulTiling()BatchMatmulTiling()无参构造函数只支持如下产品型号Atlas A2训练系列产品/Atlas 800I A2推理产品Atlas A3 训练系列产品基类构造函数MatmulApiTiling、MultiCoreMatmulTiling和BatchMatmulTiling都继承自基类MatmulApiTilingBase其构造函数如下MatmulApiTilingBase()explicit MatmulApiTilingBase(const platform_ascendc::PlatformAscendC ascendcPlatform)explicit MatmulApiTilingBase(const PlatformInfo platform)参数说明表1参数说明参数名输入/输出描述ascendcPlatform输入传入硬件平台的信息PlatformAscendC定义请参见构造及析构函数。platform输入传入硬件版本以及AI Core中各个硬件单元提供的内存大小。PlatformInfo构造时通过构造及析构函数获取。PlatformInfo结构定义如下代码所示socVersion通过GetSocVersion获取并透传各类硬件存储空间大小通过GetCoreMemSize获取并透传。不推荐通过直接填值构造PlatformInfo的方式调用构造函数例如PlatformInfo(socVersion, 1024, 1024, ..);struct PlatformInfo { platform_ascendc::SocVersion socVersion; uint64_t l1Size 0; uint64_t l0CSize 0; uint64_t ubSize 0; uint64_t l0ASize 0; uint64_t l0BSize 0; };在实现Host侧的Tiling函数时platform_ascendc::PlatformAscendC用于获取一些硬件平台的信息来支撑Tiling的计算比如获取硬件平台的核数等信息。PlatformAscendC类提供获取这些平台信息的功能。与platform_ascendc::PlatformAscendC不同的是PlatformInfo则用于获取芯片版本、AI Core中各个硬件单元提供的内存大小等只针对单个AI Core的信息。约束说明无使用样例无参构造函数// 单核Tiling matmul_tiling::MatmulApiTiling tiling; tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); // 多核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);带参构造函数// 单核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 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);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考