[论文解读] An Efficient Dispatcher for Large Scale GraphProcessing on OpenCL-based FPGAs
本文提出了一种基于双模块、基于边块的调度器,用于在基于OpenCL的FPGA上进行大规模图处理,结合顶点中心和边中心计算,以动态适应不同的并行度水平。通过将边组织为固定大小的边块,并使用运行时调度器在处理模式间切换,该方法优化了片上内存使用和流水线效率,在多种图工作负载上实现了优于先前基于FPGA系统的性能表现。
High parallel framework has been proved to be very suitable for graph processing. There are various work to optimize the implementation in FPGAs, a pipeline parallel device. The key to make use of the parallel performance of FPGAs is to process graph data in pipeline model and take advantage of on-chip memory to realize necessary locality process. This paper proposes a modularize graph processing framework, which focus on the whole executing procedure with the extremely different degree of parallelism. The framework has three contributions. First, the combination of vertex-centric and edge-centric processing framework can been adjusting in the executing procedure to accommodate top-down algorithm and bottom-up algorithm. Second, owing to the pipeline parallel and finite on-chip memory accelerator, the novel edge-block, a block consist of edges vertex, achieve optimizing the way to utilize the on-chip memory to group the edges and stream the edges in a block to realize the stream pattern to pipeline parallel processing. Third, depending to the analysis of the block structure of nature graph and the executing characteristics during graph processing, we design a novel conversion dispatcher to change processing module, to match the corresponding exchange point.
研究动机与目标
- 解决在FPGA上大规模图处理中不规则内存访问和可变并行度的挑战。
- 改善具有偏斜顶点度分布的图工作负载中的片上内存利用率和流水线吞吐量。
- 设计一种动态运行时调度器,根据工作负载特征在顶点中心和边中心处理模式之间切换。
- 通过边块优化数据流和内存访问模式,减少随机访问开销。
- 在多种图工作负载上评估该框架,并与现有FPGA加速器进行性能对比。
提出的方法
- 该框架采用双模块架构,根据运行时条件在顶点中心和边中心处理模式之间动态切换。
- 引入边块作为包含八个目标顶点的固定大小单元,实现边向流水线的结构化流式传输。
- 提出一种新型运行时调度器,分析图结构和执行特征,以在每次迭代中选择最优处理模式(推送 vs. 拉取)。
- 边块机制按目标顶点分组边,以提高数据局部性并实现顺序访问模式,减少内存访问开销。
- 该系统利用FPGA的流水线并行性和片上块RAM(BRAM)资源,实现高吞吐量数据处理。
- 该框架在单个FPGA上使用OpenCL实现,针对内存带宽和资源利用率进行了优化。
实验结果
研究问题
- RQ1如何使单个FPGA高效处理大规模图处理中高度可变的并行度和不规则的内存访问模式?
- RQ2在图执行过程中,切换顶点中心(推送)和边中心(拉取)计算模型的最优策略是什么?
- RQ3如何设计边块,以在基于FPGA的图加速器中最大化片上内存重用和流水线效率?
- RQ4在FPGA上结合动态模式切换与边块数据结构可实现多大的性能提升?
- RQ5与静态或单模式处理框架相比,所提出的调度器在吞吐量和资源利用率方面表现如何?
主要发现
- 所提出的调度器在四种不同的图工作负载上实现了优于或相当的性能表现,相较于先前的基于FPGA的系统。
- 使用边块显著提高了数据局部性,并通过实现边向流水线的顺序流式传输,减少了随机内存访问。
- 在顶点中心和边中心模式之间进行的动态切换能够适应工作负载特征的变化,从而提高整体吞吐量。
- 通过将边分组为固定大小的块,该框架有效利用了有限的片上内存和BRAM资源。
- 评估结果表明,结合智能模式切换的双模块方法优于静态或单体式处理模型。
- 该系统展现出强大的可扩展性潜力,未来工作将聚焦于多FPGA部署以进一步提升性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。