中文

基于增强拓扑神经进化(NEAT)的If转换优化

分布式、并行与集群计算 2016-03-04 v1

摘要

控制流依赖是程序加速的内在限制因素。随着指令级并行架构的出现,if转换优化已成为从串行程序中提取并行性的关键。尽管文献中提出了许多if转换优化启发式方法,但大多数不考虑底层硬件和输入程序的差异而采用刚性准则。本文中,我们提出了一种新颖的if转换方案,使用机器学习技术(NEAT,增强拓扑神经进化)执行高效的if转换变换。与文献中考虑单个分支不同,该方法支持对程序内所有分支进行if转换定制。我们的技术还提供了异构系统编译所需的灵活性。通过实验和报告结果展示了我们方法的有效性,表明程序可在相同架构上无需修改原始代码即可加速。我们的技术适用于通用编程语言(如C/C++),且对程序员透明。我们在LLVM 3.6.1编译基础设施中实现了该技术,并在运行于Intel(R) Xeon(R) 3.50GHz多核处理器上的SPEC-CPU2006 v1.1基准测试套件的核函数上进行了实验。我们的结果表明,相比标准优化代码(包含if转换的LLVM -O2),性能提升高达8.6%,表明需要能够适应每个单独分支独特特征的if转换编译优化。

关键词

引用

@article{arxiv.1603.01112,
  title  = {If-Conversion Optimization using Neuro Evolution of Augmenting Topologies},
  author = {Reem Elkhouly and Keiji Kimura and Ahmed El-Mahdy},
  journal= {arXiv preprint arXiv:1603.01112},
  year   = {2016}
}

备注

Part of the Program Transformation for Programmability in Heterogeneous Architectures (PROHA) workshop, Barcelona, Spain, 12th March 2016, 6 pages, LaTeX, 2 PDF figures