经典论文阅读《A Framework for Unifying Reordering Transformations》《统一重排序变换的框架》

1)摘要

我们提出了一个用于统一迭代重排序变换的框架,这些变换包括循环交换、循环分布、倾斜、分块、索引集拆分和语句重排序。该框架基于这样一种思想:变换可以表示为将原始迭代空间映射到新迭代空间的调度。框架旨在为变换提供一种统一的表示和推理方式。作为框架的一部分,我们提供了辅助构建和使用调度的算法,特别是用于检验调度合法性、对齐调度以及为调度生成优化代码的算法。

2)

优化编译器会对语句的迭代进行重新排序,以改善指令调度、寄存器使用和缓存利用率,并挖掘并行性。目前已开发并研究了许多不同的重排序变换,例如循环交换、循环分布、倾斜、分块、索引集拆分和语句重排序[AK87,Pol88,Wol89b,Wol90,CK92]。

幺模变换(Ban90, WL91a)在一定程度上解决了这一问题。幺模变换是一个统一的框架,能够描述通过组合循环交换、循环倾斜和循环反转所得到的任何变换。这种变换通过从原始迭代空间到新迭代空间的幺模线性映射来描述。例如,双重嵌套循环中的循环交换将迭代 \([i, j]\) 映射到迭代 \([j, i]\)。该变换可以用一个幺模矩阵描述:

遗憾的是,幺模变换存在两方面的局限性:

a)它们只能应用于完美嵌套循环,

b) 循环嵌套中的所有语句都以相同方式进行变换。

因此,它们无法表示某些重要的变换,如循环融合、循环分布和语句重排序。

经典论文阅读《A Framework for Unifying Reordering Transformations》《统一重排序变换的框架》_第1张图片

这个英文还是看得懂。

3)

好难

你可能感兴趣的:(自动性能优化)