【技术实现步骤摘要】
一种提高涉及稀疏矩阵并行计算效率的方法和系统
本说明书涉及数据处理领域,特别涉及一种提高涉及稀疏矩阵并行计算效率方法和系统。
技术介绍
稀疏矩阵广泛的应用于各种机器学习模型中,例如:图神经网络模型(GraphNeuralNetwork,GNN)的核心逻辑-信息的汇聚,可以通过稀疏矩阵乘法来实现。当稀疏矩阵规模较大时,稀疏矩阵乘法计算耗时也会较多,从而造成整体模型训练时间过长。现有稀疏矩阵乘法方案多数基于单线程,无法充分利用多核CPU的优势。如果采用多线程并行计算的方案,由于稀疏矩阵中非零值分布不规律,采用常规的均匀划分数据区方案会使得各个线程处理的数据有重叠部分,需要通过加锁操作来实现同步,运行效率也会较低。因此,期望一种稀疏矩阵的按行并行执行的方法和系统,用于提升大规模稀疏矩阵的计算效率。
技术实现思路
本说明书实施例之一提供一种提高涉及稀疏矩阵并行计算效率方法。所述方法包括:获取稀疏矩阵,所述稀疏矩阵由多个非零值和所述多个非零值对应的多个坐标组成,所述坐标表示所述非零值在所述稀疏矩阵中 ...
【技术保护点】
1.一种提高涉及稀疏矩阵并行计算效率的方法,所述方法包括:/n获取稀疏矩阵,所述稀疏矩阵由多个非零值和所述多个非零值对应的多个坐标组成,所述坐标表示所述非零值在所述稀疏矩阵中的位置;所述坐标包括行坐标,所述行坐标表示所述非零值在所述稀疏矩阵中的行数;/n基于所述多个非零值的个数和计算线程的个数将所述多个非零值划分为多个第一类数据区;/n遍历所述多个第一类数据区,将相邻的两个所述第一类数据区中位于所述稀疏矩阵同一行的所述非零值划分到同一个数据区中,生成多个第二类数据区;/n将所述多个第二类数据区分配给多个所述计算线程;/n多个所述计算线程并行执行计算任务。/n
【技术特征摘要】
1.一种提高涉及稀疏矩阵并行计算效率的方法,所述方法包括:
获取稀疏矩阵,所述稀疏矩阵由多个非零值和所述多个非零值对应的多个坐标组成,所述坐标表示所述非零值在所述稀疏矩阵中的位置;所述坐标包括行坐标,所述行坐标表示所述非零值在所述稀疏矩阵中的行数;
基于所述多个非零值的个数和计算线程的个数将所述多个非零值划分为多个第一类数据区;
遍历所述多个第一类数据区,将相邻的两个所述第一类数据区中位于所述稀疏矩阵同一行的所述非零值划分到同一个数据区中,生成多个第二类数据区;
将所述多个第二类数据区分配给多个所述计算线程;
多个所述计算线程并行执行计算任务。
2.根据权利要求1所述的方法,其中,所述基于所述多个非零值的个数和计算线程的个数,将所述多个非零值划分为多个第一类数据区包括:
所述多个非零值存储在非零值数组中;
将所述多个非零值的个数NNZ除以所述多个计算线程的个数N_Trd,确定所述第一类数据区中的最少非零值个数,将所述非零值数组划分为N_Trd个所述第一类数据区;其中,所述第一类数据区的起始位置为所述第一类数据区中第一个所述非零值在所述非零值数组中的下标,所述第一类数据区的终点位置为所述第一类数据区中最后一个所述非零值在所述非零值数组中的下标。
3.根据权利要求2所述的方法,其中,所述遍历所述多个第一类数据区,将相邻的两个所述第一类数据区中位于所述稀疏矩阵同一行的所述非零值划分到同一个数据区中,生成多个第二类数据区包括:
所述多个非零值对应的所述多个坐标存储在坐标数组中;
从i等于1,且j等于1开始,到i等于N_Trd结束,从所述坐标数组中获取第i个所述第一类数据区的终点位置对应的行坐标和第i+1个所述第一类数据区的起始位置对应的行坐标,判断两者是否相同,是则在所述坐标数组中向后查找最后一个行坐标与第i+1个所述第一类数据区起始位置对应行坐标相同的数组元素,将其在所述坐标数组中的下标作为第j个所述第二类数据区的终点位置,否则将第i个所述第一类数据区的终点位置作为第j个所述第二类数据区的终点位置;其中,第1个所述第二类数据区的起点位置为0;
将所述非零值数组中与第j个所述第二类数据区的终点位置相邻的下一个坐标作为第j+1个所述第二类数据区的起始位置。
4.根据权利要求3所述的方法,其中,所述多个所述计算线程并行执行计算任务包括:
所述计算任务为所述稀疏矩阵与至少一个M行、K列的稠密矩阵的乘法运算;
根据所述第二类数据区的起始位置和终点位置,从所述非零值数组以及所述坐标数组中获取与所述第二类数据区对应的多个所述非零值以及与多个所述非零值对应的多个所述坐标;
使用多个所述非零值以及多个所述坐标,执行所述乘法运算中的部分任务;其中,所述部分任务为所述稀疏矩阵中与所述第二类数据区对应的行与所述稠密矩阵的列的乘法运算。
5.根据权利要求4所述的方法,其中,在图深度学习的信息聚合步骤中,需要计算所述稀疏矩阵和至少一个稠密矩阵的乘法,使用所述方法将所述稀疏矩阵按行分为多个第二类数据区,分配给多个线程并行计算所述乘法。
6.一种提高涉及稀疏矩阵并行计算效率的系统,...
【专利技术属性】
技术研发人员:葛志邦,张大龙,胡志洋,黄鑫,宋宪政,王琳,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。