vec_and
功能说明
每对elements按位与运算:
函数原型
vec_and(mask, dst, src0, src1, repeat_times, dst_rep_stride, src0_rep_stride, src1_rep_stride)
参数说明
请参见参数说明。
dst/src0/src1的数据类型需要保持一致。
Atlas 200/300/500 推理产品,dst/src0/src1支持的数据类型为:Tensor(uint16/int16)
Atlas 训练系列产品,dst/src0/src1支持的数据类型为:Tensor(uint16/int16)
Atlas推理系列产品(Ascend 310P处理器)AI Core,dst/src0/src1支持的数据类型为:Tensor(uint16/int16)
Atlas推理系列产品(Ascend 310P处理器)Vector Core,dst/src0/src1支持的数据类型为:Tensor(uint16/int16)
Atlas A2训练系列产品/Atlas 800I A2推理产品,dst/src0/src1支持的数据类型为:Tensor(uint16/int16)
Atlas 200/500 A2推理产品,dst/src0/src1支持的数据类型为:Tensor(uint8/int8/uint16/int16)
返回值
无
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas推理系列产品(Ascend 310P处理器)AI Core
Atlas推理系列产品(Ascend 310P处理器)Vector Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200/500 A2推理产品
注意事项
请参考注意事项。
调用示例
此样例是针对数据量较小、一次搬运就可以完成的场景,目的是让大家了解接口的功能,更复杂的数据量较大的样例可参见调用示例
from tbe import tik tik_instance = tik.Tik() src0_gm = tik_instance.Tensor("int16", (128,), name="src0_gm", scope=tik.scope_gm) src1_gm = tik_instance.Tensor("int16", (128,), name="src1_gm", scope=tik.scope_gm) dst_gm = tik_instance.Tensor("int16", (128,), name="dst_gm", scope=tik.scope_gm) src0_ub = tik_instance.Tensor("int16", (128,), name="src0_ub", scope=tik.scope_ubuf) src1_ub = tik_instance.Tensor("int16", (128,), name="src1_ub", scope=tik.scope_ubuf) dst_ub = tik_instance.Tensor("int16", (128,), name="dst_ub", scope=tik.scope_ubuf) # 将用户输入数据从gm搬运到ub tik_instance.data_move(src0_ub, src0_gm, 0, 1, 8, 0, 0) tik_instance.data_move(src1_ub, src1_gm, 0, 1, 8, 0, 0) tik_instance.vec_and(128, dst_ub, src0_ub, src1_ub, 1, 8, 8, 8) # 将计算结果从ub搬运到目标gm tik_instance.data_move(dst_gm, dst_ub, 0, 1, 8, 0, 0) tik_instance.BuildCCE(kernel_name="vec_and", inputs=[src0_gm, src1_gm], outputs=[dst_gm])
结果示例:
输入数据(src0_gm): [-9 0 -7 7 0 -7 -3 -4 4 -8 -9 5 0 5 0 -6 -1 -9 6 1 4 -4 5 9 6 9 4 8 3 7 -9 2 -1 5 1 -2 0 -3 -2 -3 0 4 0 4 -6 2 -8 5 -4 -7 2 -2 0 -3 1 7 -9 -2 6 -3 -1 6 -5 -7 9 3 -3 -7 5 -4 0 -4 7 -2 8 -9 7 -1 -2 0 2 9 0 -4 8 -8 7 0 3 4 0 5 -8 -5 3 -9 -8 -9 -7 9 4 0 7 0 -1 0 -1 1 -1 -8 -1 -5 3 3 -7 -7 -7 2 6 6 7 5 -2 -5 -3 -3 -6 -4] 输入数据(src1_gm): [-1 8 -9 0 -7 6 5 -7 -6 7 3 -1 6 7 8 1 -6 -8 -6 -4 0 5 7 -6 -2 5 -2 -3 0 -6 -9 -5 1 7 0 -6 8 -8 3 4 2 -7 -3 8 -3 -6 1 -8 9 -2 -4 0 -2 6 3 5 -9 0 -1 6 -3 -7 8 4 -2 -7 -3 3 -9 6 5 -3 8 -2 8 -5 9 -8 3 -6 -1 -7 0 -1 0 9 8 -7 4 8 -8 8 -6 -6 7 -3 2 -8 0 0 -3 1 -2 -6 -2 -7 -9 -1 5 1 1 -8 -1 9 -2 -5 6 9 2 -5 -4 9 9 -1 -7 6 9 5] 输出数据(dst_gm): [ -9 0 -15 0 0 0 5 -8 0 0 3 5 0 5 0 0 -6 -16 2 0 0 4 5 8 6 1 4 8 0 2 -9 2 1 5 0 -6 0 -8 2 4 0 0 0 0 -8 2 0 0 8 -8 0 0 0 4 1 5 -9 0 6 4 -3 0 8 0 8 1 -3 1 5 4 0 -4 0 -2 8 -13 1 -8 2 0 2 9 0 -4 0 8 0 0 0 0 0 0 -8 -6 3 -11 0 -16 0 0 4 0 6 0 -2 0 -9 1 5 0 1 -8 3 1 -8 -7 0 0 2 2 4 1 8 -5 -7 4 8 4]