2024HPCA——BeaconGNN
BeaconGNN: Large-Scale GNN Acceleration with Out-of-Order Streaming In-Storage Computing
该篇文章由UCLA与北京大学联合发表,主要介绍了一种名为 BeaconGNN 的新型计算架构设计,旨在加速大规模图神经网络(GNN)的处理。该设计利用存内计算(In-storage Computing, ISC),并针对 GNN 的特定需求进行了优化,以提高吞吐量和能效,也是从三个层面优化I/O access:controller,channel和die。
研究背景
图神经网络(GNN)在复杂关系和依赖性分析中表现出色,但数据准备阶段(如图采样和特征表查询)会导致大量数据在存储和处理器之间传输,带来巨大 I/O 带宽压力。
现有的 ISC 解决方案在处理 GNN 任务时存在一些问题,如严格顺序的邻居采样、与闪存访问粒度不匹配的 I/O 请求大小以及依赖固件处理导致的 I/O 限制。
研究目标
提出一种能充分利用闪存内部并行性的 ISC 设计,以支持大规模 GNN 的数据结构和特征表。
解决现有 ISC 设计在处理 GNN 时的性能瓶颈,如多跳邻居采样的低效性、小且随机的 I/O 模式与闪存页级传输的不匹配,以及固件处理 I/O 请求的效率低下。
设计方案
DirectGraph:一种新的 GNN 图格式,直接使用闪存物理地址进行索引,消除多级地址转换,允许无序的邻居采样,提高闪存资源利用率。
多级近数据处理引擎:在闪存控制器、通道和芯片级别部署处理引擎,减少数据传输,提高 I/O 效率。
空间加速器:附加在设备总线上,用于加速 GNN 计算阶段的嵌入聚合和更新操作。
系统架构
BeaconGNN-2.0:在软件和硬件协同设计的基础上,通过 DirectGraph 和多级近数据处理引擎,优化了整个 GNN 任务流程。
三级架构:
闪存芯片级采样器:进行邻居采样和特征向量检索,仅返回有用数据,减少通道传输。
闪存通道级命令路由器:在后台芯片间直接通信,无需闪存固件参与。
空间加速器:附加在设备总线上,用于加速 GNN 计算。
创新点与优势
DirectGraph 格式:消除了多级地址转换,支持无序的邻居采样,提高了闪存资源利用率。
三级架构处理引擎:专门针对 GNN 的小随机 I/O 模式进行优化,利用超低延迟闪存(ULL-flash)的特性,减少数据准备阶段的延迟。
定制硬件处理闪存 I/O:通过硬件实现闪存命令的路由和处理,提高了 I/O 吞吐量,释放了闪存的高带宽潜力。
性能评估
性能提升:相较于现有的 ISC 设计,BeaconGNN 在吞吐量上提高了 11.6 倍,能效提高了 4 倍。
实验设置:通过模拟六个 GNN 加速系统,使用真实的大规模 GNN 数据集进行评估,涵盖了不同的工作负载和配置。
实验结果:在多个数据集上,BeaconGNN-2.0 显示出显著的性能提升,尤其是在利用闪存资源和减少数据准备时间方面。
结论
文章提出,BeaconGNN 是一种针对大规模 GNN 加速的新型 ISC 设计,通过创新的 DirectGraph 格式和多级近数据处理引擎,解决了现有 ISC 在 GNN 加速中的性能瓶颈问题,显著提高了吞吐量和能效,展示了在 GNN 计算领域应用的潜力。