Extendable Pattern-Oriented Optimization Directives (extended version)
Institute of Computing Technology, Chinese Academy of Sciences
ACM Transactions on Architecture and Code Optimization, 2013
@article{cui2013extendable,
title={Extendable Pattern-Oriented Optimization Directives (extended version)},
author={Cui, Huimin and Xue, Jingling and Wang, Lei and Yang, Yang and Feng, Xiaobing and Fan, Dongrui},
year={2013}
}
Algorithm-specific, i.e., semantic-specific optimizations have been observed to bring significant performance gains, especially for a diverse set of multi/many-core architectures. However, current programming models and compiler technologies for the state-of-the-art architectures do not exploit well these performance opportunities. In this paper, we propose a pattern-making methodology that enables algorithm-specific optimizations to be encapsulated into "optimization patterns". Such optimization patterns are expressed in terms of preprocessor directives so that simple annotations can result in significant performance improvements. To validate this new methodology, a framework, named EPOD, is developed to map these directives into the underlying optimization schemes for a particular architecture. It is difficult to create an exact performance model to determine an optimal or near-optimal optimization scheme (including which optimizations to apply and in which order) for a specific application, due to the complexity of applications and architectures. However, it is trackable to build individual optimization components and let compiler developers synthesize an optimization scheme from these components. Therefore, our EPOD framework provides an Optimization Programming Interface (OPI) for compiler developers to define new optimization schemes. Thus, new patterns can be integrated into EPOD in a flexible manner. We have identified and implemented a number of optimization patterns for three representative computer platforms. Our experimental results show that a pattern-guided compiler can outperform the state-of-theart compilers and even achieve performance as competitive as hand-tuned code. Therefore, such a patternmaking methodology represents an encouraging direction for domain experts’ experience and knowledge to be integrated into general-purpose compilers.
October 13, 2012 by hgpu