1.一种用于稀疏矩阵乘计算的数据处理方法,其特征在于,所述方法包括:对稀疏矩阵进行预处理,获得稀疏矩阵块以及所述稀疏矩阵块对应的稀疏索引;所述稀疏索引包括所述稀疏矩阵块中非零元素的非零元素数量、所述非零元素的索引坐标;根据所述稀疏索引中所述非零元素数量,为一维脉动阵列中计算单元PE分配对应的所述索引坐标;所述索引坐标包括行索引和列索引;所述一维脉动阵列包括并行排列的预设数量个所述PE;所述PE为包括第一计算通路和第二计算通路的可重构PE;所述第一计算通路用于进行矩阵内积运算,所述第二计算通路用于进行矩阵行积运算;根据所述PE中所述第一计算通路,对查询矩阵中对应的行向量和键矩阵对应的转置键矩阵中对应的列向量执行乘累加计算,输出所述PE对应的计算结果;所述查询矩阵中对应的行向量与所述PE的所述行索引对应,所述键矩阵对应的转置键矩阵中对应的列向量与所述PE的所述列索引对应;根据所述PE中所述第二计算通路,对所述计算结果和值矩阵中对应的行向量执行乘计算,输出所述PE对应的乘法结果;所述值矩阵中对应的行向量与所述PE的所述列索引对应;通过分组求和网络对非零元素数量个所述乘法结果进行分组求和,获得至少一个分组求和结果;根据所述分组求和结果对应的行索引,对至少一个所述分组求和结果进行重新排序,获得输出矩阵;所述输出矩阵与所述稀疏矩阵块对应。
2.根据权利要求1所述的方法,其特征在于,所述第一计算通路包括第一多路选择器、第二多路选择器、第三多路选择器、第四多路选择器、乘法器和加法器,所述根据所述PE中所述第一计算通路,对查询矩阵中对应的行向量和键矩阵对应的转置键矩阵中对应的列向量执行乘累加计算,输出所述PE对应的计算结果,包括:遍历所述查询矩阵中对应的行向量中行元素和所述键矩阵对应的转置键矩阵中对应的列向量中列元素;所述行元素的列索引与所述列元素的行索引对应;将所述行元素通过所述第一多路选择器输入所述乘法器;将所述列元素通过所述第二多路选择器输入所述乘法器;根据所述乘法器对所述行元素和所述行元素执行乘计算,获得元素计算结果;调用所述第三多路选择器将已有元素计算结果和输入所述加法器;所述已有元素计算结果和为已根据所述加法器进行累加计算的元素计算结果的和;根据所述加法器将所述元素计算结果和所述已有元素计算结果和进行累加计算,获得所述计算结果;通过所述第四多路选择器输出所述计算结果,以完成采样的稠密-稠密矩阵乘法SDDMM。
3.根据权利要求1所述的方法,其特征在于,所述第二计算通路包括第一多路选择器、第二多路选择器、第四多路选择器和乘法器,所述根据所述PE中所述第二计算通路,对所述计算结果和值矩阵中对应的行向量执行乘计算,输出所述PE对应的乘法结果,包括:将所述计算结果通过所述第一多路选择器输入所述乘法器;将所述值矩阵中对应的行向量通过所述第二多路选择器输入所述乘法器;根据所述乘法器对所述计算结果和所述值矩阵中对应的行向量执行乘计算,获得所述乘法结果;通过所述第四多路选择器,输出所述乘法结果,完成稀疏矩阵与稠密矩阵的乘法SpMM。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述PE中所述第一计算通路,对查询矩阵中对应的行向量和键矩阵对应的转置键矩阵中对应的列向量执行乘累加计算,输出所述PE对应的计算结果之前,还包括:基于所述PE的所述行索引,将查询矩阵中对应的行向量,通过第一交叉网络输入所述PE;基于所述PE的所述列索引,将键矩阵对应的转置键矩阵中对应的列向量,通过所述第一交叉网络输入所述PE。
5.根据权利要求1所述的方法,其特征在于,在根据所述PE中所述第二计算通路,对所述计算结果和值矩阵中对应的行向量执行乘计算,输出所述PE对应的乘法结果之前,还包括:基于所述PE的所述列索引,将值矩阵中对应的行向量通过第二交叉网络输入所述PE。
6.根据权利要求5所述的方法,其特征在于,所述将值矩阵中对应的行向量通过第二交叉网络输入所述PE,包括:根据周期数,将所述值矩阵中对应的行向量中行元素逐周期通过所述第二交叉网络输入所述PE,所述周期数与所述值矩阵的列数相等。
7.根据权利要求1所述的方法,其特征在于,所述对稀疏矩阵进行预处理,获得稀疏矩阵块以及所述稀疏矩阵块对应的稀疏索引,包括:对所述稀疏矩阵进行分块,获得所述稀疏矩阵块;获取所述稀疏矩阵块中所述非零元素的所述非零元素数量以及所述非零元素的所述索引坐标;对所述非零元素数量以及所述索引坐标进行一维排列,获得所述稀疏矩阵块对应的所述稀疏索引。
8.一种用于稀疏矩阵乘计算的数据处理装置,其特征在于,所述装置包括:稀疏索引预处理模块、分发网络模块、一维脉动阵列模块和分组求和网络模块;所述稀疏索引预处理模块,用于对稀疏矩阵进行预处理,获得稀疏矩阵块以及所述稀疏矩阵块对应的稀疏索引;所述稀疏索引包括所述稀疏矩阵块中非零元素的非零元素数量、所述非零元素的索引坐标;所述分发网络模块,用于根据所述稀疏索引中所述非零元素数量,为一维脉动阵列中计算单元PE分配对应的所述索引坐标;所述索引坐标包括行索引和列索引;所述一维脉动阵列包括并行排列的预设数量个所述PE;所述PE为包括第一计算通路和第二计算通路的可重构PE;所述第一计算通路用于进行矩阵内积运算,所述第二计算通路用于进行矩阵行积运算;所述一维脉动阵列模块,用于根据所述PE中所述第一计算通路,对查询矩阵中对应的行向量和键矩阵对应的转置键矩阵中对应的列向量执行乘累加计算,输出所述PE对应的计算结果;所述查询矩阵中对应的行向量与所述PE的所述行索引对应,所述键矩阵对应的转置键矩阵中对应的列向量与所述PE的所述列索引对应;所述一维脉动阵列模块,还用于根据所述PE中所述第二计算通路,对所述计算结果和值矩阵中对应的行向量执行乘计算,输出所述PE对应的乘法结果;所述值矩阵中对应的行向量与所述PE的所述列索引对应;所述分组求和网络模块,用于通过分组求和网络对非零元素数量个所述乘法结果进行分组求和,获得至少一个分组求和结果;所述分组求和网络模块,还用于根据所述分组求和结果对应的行索引,对至少一个所述分组求和结果进行重新排序,获得输出矩阵;所述输出矩阵与所述稀疏矩阵块对应。
9.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器:所述存储器用于存储计算机程序;所述处理器用于根据所述计算机程序执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-7任一项所述的方法。