基于CSR存储格式的稀疏矩阵向量乘并行优化方法及系统技术方案

技术编号:44584585 阅读:17 留言:0更新日期:2025-03-14 12:45
本公开提供了基于CSR存储格式的稀疏矩阵向量乘并行优化方法及系统,涉及高性能并行计算技术领域,包括获取以CSR格式存储的稀疏矩阵数据;对稀疏矩阵采用行分组方法进行拆分整合,将非零元素个数相近的行划分到同一组,并为每个分组配置计算资源;先对各个分组内的稀疏矩阵数据进行预加载,定义一个纹理内存,将稀疏矩阵数据预加载至所述纹理内存中;为每个分组设置单独的内核执行每个分组中所有行的SpMV计算,在内核执行计算过程中,将稀疏矩阵数据的非零元素和对应的向量数据预加载进共享内存;内核采用混合静态‑动态线程调度方法来执行SpMV计算,直至所有的行计算完成,得到最终的结果。

【技术实现步骤摘要】

本公开涉及高性能并行计算,具体涉及基于csr存储格式的稀疏矩阵向量乘并行优化方法及系统。


技术介绍

1、本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。

2、在现代计算应用中,稀疏矩阵向量乘(spmv)对于处理大型稀疏矩阵至关重要,它在科学计算、工程模拟、图像处理以及机器学习等多个领域扮演着核心角色。spmv操作涉及将一个稀疏矩阵a与一个稠密向量x相乘,以产生一个新的向量y。从数学的角度来看,这一过程可以表达为y=a×x,其中y代表所得向量的结果。

3、图像处理单元(gpu)在科学计算领域因其高吞吐量和强大的并行处理能力而备受青睐。然而,尽管gpu在许多计算任务中表现出色,在面向gpu的spmv算法中,仍面临一些性能瓶颈,其中最主要的则是计算负载不均衡以及内存访问不连续。

4、计算负载不均衡通常是由于稀疏矩阵的非零元素分布不均匀,导致一些线程可能会执行大量计算,而另一些线程则可能处于空闲状态。负载不均衡会降低gpu的计算效率,增加计算时间。而内存访问不连续,通常是由于存储格式本身的限制所导致的。以本文档来自技高网...

【技术保护点】

1.基于CSR存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,包括:

2.如权利要求1所述的基于CSR存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,获取以CSR格式存储的稀疏矩阵数据,得到三个数组values数组、col_idx数组以及row_offsets数组,若不是以CSR格式存储,则需要进行格式转换。

3.如权利要求1所述的基于CSR存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,对稀疏矩阵采用行分组方法进行拆分整合,将非零元素个数相近的行划分到同一组,包括:行分组方法为根据划分规则Gi=[ai,ai+1-1](i>0)进行,其中ai满足以下公...

【技术特征摘要】

1.基于csr存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,包括:

2.如权利要求1所述的基于csr存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,获取以csr格式存储的稀疏矩阵数据,得到三个数组values数组、col_idx数组以及row_offsets数组,若不是以csr格式存储,则需要进行格式转换。

3.如权利要求1所述的基于csr存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,对稀疏矩阵采用行分组方法进行拆分整合,将非零元素个数相近的行划分到同一组,包括:行分组方法为根据划分规则gi=[ai,ai+1-1](i>0)进行,其中ai满足以下公式:

4.如权利要求1所述的基于csr存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,为每个分组配置计算资源,包括:在得到结构体group后,将创建一个结构体数组groups存储多个分组内的数据,为后续执行计算分配资源,groupsize的大小设置为2的μ(μ∈n)次幂,具体取值满足groupsize≤min(128,(ai+1-1)/2)的最大值,每个内核计算开启的线程块的个数blocks通过(nnz+k*blocksize-1)/k*blocksize进行配置。

5.如权利要求1所述的基于csr存储格式的稀疏矩阵向量乘并行优化方法,其特征在于,先对各个分组内的稀疏矩阵数据进行预加载,定义一个纹理内存,将稀疏矩阵数据预加载至所述纹理内存中,包括:根据得到的各个分组内的rows数组,将从values数组、column_indices数组和row_offsets数组三个数组中读取大稀疏矩阵的相应信息,来填充每个分组内的二维数组matrix;根据得到的二维数组matrix,使用cudamemcpy2d将matrix中的...

【专利技术属性】
技术研发人员:郭猛丁浩然柳安军徐海张茂宇闫凡凡
申请(专利权)人:山东省计算中心国家超级计算济南中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1