Stateful Dataflow Multigraphs: A Data-Centric Model for High-Performance Parallel Programs.

arXiv: Programming Languages(2019)

引用 23|浏览45
暂无评分
摘要
With the ubiquity of accelerators, such as FPGAs and GPUs, the complexity of high-performance programming is increasing beyond the skill-set of the average scientist in domains outside of computer science. It is thus imperative to decouple programming paradigms and architecture-specific implementation from the underlying scientific computations. We present the Stateful DataFlow multiGraph (SDFG), a data-centric intermediate representation that facilitates high performance application development and optimization. By combining fine-grained data dependencies with high-level control flow, SDFGs are both expressive and amenable to high-level program transformations, such as tiling, vectorization, and double buffering. These transformations are then applied to the SDFG in an interactive process, using extensible pattern matching and graph rewriting. To facilitate this process, we provide a graphical user interface that enables applying transformations, as well as creating custom optimizations, reusable across applications. We demonstrate SDFGs on CPUs, GPUs, and FPGAs, using a wide variety of applications and motifs --- from fundamental computational kernels, through polyhedral applications, to graph analytics. We show that the representation is both expressive and performant, allowing domain scientists to develop applications that can be tuned to approach peak hardware performance without modifying the original scientific code.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要