Polyhedral Optimizations for a Data-Flow Graph Language

Polyhedral Optimizations for a Data-Flow Graph Language
复制标题

数据流图语言的多面体优化

DOI:
--
复制
发表时间:
2015
期刊:
International Workshop on Languages and Compilers for Parallel Computing
影响因子:
--
通讯作者:
Vivek Sarkar
Vivek Sarkar
中科院分区:
--
文献类型:
--
作者:
A. Sbîrlea;J. Shirako;L. Pouchet;Vivek Sarkar

文献摘要

被引文献

相似文献

本文提出了一种新的优化框架的数据流图语言DFGL,一个基于依赖的标记的宏流模型,可用作嵌入式领域特定的语言。我们的优化框架遵循“依赖第一”的方法,在捕获的语义DFGL程序的多面体表示,而不是标准的多面体方法,从访问函数和时间表的依赖关系。作为第一步,我们提出的框架执行两个重要的输入DFGL程序的合法性检查-检查潜在的违反单分配规则,并检查潜在的死锁。在执行这些合法性检查之后,使用DFGL依赖信息代替标准多面体依赖来实现多面体转换和代码生成,其包括自动循环转换、平铺以及具有粗粒度fork-join和细粒度doacross同步的并行循环的代码生成。我们的性能实验与9个基准测试英特尔至强和IBM Power 7多核处理器表明,DFGL版本优化我们提出的框架可以提供upi?最低6.9$$ 相对于这些基准测试的标准OpenMP版本,性能提高了十倍。据我们所知,这是第一个在多面体表示中编码显式宏并行的系统,以便为程序员提供具有合法性检查的易于使用的DSL符号,同时充分利用最先进的多面体框架中的优化功能。
This paper proposes a novel optimization framework for the Data-Flow Graph Language DFGL, a dependence-based notation for macro-dataflow model which can be used as an embedded domain-specific language. Our optimization framework follows a "dependence-first" approach in capturing the semantics of DFGL programs in polyhedral representations, as opposed to the standard polyhedral approach of deriving dependences from access functions and schedules. As a first step, our proposed framework performs two important legality checks on an input DFGL program -- checking for potential violations of the single-assignment rule, and checking for potential deadlocks. After these legality checks are performed, the DFGL dependence information is used in lieu of standard polyhedral dependences to enable polyhedral transformations and code generation, which include automatic loop transformations, tiling, and code generation of parallel loops with coarse-grain fork-join and fine-grain doacross synchronizations. Our performance experiments with nine benchmarks on Intel Xeon and IBM Power7 multicore processors show that the DFGL versions optimized by our proposed framework can deliver upi?źto 6.9$$ imes $$ performance improvement relative to standard OpenMP versions of these benchmarks. To the best of our knowledge, this is the first system to encode explicit macro-dataflow parallelism in polyhedral representations so as to provide programmers with an easy-to-use DSL notation with legality checks, while taking full advantage of the optimization functionality in state-of-the-art polyhedral frameworks.