[论文解读] Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures
本文提出状态数据流多图(SDFG),一种以数据为中心的中间表示,将科学计算代码与底层优化解耦,实现跨CPU、GPU和FPGA的性能可移植性。通过在SDFG上应用可扩展的图重写与基于模式的变换,该方法在不修改原始领域科学家代码的前提下,实现了异构架构上的近峰值性能。
The ubiquity of accelerators in high-performance computing has driven programming complexity beyond the skill-set of the average domain scientist. To maintain performance portability in the future, it is imperative to decouple architecture-specific programming paradigms from the underlying scientific computations. We present the Stateful DataFlow multiGraph (SDFG), a data-centric intermediate representation that enables separating program definition from its optimization. By combining fine-grained data dependencies with high-level control-flow, SDFGs are both expressive and amenable to program transformations, such as tiling and double-buffering. These transformations are applied to the SDFG in an interactive process, using extensible pattern matching, graph rewriting, and a graphical user interface. We demonstrate SDFGs on CPUs, GPUs, and FPGAs over various motifs --- from fundamental computational kernels to graph analytics. We show that SDFGs deliver competitive performance, allowing domain scientists to develop applications naturally and port them to approach peak hardware performance without modifying the original scientific code.
研究动机与目标
- 解决为异构高性能计算架构(如GPU和FPGA)编写高效可移植代码日益增长的复杂性问题。
- 将领域科学家的高层代码与底层性能优化解耦,以提升可维护性与开发效率。
- 使性能工程师能够通过结构化、可扩展的变换接口优化代码,而无需改动原始科学逻辑。
- 通过统一且可扩展的中间表示表达程序语义与优化,实现高性能可移植性。
- 通过基于模式匹配与图重写的图变换,支持自动与交互式代码变换。
提出的方法
- 将科学计算代码表示为状态数据流多图(SDFG),一种有向图,其中节点表示计算操作,边表示数据移动,以捕获细粒度的数据依赖关系。
- 采用双角色开发模型:领域科学家使用高级语言(如受限Python/MATLAB)编写代码,而性能工程师通过变换优化SDFG。
- 使用可扩展的模式匹配与图重写规则,对程序进行变换,如分块、双缓冲与循环融合。
- 集成图形用户界面,以交互方式探索并应用SDFG表示上的变换。
- 将优化后的SDFG编译为目标特定代码(如CUDA、OpenMP、OpenCL),同时保持数据流语义与性能特征。
- 利用SDFG的多级抽象,从寄存器到节点间通信,推理数据移动,从而支持通信避免型优化。
实验结果
研究问题
- RQ1以数据为中心的中间表示能否在CPU、GPU和FPGA等多样化异构架构上实现性能可移植性?
- RQ2性能工程师在不修改原始科学代码的前提下,通过SDFG上的变换优化代码的范围有多大?
- RQ3SDFG模型在表达与优化跨内存层次与加速器的复杂数据移动模式方面有多高效?
- RQ4在多个平台上实现近峰值性能的同时,能否保持领域科学家与性能工程师之间的职责分离?
- RQ5SDFG变换的可扩展性与现有模型相比,在支持新型优化模式与硬件目标方面表现如何?
主要发现
- SDFG成功地将科学逻辑与性能调优解耦,使领域科学家能够使用高级语言编写代码,而无需在性能或可移植性上做出妥协。
- SDFG模型通过允许同一份输入代码在CPU、GPU和FPGA上均实现近峰值性能,实现了性能可移植性。
- SDFG上的图重写与基于模式的变换支持复杂的优化,如分块与双缓冲,这些优化对减少内存带宽与延迟至关重要。
- 该方法在性能上与手写优化实现相当,表明当与可扩展的变换系统结合时,高层抽象可达到低层优化的水平。
- 领域科学家与性能工程师之间的职责分离得以保持,性能工程师可通过SDFG变换调优代码,而无需理解领域特定的数学原理。
- SDFG模型在支持任意数据移动模式与跨异构目标的多级优化方面,推广并扩展了现有模型(如Halide、Legion与多面体模型)。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。