按element做开方后,再取倒数:。
vec_rsqrt(mask, dst, src, repeat_times, dst_rep_stride, src_rep_stride)
请参见参数说明。
dst与src的数据类型需要保持一致。
昇腾310 AI处理器,dst/src支持的数据类型为:Tensor(float16/float32)
昇腾910 AI处理器,dst/src支持的数据类型为:Tensor(float16/float32)
昇腾310P AI处理器AI Core,dst/src支持的数据类型为:Tensor(float16/float32)
昇腾310P AI处理器Vector Core,dst/src支持的数据类型为:Tensor(float16/float32)
无
昇腾310 AI处理器
昇腾910 AI处理器
昇腾310P AI处理器AI Core
昇腾310P AI处理器Vector Core
此样例是针对数据量较小、一次搬运就可以完成的场景,目的是让大家了解接口的功能,更复杂的数据量较大的样例可参见调用示例。
from tbe import tik tik_instance = tik.Tik() # 申请tensor src_gm = tik_instance.Tensor("float16", (128,), name="src_gm", scope=tik.scope_gm) src_ub = tik_instance.Tensor("float16", (128,), name="src_ub", scope=tik.scope_ubuf) dst_ub = tik_instance.Tensor("float16", (128,), name="dst_ub", scope=tik.scope_ubuf) dst_gm = tik_instance.Tensor("float16", (128,), name="dst_gm", scope=tik.scope_gm) # 将用户数据从gm搬运到ub tik_instance.data_move(src_ub, src_gm, 0, 1, 8, 0, 0) tik_instance.vec_rsqrt(128, dst_ub, src_ub, 1, 8, 8) # 将计算结果从ub搬运到目标gm tik_instance.data_move(dst_gm, dst_ub, 0, 1, 8, 0, 0) tik_instance.BuildCCE("test_vec_rsqrt", [src_gm], [dst_gm])
结果示例:
输入数据: [1, 2, 3, 4, ......, 128] 输出数据: [0.998, 0.705, 0.576, 0.499, ......, 0.08813]