有状态数据流多重图:以数据为中心的异构体系结构性能可移植性模型
Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures
摘要:
加速器在高性能计算中的普遍存在已经使编程的复杂性超出了普通领域科学家的技能范围。为了在未来保持性能的可移植性,必须将特定于体系结构的编程范式与底层的科学计算解耦。我们提出了有状态数据流multiGraph(SDFG),一个以数据为中心的中间表示,使分离程序定义从其优化。通过将细粒度的数据依赖性与高级控制流相结合,SDFG既具有表达能力,又适合程序转换,例如平铺和双缓冲。通过使用可扩展的模式匹配、图形重写和图形用户界面,在交互式过程中将这些转换应用于SDFG。我们在CPU,GPU和FPGA上展示了各种图案的SDFG-从基本的计算内核到图形分析。我们表明,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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。