[论文解读] Synergistic CPU-FPGA Acceleration of Sparse Linear Algebra
该论文提出 REAP,一种协同设计框架,通过将优化后的数据重组织操作卸载到 CPU,并向 FPGA 流式传输结构化数据包,从而加速稀疏线性代数计算。通过使用一种新型中间表示(RIR)将调度与计算解耦,REAP 在 SpGEMM 上实现 3.2× 的加速,在 Cholesky 分解上实现 1.85× 的加速,即使 FPGA 和 CPU 的浮点单元数量相等,也优于当前最先进的 CPU 库。
This paper describes REAP, a software-hardware approach that enables high performance sparse linear algebra computations on a cooperative CPU-FPGA platform. REAP carefully separates the task of organizing the matrix elements from the computation phase. It uses the CPU to provide a first-pass re-organization of the matrix elements, allowing the FPGA to focus on the computation. We introduce a new intermediate representation that allows the CPU to communicate the sparse data and the scheduling decisions to the FPGA. The computation is optimized on the FPGA for effective resource utilization with pipelining. REAP improves the performance of Sparse General Matrix Multiplication (SpGEMM) and Sparse Cholesky Factorization by 3.2X and 1.85X compared to widely used sparse libraries for them on the CPU, respectively.
研究动机与目标
- 解决由间接内存访问和不规则数据模式引起的稀疏线性代数性能瓶颈。
- 通过将复杂的数据重组织操作卸载到 CPU,克服 FPGA 在处理稀疏数据时的局限性。
- 通过将稀疏矩阵转换为可流式传输的基于数据包的格式,实现在 FPGA 上的高吞吐量、流水线化计算。
- 通过最大化 FPGA 上的内存带宽利用率,在 FPGA 和 CPU 浮点单元数量相同的情况下,实现超越多核 CPU 的卓越性能。
- 开发一种通用、可移植的框架,适用于多种稀疏核(如 SpGEMM 和 Cholesky 分解),并使用标准化的中间表示(RIR)
提出的方法
- 引入一种新的中间表示——REAP 中间表示(RIR),将稀疏矩阵数据表示为包含元数据和共享某一特征(如行或列)的矩阵元素的离散数据包。
- 利用 CPU 将输入矩阵从标准格式(CSR、COO)重新组织为 RIR 数据包,执行调度和数据打包,以在 FPGA 上实现顺序内存访问。
- 设计 FPGA 流水线,以流水线化、类似脉动的方式处理 RIR 数据包,充分利用丰富的 DSP 单元和片上内存,实现高吞吐量的浮点运算。
- 通过将 RIR 数据包泛化以适应不同的计算模式和部分结果累积,支持 SpGEMM 和 Cholesky 分解两种计算。
- 在 Cholesky 分解中引入仅含元数据的数据包,以改善调度并减少 FPGA 流水线中的空闲时间。
- 将 CPU 和 FPGA 的工作负载解耦,以支持重叠执行,最大化平台资源利用率。
实验结果
研究问题
- RQ1当 FPGA 和多核 CPU 拥有相同数量的浮点单元时,协同工作的 CPU-FPGA 架构是否能在稀疏线性代数工作负载上超越多核 CPU?
- RQ2将稀疏数据重新格式化为可流式传输的基于数据包的中间表示,是否能显著提升 FPGA 的内存带宽利用率和整体性能?
- RQ3基于 CPU 的预处理在多大程度上可以减少 FPGA 的空闲时间并提高稀疏矩阵计算的吞吐量?
- RQ4通用的中间表示(RIR)是否能有效用于加速多种稀疏核(如 SpGEMM 和 Cholesky 分解)?
- RQ5在 FPGA 内存带宽较高的情况下,CPU 上的数据重组织带来的性能增益是否足以抵消其开销?
主要发现
- 即使 FPGA 和 CPU 的浮点单元数量相同,REAP 在 CPU 上的 Intel MKL 单线程 SpGEMM 实现上仍实现了 3.2× 的几何平均加速。
- 在稀疏 Cholesky 分解上,REAP 相比单核 CPU 上的 CHOLMOD 实现,实现了 1.85× 的几何平均加速,表明即使在复杂核的情况下也实现了显著的性能提升。
- 即使 CPU 拥有多核且 FPGA 的浮点单元数量相当,REAP 相对于多核 CPU 的性能优势依然存在,表明数据流和带宽利用率是关键因素。
- CPU 将数据重组织为 RIR 数据包,使得 FPGA 上实现了规律的、高带宽的内存访问模式,这是性能提升的主要来源,其收益远超预处理的开销。
- 在 Cholesky 分解中使用仅含元数据的数据包进一步提升了性能,通过实现更优的调度并减少流水线停顿。
- 结果表明,仅靠原始内存带宽不足以实现高性能;通过 CPU 预处理实现有效的数据结构化和流式传输,才是释放 FPGA 在稀疏线性代数中潜力的关键。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。