下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

LoadDataWithSparse

功能说明

用于搬运存放在B1里的512B的稠密权重矩阵到B2里,同时读取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
2
template <typename T = int8_t, typename U = uint8_t, typename std::enable_if<IsSameType<PrimT<T>, int8_t>::value, bool>::type = true, typename std::enable_if<IsSameType<PrimT<U>, uint8_t>::value, bool>::type = true>
__aicore__ inline void LoadDataWithSparse(const LocalTensor<T> &dstLocal, const LocalTensor<T> &srcLocal, const LocalTensor<U> &idxLocal, const LoadData2dParams &loadDataParam)

参数说明

表1 模板参数说明

参数名

描述

T

dstLocal、srcLocal的数据类型。

U

idxLocal的数据类型。

  • 当dstLocal、srcLocal、idxLocal为基础数据类型时,T和U必须为uint8_t类型,否则编译失败。
  • 当dstLocal、srcLocal、idxLocal为TensorTrait类型时,T和U的LiteType必须为int8_t类型,否则编译失败。

最后两个模板参数仅用于上述数据类型检查,用户无需关注。

表2 通用参数说明

参数名称

输入/输出

含义

dstLocal

输出

目的操作数,类型为LocalTensor,支持的TPosition为B2,LocalTensor的起始地址需要512字节对齐。

支持的数据类型为int8_t。

数据连续排列顺序要求为小N大Z格式。

srcLocal

输入

源操作数,类型为LocalTensor,支持的TPosition为B1,LocalTensor的起始地址需要32字节对齐。

支持的数据类型为int8_t。

idxLocal

输入

源操作数,类型为LocalTensor,支持的TPosition为B1,LocalTensor的起始地址需要32字节对齐。

支持的数据类型为int8_t。

loadDataParams

输入

LoadData参数结构体,LoadData2DParams类型,详细说明参考LoadData2DParams结构体内参数说明

支持的型号

Atlas A2训练系列产品/Atlas 800I A2推理产品

注意事项

  • 操作数地址偏移对齐要求请参见通用约束
  • repeat=0表示不执行。
  • 每次迭代中的startIndex不能小于零。
  • 不支持转置功能。

返回值

调用示例

详细用例请参考MmadWithSparse

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词