data_move

功能说明

在src与dst间进行数据传输。支持src与dst的类型同时为Tensor。

Atlas 200/300/500 推理产品,支持UB->UB/UB->OUT/OUT->UB/OUT->L1

Atlas 训练系列产品,支持UB->UB/UB->OUT/OUT->UB/OUT->L1

Atlas推理系列产品AI Core,支持UB->UB/UB->OUT/OUT->UB/OUT->L1

Atlas推理系列产品Vector Core,支持UB->OUT/UB->UB/OUT->UB

Atlas A2训练系列产品,支持UB->UB/UB->OUT/OUT->UB/OUT->L1/L1->OUT

Atlas 200I/500 A2推理产品,支持UB->UB/UB->OUT/OUT->UB/OUT->L1/L1->OUT

函数原型

data_move (dst, src, sid, nburst, burst, src_stride, dst_stride, *args, **argv)

参数说明

表1 参数说明

参数名称

输入/输出

含义

dst

输出

目的操作数,支持数据类型参考表2

若dst的scope为L1, 则要求地址偏移32Byte对齐

若dst的scope为UB,则要求地址偏移block_size对齐

src

输入

源操作数,支持数据类型参考表2

若src的scope为L1, 则要求地址偏移32Byte对齐

若src的scope为UB, 则要求地址偏移block_size对齐

sid

输入

SMMU ID,为硬件保留接口,输入0即可,取值范围:sid∈[0, 15],支持数据类型:Scalar(int32)、立即数(int32)、Expr(int32)。

nburst

输入

传输数据片段数据,即需要执行的搬运次数,取值范围:nburst∈[1, 4095],支持的数据类型为:Scalar(int32)、立即数(int32)、Expr(int32)。

burst

输入

每次搬运的连续传输数据片段长度,取值范围:burst∈[1, 65535],单位:32B。

支持的数据类型为:Scalar(int16/int32/int64/uint16/uint32/uint64)、立即数(int)、Expr(int16/int32/int64/uint16/uint32/uint64)。

src_stride

输入

源tensor相邻连续数据片段间隔(前 burst 尾与后 burst 头),取值范围:src_stride∈[0, 65535]。支持的数据类型为:Scalar(int16/int32/int64/uint16/uint32/uint64)、立即数(int)、Expr(int16/int32/int64/uint16/uint32/uint64)。

dst_stride

输入

目的tensor相邻连续数据片段间隔(前 burst 尾与后 burst 头),取值范围:dst_stride∈[0, 65535]。支持的数据类型为:Scalar(int16/int32/int64/uint16/uint32/uint64)、立即数(int)、Expr(int16/int32/int64/uint16/uint32/uint64)。

*args

输入

扩展参数个数。

**argv

输入

扩展参数。

表2 data_move相关数据类型、scope及参数单位

src.scope

dst.scope

dtype

(src需与dst保持一致)

burst

单位

src_stride

单位

dst_stride

单位

OUT

L1

uint8, int8, float16, uint16, int16, float32, int32, uint32, uint64, int64

32B

32B

32B

L1

OUT

uint8, int8, float16, uint16, int16, float32, int32, uint32, uint64, int64

32B

32B

32B

OUT

UB

uint8, int8, float16, uint16, int16, float32, int32, uint32, uint64, int64,

32B

32B

32B

UB

OUT

uint8, int8, float16, uint16, int16, float32, int32, uint32, uint64, int64,

32B

32B

32B

UB

UB

uint8, int8, float16, uint16, int16, float32, int32, uint32, uint64, int64

32B

32B

32B

支持的型号

Atlas 200/300/500 推理产品

Atlas 训练系列产品

Atlas推理系列产品AI Core

Atlas推理系列产品Vector Core

Atlas A2训练系列产品

Atlas 200I/500 A2推理产品

注意事项

返回值

调用示例