vec_axpy
功能说明
矢量每个element与标量求积后累加:
函数原型
vec_axpy(mask, dst, src, scalar, repeat_times, dst_rep_stride, src_rep_stride)
参数说明
请参见参数说明。且src和scalar操作数的类型需要保持一致 。
该接口支持的精度组合如下:
类型 |
float16精度组合 |
float32精度组合 |
fix精度组合 |
---|---|---|---|
Atlas 200/300/500 推理产品支持度 |
Y |
Y |
Y |
Atlas 训练系列产品支持度 |
Y |
Y |
Y |
Atlas推理系列产品AI Core支持度 |
Y |
Y |
Y |
Atlas推理系列产品Vector Core支持度 |
Y |
Y |
Y |
Atlas A2训练系列产品/Atlas 800I A2推理产品支持度 |
Y |
Y |
Y |
Atlas 200/500 A2推理产品支持度 |
Y |
Y |
N |
上表中各精度组合代表的含义:
- float16精度组合:src.dtype=float16;scalar.dtype=float16;dst.dtype=float16;并行度PAR/repeat=128
- float32精度组合:src.dtype=float32;scalar.dtype=float32;dst.dtype=float32;并行度PAR/repeat=64
- fix精度组合:src.dtype=float16;scalar.dtype=float16;dst.dtype=float32;并行度PAR/repeat=64
返回值
无
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas推理系列产品Vector Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200/500 A2推理产品
注意事项
- 请参见注意事项。
- 注意存在混合精度fmix的支持。
- fmix模式下,src每次迭代仅选取前4个block参与计算。
- Atlas 200/500 A2推理产品 不支持fmix模式
调用示例
此样例是针对数据量较小、一次搬运就可以完成的场景,目的是让大家了解接口的功能,更复杂的数据量较大的样例可参见调用示例
from tbe import tik tik_instance = tik.Tik() src_gm = tik_instance.Tensor("float16", (128,), name="src_gm", scope=tik.scope_gm) dst_gm = tik_instance.Tensor("float32", (64,), name="dst_gm", scope=tik.scope_gm) src_ub = tik_instance.Tensor("float16", (128,), name="src_ub", scope=tik.scope_ubuf) dst_ub = tik_instance.Tensor("float32", (64,), name="dst_ub", scope=tik.scope_ubuf) # 将用户输入数据从gm搬运到ub tik_instance.data_move(src_ub, src_gm, 0, 1, 8, 0, 0) # 为dst ubuf赋初始值10 tik_instance.vec_dup(64, dst_ub, 10, 1, 8) tik_instance.vec_axpy(64, dst_ub, src_ub, 2.0, 1, 8, 4) # 将计算结果从ub搬运到gm tik_instance.data_move(dst_gm, dst_ub, 0, 1, 8, 0, 0) tik_instance.BuildCCE(kernel_name="vec_axpy", inputs=[src_gm], outputs=[dst_gm])
结果示例:
输入数据(src_gm): [ 4.8 5.363 -8.375 -0.01346 -9.195 -6.03 -4.336 -8.73 4.715 -0.805 2.168 6.094 -5.414 -8.16 8.86 -2.135 0.2925 -4.21 4.18 8.94 -7.797 -4.54 -2.082 -1.0625 6.38 7.918 -7.52 -2.055 5.86 -4.562 0.9116 8.09 2.11 -1.92 9.01 -5.24 3.81 2.264 9.04 -9.305 2.771 -4.445 1.704 -5.65 1.71 -8. -3.076 -8.86 5.258 -3.928 1.929 5.273 -9.734 1.14 -8.71 -3.385 -9.85 -3.643 4.188 -4.406 -6.008 1.957 -4.496 1.547 5.207 -7.957 2.145 8.36 -9.375 -0.1924 9.54 8.16 0.8003 8.34 -2.846 3.871 -8.8 -9.95 -8.414 5.504 9.414 1.483 -6.547 6.84 0.5835 -0.1847 -2.719 -4.773 -4.56 0.816 -1.507 -7.633 -3.885 -0.1384 -8.945 9.78 -5.13 -3.174 -1.487 -6.984 4.76 -5.758 9.34 -4.35 -4.05 -7.36 -1.642 -7.832 -4.977 -5.395 -8.23 6.438 1.207 -8.484 2.71 -9.664 3.709 -7.832 -4.965 -7.49 -4.887 7.09 -7.887 -4.785 -3.54 9.44 5.32 7.914 ] 输出数据(dst_gm): [19.601562 20.726562 -6.75 9.9730835 -8.390625 -2.0625 1.328125 -7.453125 19.429688 8.389648 14.3359375 22.1875 -0.828125 -6.3125 27.71875 5.7304688 10.584961 1.578125 18.359375 27.875 -5.59375 0.921875 5.8359375 7.875 22.757812 25.835938 -5.0390625 5.890625 21.71875 0.875 11.823242 26.1875 14.21875 6.1601562 28.015625 -0.4765625 17.621094 14.527344 28.078125 -8.609375 15.542969 1.109375 13.408203 -1.296875 13.419922 -6. 3.8476562 -7.71875 20.515625 2.1445312 13.857422 20.546875 -9.46875 12.279297 -7.421875 3.2304688 -9.703125 2.7148438 18.375 1.1875 -2.015625 13.9140625 1.0078125 13.09375 ]
父主题: 标量三目