data_move

功能说明

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

昇腾310 AI处理器,支持UB->UB/UB->OUT/OUT->UB/OUT->L1

昇腾910 AI处理器,支持UB->UB/UB->OUT/OUT->UB/OUT->L1

昇腾310P AI处理器AI Core,支持UB->UB/UB->OUT/OUT->UB/OUT->L1

昇腾310P AI处理器Vector Core,支持UB->OUT/UB->UB/OUT->UB

函数原型

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

参数说明

表1 参数说明

参数名称

输入/输出

含义

dst

输出

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

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

src

输入

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

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

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

支持的芯片型号

昇腾310 AI处理器

昇腾910 AI处理器

昇腾310P AI处理器AI Core

昇腾310P AI处理器Vector Core

注意事项

返回值

调用示例