Affiliation:
1. Institute of Computing Technology, Chinese Academy of Sciences, Beijing, China
2. School of Computer Science and Engineering, University of New South Wales, Sydney, NSW, Australia
Abstract
Algorithm-specific, that is, 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 article, 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-the-art compilers and even achieve performance as competitive as hand-tuned code. Therefore, such a pattern-making methodology represents an encouraging direction for domain experts' experience and knowledge to be integrated into general-purpose compilers.
Funder
Australian Research Council
National Natural Science Foundation of China
National Science and Technology Major Projects
Ministry of Science and Technology of the People's Republic of China
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference47 articles.
1. Finding effective compilation sequences
2. Alverson R. and Callahan D. 1990. The Tera compute system. SIGARCH Comput. Archit. News. 10.1145/255129.255132 Alverson R. and Callahan D. 1990. The Tera compute system. SIGARCH Comput. Archit. News. 10.1145/255129.255132
3. Automatic C-to-CUDA Code Generation for Affine Programs
4. Representing linear algebra algorithms in code: the FLAME application program interfaces
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Bandwidth-Aware Loop Tiling for DMA-Supported Scratchpad Memory;Proceedings of the ACM International Conference on Parallel Architectures and Compilation Techniques;2020-09-30
2. Finding Good Compilation Plans: A Strategy to Enhance an Adaptive Optimization System;IEEE Latin America Transactions;2020-07
3. PPOpenCL: a performance-portable OpenCL compiler with host and kernel thread code fusion;Proceedings of the 28th International Conference on Compiler Construction - CC 2019;2019
4. C♭: a new modular approach to implementing efficient and tunable collections;Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software;2018-10-24
5. Yet Another Intelligent Code-Generating System: A Flexible and Low-Cost Solution;Journal of Computer Science and Technology;2018-09