LoadDataWithSparse
功能说明
用于搬运存放在L1里的512B的稠密权重矩阵到L0Bbuffer里,同时读取128B的索引矩阵用于稠密矩阵的稀疏化。索引矩阵的数据类型为int2,需要拼成int8的数据类型,再传入接口。
索引矩阵在一个int8的地址中的排布是逆序排布的,例如:索引矩阵1 2 0 1 0 2 1 0,在地址中的排布为1 0 2 1 0 1 2 0,其中1 0 2 1(对应索引矩阵前四位1 2 0 1)为一个int8,0 1 2 0(对应索引矩阵后四位0 2 1 0)为一个int8。
索引矩阵的功能说明参考MmadWithSparse。
函数原型
1
|
void LoadDataWithSparse (const LocalTensor<int8_t>& dstLocal, const LocalTensor<int8_t>& srcLocal, const LocalTensor<int8_t>& idxLocal, const LoadData2dParams& loadDataParam) |
参数说明
参数名称 |
输入/输出 |
含义 |
---|---|---|
dstLocal |
输出 |
目的操作数,类型为LocalTensor,支持的TPosition为B2,支持的数据类型为int8_t。 数据连续排列顺序要求为小N大Z格式。 |
srcLocal |
输入 |
源操作数,类型为LocalTensor,支持的TPosition为B1,支持的数据类型为int8_t。 |
idxLocal |
输入 |
源操作数,类型为LocalTensor,支持的TPosition为B1,支持的数据类型为int8_t。 |
loadDataParams |
输入 |
LoadData参数结构体,LoadData2DParams类型,详细说明参考LoadData2DParams结构体内参数说明。 |
支持的型号
Atlas A2训练系列产品/Atlas 800I A2推理产品
注意事项
- 操作数地址偏移对齐要求请参见通用约束。
- L1需要32B对齐,L0B需要512B对齐。
- repeat=0表示不执行。
- 每次迭代中的startIndex不能小于零。
- 不支持转置功能。
返回值
无
调用示例
详细用例请参考MmadWithSparse。
父主题: 矩阵计算