Skip to content

asc_and(废弃)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

该接口的浮点类型重载已废弃,请根据数据类型使用等位宽的asc_and整数重载替代。

根据mask对源操作数src0src1执行按位与(&)操作,将结果写入目的操作数dst

计算公式如下:

本接口仅在AIV上生效。

函数原型

C
__simd_callee__ inline void asc_and(vector_<dtype>& dst,
                                    vector_<dtype> src0,
                                    vector_<dtype> src1,
                                    vector_bool mask)

dtype支持数据类型

dtype取值为:fp8_e5m2_tfp8_e4m3fn_thalfbfloat16_tfloat

函数原型典型示例

C
__simd_callee__ inline void asc_and(vector_half& dst,
                                    vector_half src0,
                                    vector_half src1,
                                    vector_bool mask)

参数说明

表1 参数说明

参数名输入/输出描述
dst输出目的操作数(矢量数据寄存器)。
src0输入源操作数(矢量数据寄存器)。
src1输入源操作数(矢量数据寄存器)。
mask输入源操作数掩码(掩码寄存器)。对应位置为1时参与计算,为0时不参与计算,未参与计算的元素在输出中置0。

返回值说明

约束说明

  • 本接口在非AIV上调用直接返回。
  • mask需通过掩码设置接口预先赋值后再传入;未赋值的掩码寄存器内容不确定,会导致有效元素位置错误。
  • 参与计算的元素个数为VL除以sizeof(dtype)
  • mask比特位为0时,dst对应比特位写0。

调用示例

以下示例使用half类型的废弃重载,仅用于说明兼容调用。新代码请按功能说明迁移至等位宽的整数重载。

C++
vector_half dst;
vector_half src0;
vector_half src1;
vector_bool mask = asc_create_mask_b16(PAT_ALL);
asc_and(dst, src0, src1, mask);

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区