仿射循环变换的性能词汇
分布式、并行与集群计算
2019-04-10 v2
摘要
现代多面体编译器擅长对具有静态控制部分的代码进行激进优化,但寻找高性能多面体变换(尤其针对不同硬件目标)的现行实践仍很大程度上依赖自动调优。本工作中我们提出一种新颖的多面体调度技术,旨在减少自动调优需求,同时允许构建可定制且特定的变换策略。我们设计了约束与目标,对步长优化或并行性与复用之间的权衡等若干关键性能方面进行建模,同时考虑目标机器的重要体系结构特征。所开发的目标集合体现了一种用于循环变换的“性能词汇”。目标是使用该由性能惯用语构成的词汇,构建适用于若干程序类的变换方案。我们使用PolyBench/C基准测试套件评估我们的工作,并在10核Intel Core-i9 (Skylake-X)上针对Pluto编译器生成的大型优化空间进行实验验证。结果表明,无需在源代码中实现分块,亦不使用实验性自动调优,我们即可在多数基准上取得与Pluto相当或更优的性能。
引用
@article{arxiv.1811.06043,
title = {A Performance Vocabulary for Affine Loop Transformations},
author = {Martin Kong and Louis-Noël Pouchet},
journal= {arXiv preprint arXiv:1811.06043},
year = {2019}
}