
SetTensorA【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 训练系列产品/Atlas A2 推理系列产品支持Atlas 200I/500 A2 推理产品支持Atlas 推理系列产品AI Core支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持Kirin X90支持Kirin 9030支持功能说明设置矩阵乘的左矩阵A。函数原型__aicore__ inline void SetTensorA(const GlobalTensorSrcAT gm, bool isTransposeA false)__aicore__ inline void SetTensorA(const LocalTensorSrcAT leftMatrix, bool isTransposeA false)__aicore__ inline void SetTensorA(SrcAT aScalar)Atlas 推理系列产品AI Core不支持SetTensorA(SrcAT aScalar)接口原型。Atlas 200I/500 A2 推理产品不支持SetTensorA(SrcAT aScalar)接口原型。参数说明表1参数说明参数名输入/输出描述gm输入A矩阵。类型为GlobalTensor。SrcAT参数表示A矩阵的数据类型。不同型号支持的数据类型请参考gm和leftMatrix支持的数据类型。leftMatrix输入A矩阵。类型为LocalTensor支持的TPosition为TSCM/VECOUT。SrcAT参数表示A矩阵的数据类型。不同型号支持的数据类型请参考gm和leftMatrix支持的数据类型若设置TSCM首地址默认矩阵可全载已经位于TSCMIterate接口无需再进行GM-L1 BufferA1/B1搬运。aScalar输入A矩阵中设置的值。支持传入标量数据标量数据会被扩展为一个形状为[1, K]的tensor参与矩阵乘计算tensor的数值均为该标量值。例如开发者可以通过将aScalar设置为1来实现矩阵B在K方向的reduce sum操作。SrcAT参数表示A矩阵的数据类型。不同型号支持的数据类型请参考aScalar支持的数据类型。isTransposeA输入A矩阵是否需要转置。注意若A矩阵MatmulType的ISTRANS参数设置为true该参数可以为true也可以为false即运行时可以转置和非转置交替使用若A矩阵MatmulType的ISTRANS参数设置为false该参数只能设置为false若强行设置为true精度会有异常对于非half、非bfloat16_t输入类型的场景为了确保Tiling侧与Kernel侧L1 Buffer空间计算大小保持一致及结果精度正确该参数取值必须与Kernel侧定义A矩阵MatmulType的ISTRANS参数以及Tiling侧SetAType()接口的isTrans参数保持一致即上述三个参数必须同时设置为true或同时设置为false。Atlas 推理系列产品AI CoreA矩阵为int8_t数据类型时不支持转置即不支持该参数设置为true。Atlas A2 训练系列产品/Atlas A2 推理系列产品A矩阵为int4b_t数据类型时不支持转置即不支持该参数设置为true。Atlas A3 训练系列产品/Atlas A3 推理系列产品A矩阵为int4b_t数据类型时不支持转置即不支持该参数设置为true。返回值说明无约束说明传入的TensorA地址空间大小需要保证不小于singleM * singleK。gm和leftMatrix支持的数据类型Ascend 950PR/Ascend 950DT支持的数据类型为half、bfloat16_t、int8_t、float、fp8_e4m3fn_t、fp8_e5m2_t、hifloat8_t。Atlas A3 训练系列产品/Atlas A3 推理系列产品支持的数据类型为int4b_t、half、bfloat16_t、int8_t、float。Atlas A2 训练系列产品/Atlas A2 推理系列产品支持的数据类型为int4b_t、half、bfloat16_t、int8_t、float。Atlas 推理系列产品AI Core支持的数据类型为half、int8_t、float。Atlas 200I/500 A2 推理产品支持的数据类型为half、bfloat16_t、int8_t、float。Kirin X90支持的数据类型为half、int8_t。Kirin 9030支持的数据类型为half。aScalar支持的数据类型Ascend 950PR/Ascend 950DT支持的数据类型为half、float。Atlas A3 训练系列产品/Atlas A3 推理系列产品支持的数据类型为half、float。Atlas A2 训练系列产品/Atlas A2 推理系列产品支持的数据类型为half、float。Atlas 推理系列产品AI Core不支持该参数。Atlas 200I/500 A2 推理产品不支持该参数。Kirin X90支持的数据类型为half。Kirin 9030支持的数据类型为half。调用示例REGIST_MATMUL_OBJ(pipe, GetSysWorkSpacePtr(), mm, tiling); // 示例一左矩阵在Global Memory mm.SetTensorA(gm_a, isTransposeA); mm.SetTensorB(gm_b); if (tiling.isBias) { mm.SetBias(gmBias); } mm.IterateAll(gm_c); mm.End(); // 示例二左矩阵在Local Memory mm.SetTensorA(local_a, isTransposeA); // 示例三设置标量数据 mm.SetTensorA(scalar_a, isTransposeA);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考