vec_ln
功能说明
按element取自然对数:。
函数原型
vec_ln(mask, dst, src, repeat_times, dst_rep_stride, src_rep_stride)
参数说明
请参见参数说明。
dst与src的数据类型需要保持一致。
Atlas 200/300/500 推理产品,dst与src支持的数据类型为:Tensor(float16)
Atlas 训练系列产品,dst与src支持的数据类型为:Tensor(float16/float32)
Atlas推理系列产品AI Core,dst与src支持的数据类型为:Tensor(float16/float32)
Atlas推理系列产品Vector Core,dst与src支持的数据类型为:Tensor(float16/float32)
Atlas A2训练系列产品/Atlas 800I A2推理产品,dst与src支持的数据类型为:Tensor(float16/float32)
Atlas 200/500 A2推理产品,dst与src支持的数据类型为:Tensor(float16/float32)
返回值
无。
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas推理系列产品Vector Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200/500 A2推理产品
注意事项
- src的数值需要为正数;负数与零非法,若输入负数或零,可能会产生未知结果。
- 对于Atlas 200/300/500 推理产品,使用该接口处理float16类型的数据时,如果输入数据在(0, 5/3)区间,计算精度不满足双千分之一,如果对精度有更高要求,建议使用vec_ln_high_preci接口。
- 其它注意事项请参考注意事项。
调用示例
此样例是针对数据量较小、一次搬运就可以完成的场景,目的是让大家了解接口的功能,更复杂的数据量较大的样例可参见调用示例。
from tbe import tik tik_instance = tik.Tik() # 申请tensor src_gm = tik_instance.Tensor("float16", (128,), tik.scope_gm, "src_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,), tik.scope_gm, "dst_gm") # 将用户输入数据从gm搬运到ub tik_instance.data_move(src_ub, src_gm, 0, 1, 8, 0, 0) tik_instance.vec_ln(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(kernel_name="vec_ln", inputs=[src_gm], outputs=[dst_gm])
结果示例:
输入数据: [1, 2, 3, 4, ......, 128] 输出数据: [0, 0.6931, 1.0986, 1.3863, ......, 4.8520]
父主题: 单目