[昇腾CANN自定义算子]TIK算子矢量计算接口vec_add

本文详细介绍了如何利用AICore的VectorUnit进行矢量加法运算,重点阐述了mask参数的作用,以及dst, src0, src1等Tensor的定义和处理。在CANN5.0版本中,通过设置repeat_times和不同步长,可以有效地处理不同大小的数据块,实现高性能计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用AI Core的Vector Unit,进行矢量加计算。

vec_add(mask, dst, src0, src1, repeat_times, dst_rep_stride, src0_rep_stride, src1_rep_stride)
  • mask
    通常用这个参数的连续模式,就是设置前N个数据参与计算。
    每次迭代可以计算256字节的数据。
    比如,当计算float16类型数据时,每个数据2字节,所以mask设置成128时,就可以在一个迭代中计算256字节的数据。

  • dst, src0, src1
    输出与输入Tensor。
    通常事先通过tik_instance.Tensor定义定义好。

  • repeat_times
    迭代次数。(最大值为255)
    比如当Tensor大小是512字节时,因为一次迭代会计算256字节,所以应该迭代2次。

  • dst_rep_stride, src0_rep_stride, src1_rep_stride
    步长。两次迭代头与头之间的block数。
    通常连续计算时,设置为8。(32B*8=256B)


注:当前版本为CANN 5.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值