Skip to main content
QUICK REVIEW

[论文解读] Polly's Polyhedral Scheduling in the Presence of Reductions

Johannes Doerfert, Kevin Streit|arXiv (Cornell University)|May 28, 2015
Parallel Computing and Optimization Techniques参考文献 32被引用 15
一句话总结

本文提出了一种针对 LLVM 中 Polly 优化器的减少感知多面体调度框架,可检测并优化具有结合律和交换律的归约操作,以利用并行性。通过使用私有化建模归约,并利用结合律和交换律放松内存依赖,该方法在多维循环嵌套中有效调度归约,在 BiCG 基准测试上实现了最高 2.21× 的加速。

ABSTRACT

The polyhedral model provides a powerful mathematical abstraction to enable effective optimization of loop nests with respect to a given optimization goal, e.g., exploiting parallelism. Unexploited reduction properties are a frequent reason for polyhedral optimizers to assume parallelism prohibiting dependences. To our knowledge, no polyhedral loop optimizer available in any production compiler provides support for reductions. In this paper, we show that leveraging the parallelism of reductions can lead to a significant performance increase. We give a precise, dependence based, definition of reductions and discuss ways to extend polyhedral optimization to exploit the associativity and commutativity of reduction computations. We have implemented a reduction-enabled scheduling approach in the Polly polyhedral optimizer and evaluate it on the standard Polybench 3.2 benchmark suite. We were able to detect and model all 52 arithmetic reductions and achieve speedups up to 2.21$ imes$ on a quad core machine by exploiting the multidimensional reduction in the BiCG benchmark.

研究动机与目标

  • 为解决生产级多面体优化器中缺乏归约支持的问题,此类问题常因循环携带依赖而阻塞并行性。
  • 使多面体优化器能够通过利用结合律和交换律特性,检测并利用归约操作。
  • 扩展多面体模型,引入基于依赖关系的可靠机制,用于建模归约及其并行化。
  • 在无需将代码预处理为 SARE 形式的情况下,将减少感知调度集成到 Polly 优化器中。
  • 评估减少感知优化在真实世界基准测试中的性能影响。

提出的方法

  • 提出一种基于依赖关系的算法,利用内存依赖和值依赖信息检测归约。
  • 提出一种模型,通过利用归约操作的结合律和交换律,放松内存依赖。
  • 采用私有化作为修复技术,以支持归约的向量化和并行化,为每个向量通道或线程引入临时数组。
  • 设计一种调度框架,通过确保在归约语句的第一个和最后一个实例之间不访问归约位置,来保持归约的完整性。
  • 将该方法集成到 LLVM 编译器基础设施中的 Polly 多面体优化器内。
  • 采用三阶段方法:归约检测、依赖关系放松和转换调度,全部基于多面体模型。

实验结果

研究问题

  • RQ1如何利用现有的依赖分析,在多面体模型中可靠地检测归约?
  • RQ2在保持正确性的同时,如何以一种可靠且实用的方式放松由归约引起的内存依赖?
  • RQ3如何将私有化集成到多面体调度中,以实现归约的向量化和并行化?
  • RQ4在真实世界基准测试中,通过利用归约并行性可获得多大的性能提升?
  • RQ5在缺乏归约支持的情况下,与传统多面体优化相比,归约感知调度表现如何?

主要发现

  • 所提出的归约检测算法成功识别出 PolyBench 3.2 基准测试套件中的全部 52 个算术归约。
  • 将归约感知调度集成到 Polly 中,可实现对多维归约(如 BiCG 基准中的归约)的检测与优化。
  • 通过在归约感知调度中利用 BiCG 基准中的并行性,在四核机器上实现了最高 2.21× 的加速。
  • 该方法无需预处理为 SARE 形式,即可同时支持归约的向量化和并行化,从而实现更灵活的优化。
  • 私有化的开销可控,当执行环境与优化策略匹配时,性能提升显著。
  • 该框架表明,归约感知调度必须集成到核心调度过程中,而不能作为后处理步骤。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。