[论文解读] Serpens: A High Bandwidth Memory Based Accelerator for General-Purpose Sparse Matrix-Vector Multiplication
Serpens 是一种基于 HBM 的 FPGA 加速器,专为通用稀疏矩阵-向量乘法(SpMV)设计,通过内存中心化处理引擎和索引聚合技术,优化内存访问和 URAM 利用率。其性能最高达 60.55 GFLOP/s,相较于 GraphLily 提升 3.79 倍吞吐量,且在 SuiteSparse 矩阵上相比 K80 GPU 实现 6.25 倍更高的能效比。
Sparse matrix-vector multiplication (SpMV) multiplies a sparse matrix with a dense vector. SpMV plays a crucial role in many applications, from graph analytics to deep learning. The random memory accesses of the sparse matrix make accelerator design challenging. However, high bandwidth memory (HBM) based FPGAs are a good fit for designing accelerators for SpMV. In this paper, we present Serpens, an HBM based accelerator for general-purpose SpMV.Serpens features (1) a general-purpose design, (2) memory-centric processing engines, and (3) index coalescing to support the efficient processing of arbitrary SpMVs. From the evaluation of twelve large-size matrices, Serpens is 1.91x and 1.76x better in terms of geomean throughput than the latest accelerators GraphLiLy and Sextans, respectively. We also evaluate 2,519 SuiteSparse matrices, and Serpens achieves 2.10x higher throughput than a K80 GPU. For the energy/bandwidth efficiency, Serpens is 1.71x/1.99x, 1.90x/2.69x, and 6.25x/4.06x better compared with GraphLily, Sextans, and K80, respectively. After scaling up to 24 HBM channels, Serpens achieves up to 60.55~GFLOP/s (30,204~MTEPS) and up to 3.79x over GraphLily. The code is available at https://github.com/UCLA-VAST/Serpens.
研究动机与目标
- 通过设计内存优化的加速器,解决 SpMV 中不规则内存访问模式的挑战。
- 克服现有 FPGA 加速器(如 GraphLily 和 Sextans)的局限性,这些加速器未完全针对 SpMV 进行定制,或未能充分利用内存带宽。
- 在无需重新设计原型的情况下,实现对任意稀疏矩阵的高性能与可扩展性,支持数据中心中的通用部署。
- 最大化 HBM 与片上内存(BRAM/URAM)的利用率,以减少片外内存延迟,提升吞吐量与能效。
- 在保持稀疏工作负载低能量与带宽开销的前提下,实现与 GPU 竞争的性能表现。
提出的方法
- 采用内存中心化处理引擎,以流式、输出驻留的方式处理稀疏矩阵,最大限度减少对片外内存的访问。
- 实现索引聚合,将非零索引高效打包至片上 URAM 中,提升内存带宽利用率并降低访问延迟。
- 将密集输入向量划分为多个段,在片上 BRAM/URAM 中累积结果,实现高吞吐、低延迟计算。
- 采用自定义数据布局与预处理流水线,将稀疏矩阵格式转换为加速器友好的存储格式,兼容任意 SpMV 工作负载。
- 利用基于 HBM 的 FPGA(U280),最多支持 24 个 HBM 通道,结合 TAPA 和 Autobridge 工具,解决大规模设计中的布局布线拥塞问题。
- 设计可扩展、可重构的架构,在无需重新配置的情况下,对多种稀疏矩阵保持高性能表现。
实验结果
研究问题
- RQ1基于 HBM 的 FPGA 加速器能否在通用 SpMV 上实现比现有 GPU 和 FPGA 加速器更高的吞吐量与能效?
- RQ2索引聚合在提升 URAM 利用率与降低 SpMV 工作负载中内存访问开销方面有多高效?
- RQ3内存中心化处理引擎在多大程度上可减少对片外内存的依赖,并提升在不规则稀疏数据上的性能表现?
- RQ4将 HBM 通道数从 16 增加至 24,对 SpMV 加速中的性能与可扩展性有何影响?
- RQ5自定义 FPGA 加速器能否在广泛的真实世界稀疏矩阵上,同时超越高端 GPU(如 K80)的吞吐量与能效表现?
主要发现
- 在 12 个大型稀疏矩阵上,Serpens 的几何平均吞吐量比 GraphLily 高 1.91 倍,比 Sextans 高 1.76 倍。
- 在 2,519 个 SuiteSparse 矩阵上,Serpens 的吞吐量比 K80 GPU 高 2.10 倍,能效比提升 6.25 倍。
- 在 24 个 HBM 通道下,Serpens 达到 60.55 GFLOP/s 的峰值性能与 30,204 MTEPS,相比 GraphLily 最高实现 3.79 倍加速。
- 在 SuiteSparse 基准测试套件中,Serpens 的带宽效率提升 4.06 倍,能效比提升 6.25 倍,相较 K80 GPU。
- 尽管 BRAM 使用量更高,但由于针对 SpMV 的专用优化,Serpens 的 LUT、FF、DSP 与 URAM 使用量均少于 GraphLily。
- 24 通道版本的 Serpens 维持 270 MHz 时钟频率,并通过 TAPA 与 Autobridge 工具成功克服了布局布线拥塞问题。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。