FPGA上的高性能分块矩阵计算:并行结构与优化

需积分: 47 18 下载量 149 浏览量 更新于2024-08-07 收藏 6.92MB PDF 举报
"这篇博士学位论文主要探讨了在高性能计算领域,特别是大数据处理中,如何利用FPGA(Field-Programmable Gate Array,现场可编程门阵列)进行矩阵计算的并行算法和结构设计,以提高计算效率和存储效率。作者针对矩阵运算的基本问题,如矩阵向量乘和矩阵乘,提出了一种面向FPGA的高存储效率分块矩阵乘并行结构,以及一种细粒度流水线并行算法用于LU分解。此外,还研究了分块稠密矩阵分解的并行算法和结构。" 文章详细阐述了高性能分块矩阵乘并行结构,这种结构采用数据驱动的计算模型,使得I/O操作可以与计算过程重叠,从而优化了整体性能。当存储带宽成为计算性能的瓶颈时,线性阵列的运行时间主要取决于外部存储器和线性阵列之间的数据传输。通过公式(2.17),可以计算出数据传输总量,并据此估算总运行时间。论文中提到,如果存储带宽为BW,PE(Processing Element,处理单元)个数为PSp,块大小bSt设为1,那么线性阵列的总运行时间即可得出。 论文作者邬贵明在国防科学技术大学攻读计算机科学与技术博士学位,其导师为窦勇。研究中,作者针对FPGA实现矩阵计算面临的挑战,如硬件编程复杂、并行算法设计困难、硬件资源占用过多、存储和带宽需求大以及可扩展性差等问题,进行了深入研究。 首先,作者提出了一种面向基本矩阵运算的FPGA设计方法,包括矩阵向量乘和矩阵乘。通过时空映射和模型构建,实现了这两种运算的并行结构,并通过实验验证了其有效性。特别地,通过循环分块等技术优化了数据传输和存储,设计出一种适用于任意大小数据的高存储效率分块矩阵乘并行结构,将存储需求从O(b^2)降低到O(b),其中b为数据块大小。 其次,针对LU分解,作者提出了FPGA上的列选主元细粒度流水线并行算法,并实现了一个线性阵列,该阵列不仅能进行LU分解,还能解决下三角方程组和多右端项线性方程组。该并行结构通过充分利用流水线并行和数据重用,表现出优于已有工作和通用处理器软件实现的性能。 最后,论文还探讨了不选主元的LU分解,提出了一种分块策略和FPGA实现方法,通过循环分块和时空映射等手段,实现了分块稠密矩阵的并行分解。 这篇论文为FPGA在高性能计算和大数据处理中的应用提供了新的视角和解决方案,尤其是在矩阵运算和线性代数问题的高效并行处理上,具有重要的理论和实践价值。