华 中 科 技 大 学 硕 士 学 位 论 文
原函数。文献[13]中,基于 CPU 计算平台优化稀疏矩阵向量乘法性能受限于存储访
问和数据重用,讨论了基于 CPU 计算平台优化稀疏矩阵向量乘法运算的许多稀疏矩
阵的存储格式。文献[14]提出了一种新的稀疏矩阵的存储格式来减少存储带宽。文献
[15]展示了一种稀疏矩阵向量乘法运算的存储优化方法。文献[16]中介绍了一种新的
Pattern-based Representation 方法,这种方法没有 0 元素填充,减少了索引的开销。
文献[17]中引入了一种新的压缩稀疏块的存储格式,使得稀疏矩阵和向量的乘法运算
以及稀疏矩阵转置和向量的乘法运算都能够高效的并行计算。
部分研究工作是针对于不同高性能计算设备的运算特性对稀疏矩阵内核运算的
优化
[3]
。文献[19]提出了几种优化策略,对于多核环境特别有效,在 AMD 双核,INTEL
四核,异构 STI Cell 以及 Sun Niagara2 运算平台上都有着显著的性能提升。在文献[20]
中,解决了 CUDA 架构下稀疏矩阵向量乘法算法并行化的一些问题。Nathan 和
Michael 有效地实现了基于 CUDA 的稀疏矩阵和向量乘积数据结构和算法,因为稀
疏矩阵向量乘法运算的带宽受限特性,他们强调存储存储带宽效率和存储格式的压
缩
[3]
。针对 GPU 难以发挥具有存储器瓶颈算法的效率的困难,提出了在 NVIDIA
CUDA 架构上进行核心程序并行计算以及优化的主要因素,包括线程映射、合并访
问、维度优化和数据复用等
[3]
。
当稀疏线性方程规模很大的情况下,在 CPU上进行迭代法求解时耗时很长
[3]
。常
见的迭代法有雅可比迭代法,高斯-赛德尔迭代法,共轭斜量法,逐次超松弛迭代法
和广义最小残量法等。在求解大规模稀疏矩阵线性方程时,迭代法分支转移等操作
较少,包含的计算量很大,在迭代过程中对额外存储空间的需求较小,适于GPU上
的运算
[3]
。葛振等人分别在NVIDIA和AMD两种GPU 平台上实现PQMRCGSTAB算
法,取得了较好的加速效果
[3]
。
1.2.3 GPU 的工作模式
CPU 具有独立的内存和寄存器,GPU 也具有独立的显存和寄存器。CPU 作为主
控制器, CPU 和 GPU 协同处理任务,GPU 主要处理可以高度并行的数据处理任
务,CPU 则负责逻辑处理和串行计算相关任务。把逻辑处理和串行计算任务分配给
CPU 处理,并行计算部分则交由 GPU 处理。GPU 上的程序被称为内核函数,也叫
kernel。kernel 是并行执行的程序段。在一段程序中可以有多个内核函数,每个内核
函数内部都是并行执行的,但是各个 kernel 之间确是是串行执行的,其中还可以穿