QUICK REVIEW
[论文解读] New Row-grouped CSR format for storing the sparse matrices on GPU with implementation in CUDA
Tomáš Oberhuber, Atsushi Suzuki|arXiv (Cornell University)|Dec 10, 2010
Parallel Computing and Optimization Techniques参考文献 13被引用 36
一句话总结
本文提出了一种新的行分组压缩稀疏行格式(Row-grouped CSR, RgCSR),用于在GPU上存储稀疏矩阵,通过行分组和智能排序优化合并内存访问并减少人为填充。在1,600个矩阵上的评估表明,RgCSR在整体上优于Hybrid格式,尤其在具有规则行非零模式的矩阵上表现更优;然而,对于高度不规则的矩阵,其性能显著下降,原因在于人为非零元素过多,凸显了有效行重排对提升缓存利用率的必要性。
ABSTRACT
In this article we present a new format for storing sparse matrices. The format is designed to perform well mainly on the GPU devices. We present its implementation in CUDA. The performance has been tested on 1,600 different types of matrices and we compare our format with the Hybrid format. We give detailed comparison of both formats and show their strong and weak parts.
研究动机与目标
- 设计一种稀疏矩阵格式,以提升GPU设备上的内存合并访问能力并减少人为填充。
- 解决由低算术强度和内存带宽限制导致的SpMV(稀疏矩阵-向量乘法)性能瓶颈。
- 在1,600个真实世界稀疏矩阵的多样化集合上,评估并比较新提出的RgCSR格式与现有Hybrid格式的性能。
- 研究行重排(降序和AMD排序)对RgCSR中人为非零元素数量和纹理缓存利用率的影响。
- 在单精度和双精度计算下,识别RgCSR相较于Hybrid格式的优势与劣势。
提出的方法
- RgCSR格式将稀疏矩阵的行分组为连续块,以在GPU多处理器上实现合并内存访问。
- 每个组通过添加人为零元素进行填充,使其数据大小对齐至32字节边界,以提升线程束内的内存合并效果。
- 该格式将行偏移、列索引和数值分别存储在独立的连续数组中,并通过组级元数据实现高效索引。
- SpMV核函数使用CUDA实现,每个线程负责处理其组内所有非零元素。
- 应用行重排技术——按非零元素数量降序排列和AMD(近似最小度)排序——以最小化人为非零元素并提升纹理缓存复用。
- 使用CUDA分析器评估性能,测量1,600个来自标准基准测试的矩阵的缓存命中/未命中率、人为非零元素数量和GFLOPS。
实验结果
研究问题
- RQ1在GPU上对多样化稀疏矩阵进行SpMV性能比较时,RgCSR格式与Hybrid格式相比表现如何?
- RQ2行重排(降序和AMD排序)在多大程度上减少了RgCSR中的人为非零元素并提升了纹理缓存利用率?
- RQ3尽管RgCSR设计用于实现合并访问,为何其在具有高度不规则行非零模式的矩阵上表现不佳?
- RQ4在行非零元素数量差异较大的矩阵中,RgCSR在内存合并优势与人为非零元素开销之间的权衡如何?
- RQ5通过智能行重排能否显著提升RgCSR的性能?如果是,哪种重排策略在减少填充和提升缓存使用之间提供了最佳平衡?
主要发现
- 总体上,RgCSR在1,600个矩阵上优于Hybrid格式,尤其在具有规则非零模式的矩阵(如Hohn/fd18和AMD/G2_circuit)中实现更高的GFLOPS。
- 对于Hohn/fd18,RgCSR在降序排序下达到4.845 GFLOPS(人为非零元素占比0.34%),高于未排序时的4.690 GFLOPS。
- 对于AMD/G2_circuit,RgCSR在降序排序下达到9.210 GFLOPS(人为非零元素占比0.05%),在某些情况下优于Hybrid格式的9.364 GFLOPS。
- 在不规则矩阵(如IBM_EDA/trans4和Rajat/Raj1)上,RgCSR性能急剧下降——分别仅达到0.0189 GFLOPS和0.0578 GFLOPS——主要由于人为非零元素过多(无排序时最高达2,118.1%)。
- AMD排序提升了纹理缓存命中率(如AMD/G2_circuit中命中3,448次,未命中11,951次),但相比降序排序增加了人为非零元素,表明缓存效率与内存占用之间存在权衡。
- 研究结果证实,缓存未命中率并非主要性能瓶颈;相反,由于行分组不佳导致的大量人为非零元素才是不规则矩阵上性能下降的主要原因。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。