FPGA上高效并行的矩阵计算算法与结构研究

需积分: 47 18 下载量 110 浏览量 更新于2024-08-07 收藏 6.92MB PDF 举报
本文主要探讨了在高性能计算领域中,针对大数据的共轭梯度迭代法(CG)及其关键部分——稀疏矩阵向量乘(SpMV)的优化问题。CG方法是解决大型线性方程组的重要算法,而SpMV在CG中占据了大部分的计算时间。SpMV操作在通用处理器上的性能较低,通常仅为峰值性能的10%,原因是其不规则的内存访问模式导致存储限制。 SpMV的性能与其使用的存储格式密切相关,如CSR(压缩行存储)和CSC(压缩列存储)格式。在CSR格式下,SpMV可以通过数据重用提高效率,但x向量的随机访问可能导致缓存失效。而在CSC格式下,x向量可以保持在片内,但y向量的数据相关性不确定性较高。对于FPGA(现场可编程门阵列)实现,当处理大阶数稀疏矩阵时,矩阵和向量无法全部存储在片内,因此需要设计适用于任意阶数矩阵的SpMV算法和相应的存储格式。 国防科学技术大学的博士学位论文进一步聚焦于FPGA在矩阵计算中的应用。作者邬贵明在导师窦勇的指导下,研究了FPGA实现矩阵计算的挑战,如硬件编程、并行算法设计和硬件结构优化。论文提出的主要创新点包括: 1. 针对基本矩阵运算,如矩阵向量乘和矩阵乘,设计了FPGA的高性能、高存储效率的分块矩阵乘并行结构。通过循环分块等优化,实现了数据传输和存储优化,降低了存储需求,使得处理大规模矩阵成为可能。 2. 提出了一种FPGA上的列选主元LU分解细粒度流水线并行算法,适用于线性方程组求解,包括下三角方程组和多右端项问题。该并行结构在硬件上实现,具有较高的性能,并且优于现有的软硬件解决方案。 3. 针对不选主元的LU分解,提出了分块稠密矩阵分解的并行算法和结构,采用分而治之的策略,结合循环分块和时空映射,优化了FPGA上的实现。 这些研究为FPGA在矩阵计算和大规模线性方程组求解中的应用提供了新的思路和优化方案,提高了计算效率并减少了资源需求,对高性能计算领域具有重要的实践意义。