文档首页>
Atlas 200 DK 开发者套件(1.0.7.alpha)>
TBE自定义算子开发指南>
接口参考>
单目(Gather模式)>
TIK API>
矢量计算>
算子代码实现接口>
通用定义
更新时间:2021-03-18 GMT+08:00
通用定义
功能说明
此为仅有一个源操作数时指令的通用格式。注:这不是真正的指令。
函数原型
instruction (mask, dst, src, repeat_times, dst_rep_stride, src_rep_stride)
PIPE: VECTOR
参数说明
注意事项
- repeat_times∈[0,255]。支持的数据类型为:Scalar(int16/int32/int64/uint16/uint32/uint64)、立即数(int)、Expr(int16/int32/int64/uint16/uint32/uint64),当repeat_times为立即数时,不支持0。
- 每个repeat的并行度取决于数据类型、芯片版本,以下以PAR代表并行度。
- dst_rep_stride/src_rep_stride
;单位为32B;支持的数据类型为:Scalar(int16/int32/int64/uint16/uint32/uint64)、立即数(int)、Expr(int16/int32/int64/uint16/uint32/uint64)。
- dst/src应声明在scope_ubuf中,且所支持的数据类型与芯片版本有关,如果不支持,工具会报错。
- dst和src的数据类型应一致。
- 为了节省地址空间,开发者可以定义一个Tensor,供源操作数与目的操作数同时使用(即地址重叠),各指令通用约束如下,具体以各指令约束为准。
- 对于单次repeat(repeat_times=1),且源操作数与目的操作数之间要求100%完全重叠,不支持部分重叠。
- 对于多次repeat(repeat_times>1),若源操作数与目的操作数之间存在依赖,即第N次迭代的目的操作数是第N+1次的源操作数,这种情况是不支持地址重叠的。
- 操作数地址偏移对齐要求请见通用约束。
父主题: 单目(Gather模式)
