昇腾社区首页
中文
注册
开发者
下载

接口基本信息

实现2D格式的数据搬运,即从L1/GM加载以512Bytes为基本单元的分形矩阵到L0A/L0B缓冲区。

数据对齐要求:

  • L0A/L0B中地址:512Bytes对齐
  • GM地址:1Byte对齐
  • L1地址:32Bytes对齐
表1 矩阵输入搬运参数说明

参数名

说明

取值范围

单位

dst

目的地址。

/

/

src

源地址。

/

/

baseIdx

表示src matrix的fractal matrix的index ID。例如,src matrix共计有500个16*16的fractal matrix,那baseIdx=300含义是读取第301个16*16的fractal matrix写入L0A/L0B上。

[0, 2^16-1]

fractal分形

repeat

表示重复搬运的次数,每次迭代搬运的fractal matrix idx = baseIdx + srcStride * repeatIdx, 目的地址dst_addr = dst + (dstGap + 1) * repeatIdx * 512Bytes 。如果只想执行1次,则设为1,如果设为0,则不执行。

[0, 2^8-1]

srcStride

每个repeat迭代的源地址stride,单位是16*16的fractal matrix,每个repeat迭代的源地址分形头到第二个分形头的距离。如果srcStride为1,表示在src addr连续读取。

[0, 2^16-1]

分形

dstGap

每个repeat迭代的目的地址gap,单位是16*16的fractal matrix,每个repeat迭代的目的地址分形尾到第二个分形头的距离。如果dstGap为0,表示在dst addr连续存储。

[0, 2^16-1]

分形

sid

预留参数,设置为0即可。

[0,10]

/

transpose

该参数仅在src={L1}, dst={L0A, L0B},且分形的数据类型为b16时可以设为true。

如设为true,则当从源地址中读取分形矩阵时,在写入L0A或L0B缓冲区之前进行单个分形矩阵转置操作。

如设为false,则数据类型为b4、b8、b16、b32均可,且不进行分形矩阵的转置。

注:如果数据类型为b4、b8、b32需要转置,请参考具备转置的矩阵输入搬运

[0, 1]

/

addr_cal_mode

枚举类型addr_cal_mode_t定义:

typedef enum {
    inc = 0,
    dec = 1,
} addr_cal_mode_t;
  • 设为inc,表示src地址是增加,数据连续往后顺序读取。
  • 设为dec,表示从src往前读取,地址减小。

[0,1]

/

repeat=0表示不执行,此接口将被视为NOP并报警告。

每次迭代中的baseIdx不能小于零,否则会引发异常。