CANN/asc-devkit多核矩阵乘法临时缓冲区大小获取
MultiCoreMatmulGetTmpBufSizeV2
【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
功能说明
多核Matmul Tiling调用GetTiling接口获取Tiling参数后,根据Tiling结构体信息获取L1 Buffer/Unified Buffer/L0C Buffer的使用大小。
函数原型
int32_t MultiCoreMatmulGetTmpBufSizeV2(AscendC::tiling::TCubeTiling& tiling, matmul_tiling::SysTilingTempBufSize& bufSize)参数说明
表1参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| tiling | 输入 | Matmul多核Tiling的结构体,即MultiCoreMatmulTiling对象得到的TCubeTiling结构体。 TCubeTiling为Kernel侧定义的Matmul TilingData,与入参为带AscendC::tiling命名空间的TCubeTiling结构体的GetTiling接口配合使用。 |
| bufSize | 输出 | 根据TCubeTiling结构体信息获取L1 Buffer/Unified Buffer/L0C Buffer的使用大小。SysTilingTempBufSize结构定义如下方代码所示。 |
struct SysTilingTempBufSize { int32_t ubSize = 0; // Unified Buffer大小 int32_t l1Size = 0; // L1 Buffer大小 int32_t l0cSize = 0; // L0C Buffer大小 };返回值说明
-1表示获取失败; 0表示获取成功。
约束说明
无
调用示例
auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); AscendC::tiling::TCubeTiling tilingData; ... // 初始化tilingData,详见MatmulTiling类使用说明 int ret = tiling.GetTiling(tilingData); // 获取Tiling参数 SysTilingTempBufSize bufSize; MultiCoreMatmulGetTmpBufSizeV2(tilingData, bufSize);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
