昇腾社区首页
中文
注册

接口基本信息

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

数据对齐要求:

  • L0A/L0B中地址:512Bytes对齐
  • OUT地址: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写入ca buffer上。

[0, 2^16-1]

fractal分形

repeat

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

[0, 2^8-1]

srcStride

每个repeat迭代的源地址stride,单位是16 × 16的fractal matrix。

[0, 2^16-1]

分形

dstStride

每个repeat迭代的目的地址分形尾到第二个分形头的距离。如果dstStride为0,表示在dst addr连续存储。

[0, 2^16-1]

分形

sid

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

[0,10]

/

transpose

如设为true,则搬运同时进行fractal matrix的简单转置操作(仅对b16类型有效)。

[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]

/