FilesLast commitLast update
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
README

RightShift

产品支持情况

产品 是否支持
Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件 √

功能说明

  • 算子功能:对输入 x 中每个元素,按照 y 对应位置的移位位数进行按位右移。

  • 计算公式:

    zi=xi≫yiz_i = x_i \gg y_i

  • x 与 y 支持 broadcast,输出 z 的 shape 为二者 broadcast 后的 shape。

  • 对有符号整数执行算术右移;对无符号整数执行逻辑右移。

  • 当移位位数非法时,输出遵循以下规则:

    • 有符号整数:若 y_i < 0 或 y_i >= bitWidth,则 x_i < 0 时输出 -1,否则输出 0。
    • 无符号整数:若 y_i >= bitWidth,则输出 0。

参数说明

参数名 输入/输出 描述 数据类型 数据格式
x 输入 待右移的输入张量,对应公式中的 x。 INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64 ND
y 输入 右移位数张量,对应公式中的 y,需要与 x 满足 broadcast 关系。 INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64 ND
z 输出 右移计算结果,对应公式中的 z,shape 需要与 x 和 y broadcast 后的 shape 一致。 INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64 ND

约束说明

  • 仅支持整数类型:INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64。
  • x、y、z 均支持 0-8 维 Tensor,0 维表示标量。
  • x 与 y 需要满足 broadcast 关系,z 的 shape 需要等于 broadcast 后的 shape。
  • 支持空 Tensor,元素个数为 0 时跳过计算并返回空结果。
  • 支持非连续 Tensor,aclnn 接口内部会进行连续化处理。
  • aclnn 接口支持 x 与 y 进行类型推导,推导后的数据类型需要能转换为 z 的数据类型。

调用说明

调用方式 调用样例 说明
aclnn 调用 test_aclnn_right_shift 通过 aclnnRightShift 两段式接口调用 RightShift 算子。

参考资源

  • 接口:aclnnRightShiftGetWorkspaceSize / aclnnRightShift
  • Kernel:right_shift

贡献说明

贡献者 贡献方 贡献算子 贡献时间 贡献内容
CyndiZ 个人开发者 RightShift 2026/7/2 RightShift算子适配开源仓