CANN/asc-devkit ShiftRight右移Tensor
ShiftRight右移位数为Tensor【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品xAtlas A2 训练系列产品 / Atlas A2 推理系列产品xAtlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明源操作数内每个元素做右移。对无符号数据类型的源操作数做逻辑右移对有符号数据类型的源操作数做算术右移。逻辑右移为去掉最低位最高位填充为0。算术右移为去掉最低位最高位复制符号位。例数据类型uint16_t二进制数 1010101010101010逻辑右移一位结果为 0101010101010101数据类型int16_t二进制数 1010101010101010算术右移一位结果为 1101010101010101数据类型int16_t二进制数 1010101010101010算术右移三位结果为 1111010101010101。函数原型template typename T, typename U __aicore__ inline void ShiftRight(const LocalTensorT dst, const LocalTensorT src0, const LocalTensorU src1, const int32_t count)参数说明表 1模板参数说明参数名描述T源/目的操作数数据类型。Ascend 950PR/Ascend 950DT支持的数据类型为int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t。U源操作数数据类型。Ascend 950PR/Ascend 950DT支持的数据类型为int8_t、int16_t、int32_t、int64_t。表 2参数说明参数名称输入/输出说明dst输出目的操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。LocalTensor的起始地址需要32字节对齐。src0输入源操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。LocalTensor的起始地址需要32字节对齐。数据类型需要与目的操作数保持一致。src1输入存放右移位数的LocalTensor数据类型的字节数需要与源src0操作数Tensor中的元素数据类型的字节数相匹配不支持设置为负数。count输入参与计算的元素个数。返回值说明无约束说明操作数地址对齐要求请参见通用地址对齐约束。对于逻辑位移无符号数据类型如果位移量大于数据类型位宽则输出为0。对于算数位移有符号数据类型如果src0小于0src1大于0并且位移量大于数据类型位宽则输出-1如果src0大于0并且位移量大于数据类型位宽则输出0。调用示例AscendC::ShiftRight(dstLocal, srcLocal0, srcLocal1, 512);结果示例如下输入数据(srcLocal0): [1 2 3 ... 512] 输入数据(srcLocal1): [2 2 2 ... 2] 输出数据(dstLocal): [0 0 0 1 1 1 1 ... 128]【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考