论文标题

使用Meliora指导优化:深入的记忆巷

Guiding Optimizations with Meliora: A Deep Walk down Memory Lane

论文作者

Meng, Kewen, Norris, Boyana

论文摘要

性能模型对于理解应用程序的行为非常有用,因此可以帮助指导设计和优化决策。不幸的是,非平凡计算的绩效建模通常需要大量的专业知识和人为努力。而且,即使是由专家执行的,它也必须限制范围,准确性或两者兼而有之。但是,由于通常不可用的模型,因此程序员,编译器或自动调整器无法轻松使用它们来指导优化,并且仅限于基于启发式的方法,这些方法可能需要大量时间来执行不必要的转换。我们认为,简化模型生成并使其可扩展(无论是在人为努力和代码规模方面)都可以使编译技术以及手动优化和自动调整的巨大改进。为此,我们正在基于中间语言表示的静态分析,为基于机器学习的绩效模型生成的基于机器学习的绩效模型生成的Meliora代码分析基础架构。我们在匹配已知代码方面表现出良好的准确性,并展示了如何使用Meliora通过手动或与AutoTuner结合使用优化知识来优化新代码。自动调整时,Meliora消除或大幅度降低了经验搜索空间,同时通常可以实现竞争性能。

Performance models can be very useful for understanding the behavior of applications and hence can help guide design and optimization decisions. Unfortunately, performance modeling of nontrivial computations typically requires significant expertise and human effort. Moreover, even when performed by experts, it is necessarily limited in scope, accuracy, or both. However, since models are not typically available, programmers, compilers or autotuners cannot use them easily to guide optimizations and are limited to heuristic-based methods that potentially take a lot of time to perform unnecessary transformations. We believe that streamlining model generation and making it scalable (both in terms of human effort and code size) would enable dramatic improvements in compilation techniques, as well as manual optimization and autotuning. To that end, we are building the Meliora code analysis infrastructure for machine learning-based performance model generation of arbitrary codes based on static analysis of intermediate language representations. We demonstrate good accuracy in matching known codes and show how Meliora can be used to optimize new codes though reusing optimization knowledge, either manually or in conjunction with an autotuner. When autotuning, Meliora eliminates or dramatically reduces the empirical search space, while generally achieving competitive performance.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源