论文部分内容阅读
大规模稀疏矩阵的求解是高性能计算中的一个常见问题,广泛存在于工程实践尤其是计算机仿真领域。用常规方法解稀疏矩阵时,会浪费大量的计算资源。目前,在国内外,在通用计算领域对稀疏矩阵的运算研究较少。已有的研究主要是实现稀疏矩阵和向量之间的乘法运算。研究GPU上的稀疏矩阵向量乘法运算的实现并优化。针对于稀疏矩阵非零元素分布不均造成的空转问题以及同一线程组中线程不能合并访存的问题,提出了一种分段行合并存储策略的稀疏矩阵向量乘方法。针对于一个线程组内的线程间计算量负载不均衡而造成的线程间等待问题以及因线程不满足对全局存储器的合并访问要求而造成的访存延迟问题,提出了一种按行分块存储策略的稀疏矩阵向量乘方法。并针对以上两种方法实现了全局存储器的访存优化并使用纹理存储器和常数存储器对运算进行加速。实现了GPU上的稀疏矩阵线性方程求解的雅可比迭代法和广义最小残量法并优化。提出的优化方法可以推广至所有的GPU下求解稀疏矩阵线性方程的迭代法上,具有普遍意义。最后给出了主机设备通信优化和共享存储器的访存优化方案。测试表明,稀疏矩阵方程求解运算相比于获得了10.3至74.0范围的加速比。