asc_set_gm2l1_nz_para
产 品 支 持 情 况
| 产 品 | 是 否 支 持 |
|---|---|
| √ |
功 能 说 明
对MTE2_NZ_PARA寄 存 器 中 的 值 进 行 设 置,可 以 在 调 用asc_copy_gm2l1_dn2nz和asc_copy_gm2l1_nd2nz前 设 置 相 关 参 数。
MTE2_NZ_PARA是 一 个64bit的 寄 存 器,其 中 各bit含 义 如 下:
| bit范 围 | 含 义 |
|---|---|
| 15:0 | 需 要 搬 运 的ND/DN矩 阵 数 量。 |
| 31:16 | N维 度 上 相 邻 两 个block块 之 间 的 间 隔。 |
| 47:32 | 同 一 个NZ矩 阵 中2个C0列 之 间 的 间 隔。 |
| 63:48 | 两 个ND/DN矩 阵 中 两 个NZ矩 阵 之 间 的 间 隔。 |
函 数 原 型
C++
__aicore__ inline void asc_set_gm2l1_nz_para(uint64_t config)
参 数 说 明
| 参 数 名 | 输 入/输 出 | 描 述 |
|---|---|---|
| config | 输 入 | 待 设 置 的 寄 存 器 值。 |
返 回 值 说 明
无
流 水 类 型
PIPE_S
约 束 说 明
无
调 用 示 例
C++
uint64_t nz_dst_stride = 16;
uint64_t config = nz_dst_stride << 48; //[63:48]
uint64_t c0_stride = 32;
config |= c0_stride << 32; //[47:32]
uint64_t n_dst_stride = 32;
config |= n_dst_stride << 16; //[31:16]
uint64_t nd_num = 64;
config |= nd_num; //[15:0]
asc_set_gm2l1_nz_para(config);