CANN/asc-devkit SetScaleAType矩阵设置

SetScaleAType

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

功能说明

MxMatmul场景,设置scaleA矩阵的位置、数据格式、是否转置等信息,这些信息需要和Kernel侧的设置保持一致。如果不调用本接口,scaleA矩阵的信息将与SetAType中设置的A矩阵的信息保持一致。

函数原型

int32_t SetScaleAType(TPosition scalePos, CubeFormat scaleType, bool isScaleTrans = false)

参数说明

表1参数说明

参数名输入/输出描述
scalePos输入scaleA矩阵的内存逻辑位置。

针对Ascend 950PR/Ascend 950DT,scaleA矩阵可设置为TPosition::GM,TPosition::VECOUT,TPosition::TSCM。
scaleType输入scaleA矩阵的物理排布格式。

针对Ascend 950PR/Ascend 950DT,scaleA矩阵可设置为CubeFormat::ND,CubeFormat::NZ。
isScaleTrans输入scaleA矩阵是否转置。参数支持的取值如下:
true:scaleA矩阵转置;
false:默认值,scaleA矩阵不转置。

返回值说明

-1表示设置失败; 0表示设置成功。

约束说明

调用示例

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); // 设置scaleA矩阵,buffer位置为GM,数据格式为ND,不转置 tiling.SetScaleAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, false);

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考