CANN/pyasc稀疏数据加载接口
asc.language.basic.load_data_with_sparse【免费下载链接】pyasc本项目为Python用户提供算子编程接口支持在昇腾AI处理器上加速计算接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyascasc.language.basic.load_data_with_sparse(dst: LocalTensor, src: LocalTensor, idx: LocalTensor, load_data_params: LoadData2DParams) → None用于搬运存放在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为一个int80 1 2 0对应索引矩阵后四位0 2 1 0为一个int8。对应的Ascend C函数原型template typename T int8_t, typename U uint8_t, typename Std::enable_ifStd::is_samePrimTT, int8_t::value, bool::type true, typename Std::enable_ifStd::is_samePrimTU, uint8_t::value, bool::type true __aicore__ inline void LoadDataWithSparse(const LocalTensorT dst, const LocalTensorT src, const LocalTensorU idx, const LoadData2dParams loadDataParam)参数说明dst输出目的操作数类型为LocalTensor支持的TPosition为B2LocalTensor的起始地址需要512字节对齐。支持的数据类型为int8_t。数据连续排列顺序要求为小N大Z格式。src输入源操作数类型为LocalTensor支持的TPosition为B1LocalTensor的起始地址需要32字节对齐。支持的数据类型为int8_t。idx输入源操作数类型为LocalTensor支持的TPosition为B1LocalTensor的起始地址需要32字节对齐。支持的数据类型为int8_t。load_data_param输入LoadData参数结构体LoadData2DParams类型。start_index分形矩阵ID说明搬运起始位置为源操作数中第几个分形0为源操作数中第1个分形矩阵。取值范围start_index∈[0, 65535] 。单位512B。默认为0。repeat_times迭代次数每个迭代可以处理512B数据。取值范围repeat_times∈[1, 255]。src_stride相邻迭代间源操作数前一个分形与后一个分形起始地址的间隔单位512B。取值范围src_stride∈[0, 65535]。默认为0。sid预留参数配置为0即可。dst_gap相邻迭代间目的操作数前一个分形结束地址与后一个分形起始地址的间隔单位512B。取值范围dst_gap∈[0, 65535]。默认为0。if_transpose是否启用转置功能对每个分形矩阵进行转置默认为false注意只有A1-A2和B1-B2通路才能使能转置使能转置功能时源操作数、目的操作数仅支持uint16_t/int16_t/half数据类型:true启用false不启用addr_mode预留参数配置为0即可。约束说明操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。repeat_times0表示不执行。每次迭代中的start_index不能小于零。不支持转置功能。调用示例import asc dst asc.LocalTensor(dtypeasc.int8, posasc.TPosition.B2, addr0, tile_size512) src asc.LocalTensor(dtypeasc.int8, posasc.TPosition.B1, addr0, tile_size512) idx asc.LocalTensor(dtypeasc.uint8, posasc.TPosition.B1, addr0, tile_size512) params asc.LoadData2DParams(repeat_times1, src_stride0, if_transposeFalse) asc.load_data_with_sparse(dstdst, srcsrc, idxidx, load_data_paramparams)【免费下载链接】pyasc本项目为Python用户提供算子编程接口支持在昇腾AI处理器上加速计算接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考