【技术实现步骤摘要】
基于CSR特点对稀疏稠密矩阵乘法并行算法的优化方法
[0001]本专利技术涉及计算机并行计算领域以及计算机体系结构领域,具体涉及一种基于CSR特点对稀疏稠密矩阵乘法并行算法的优化方法。
技术介绍
[0002]基于图的机器学习算法,特别是图神经网络被大量应用于链路预测,分类,社交网络等领域,相较于传统神经网络其拥有极强的特征表现能力,在学术和工业界掀起了研究热潮,然而在现实中较大的图神经网络的训练可能需要耗费数天乃至数十天的时间,极大地限制了图神经网络的继续发展,因而对图神经网络训练的加速就显得尤为重要。此外在现实的图神经网络的训练中,图往往是稀疏的,卷积算法一般是基于稀疏稠密矩阵乘法(SpMM),因此对训练的加速主要是针对稀疏稠密矩阵乘法。
[0003]Compressed Sparse Row(CSR)是一种将稀疏矩阵按行顺序进行压缩存储的数据格式,实际应用中的图往往是稀疏的,如果直接采用矩阵的形式存储,需要耗费大量的存储空间,并且在计算时由于存在大量的零元素,会产生许多无效的计算,浪费计算机资源。而CSR格式只存 ...
【技术保护点】
【技术特征摘要】
1.基于CSR特点对稀疏稠密矩阵乘法并行算法的优化方法,其特征在于,包括CSR稀疏矩阵数据缓冲区设计,缓冲区并行数据预加载的负载均衡,稠密矩阵计算任务对线程的负载均衡,以及计算结果部分累加和的暂存设计;其中,还包括:S1求出给定稀疏矩阵非零元素最多的行的长度n;S2给缓冲区分配长度为n的空间;S3进入计算主循环,判断稀疏矩阵是否每一行都计算完成,若为是,则计算完成,否则进入步骤S4;S4依据rowPtr数组指定预加载数据范围;S5依据分配公式以及可用线程数将数据均匀分配给对应线程,将数据加载至缓冲区;S6设置同步节点,等待所有线程将各自的数据加载完毕;S7依据当前线程号以及负载均衡分配公式求出当前线程计算任务中稠密矩阵的起始和结束列号;S8各个线程从缓冲区中取出稀疏矩阵数据并与稠密矩阵中所属数据进行点乘运算;S9在点乘计算过程中的中间累加和存放在暂存器中;S10各自线程将计算的最终结果写入结果矩阵;S11回到步骤S3。2.根据权利要求1所述的基于CSR特点对稀疏稠密矩阵乘法并行算法的优化方法,其特征在于,所述CSR稀疏矩阵数据缓冲区设计能够根据稀疏矩阵的大小自适应地配置缓冲区的大小,通过CSR稀疏矩阵...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。