by Spyridon Triantafyllis, Manish Vachharajani, David I. August
Journal of Instruction-level Parallelism
http://liberty.cs.princeton.edu/Publications/jilp_ose.pdf
Add To MetaCart
Abstract:
To meet the performance demands of modern architectures, compilers incorporate an everincreasing number of aggressive code transformations. Since most of these transformations are not universally beneficial, compilers traditionally control their application through predictive heuristics, which attempt to judge an optimization’s effect on final code quality a priori. However, complex target architectures and unpredictable optimization interactions severely limit the accuracy of these judgments, leading to performance degradation because of poor optimization decisions. This performance loss can be avoided through the iterative compilation approach, which advocates exploring many optimization options and selecting the best one a posteriori. However, existing iterative compilation systems suffer from excessive compile times and narrow application domains. By overcoming these limitations, Optimization-Space Exploration (OSE) becomes the first iterative compilation technique suitable for general-purpose production compilers. OSE narrows down the space of optimization options explored through limited use of heuristics. A compiler tuning phase further limits the exploration space. At compile time, OSE prunes the remaining optimization configurations in the search space by exploiting feedback from earlier configurations tried. Finally, rather than measuring actual runtimes, OSE compares optimization outcomes through static performance estimation, further enhancing compilation speed. An OSE-enhanced version of Intel’s reference compiler for the Itanium architecture yields a performance improvement of more than 20 % for some SPEC benchmarks. 1.
Citations
|
291
|
Compiler transformations for high-performance computing
– BACON, GRAHAM, et al.
- 1994
|
|
264
|
Effective compiler support for predicated execution using the hyperblock
– Mahlke, Lin, et al.
- 1992
|
|
104
|
Integrating Register Allocation and Instruction Scheduling for RISCs
– Bradlee, Eggers, et al.
- 1991
|
|
102
|
Code Scheduling and Register Allocation in Large Basic Blocks
– Goodman, Hsu
- 1988
|
|
100
|
Combining loop transformations considering caches and scheduling
– Wolf, Maydan, et al.
- 1996
|
|
79
|
Performance estimation of embedded software with instruction cache modeling
– Li, Malik, et al.
- 1999
|
|
77
|
Minimizing register requirements under resource-constrained rateoptimal software pipelining
– Govindarajan, Altman, et al.
- 1994
|
|
48
|
Adaptive optimizing compilers for the 21 st century
– Cooper, Subramanian, et al.
- 2001
|
|
44
|
An approach for exploring code improving transformations
– Whitfield, Soffa
- 1997
|
|
44
|
A framework for balancing control flow and predication
– August, Hwu, et al.
- 1997
|
|
42
|
Integrated predicated and speculative execution
– August, Connors, et al.
- 1998
|
|
38
|
CCG: A prototype coagulating code generator
– Morris
- 1991
|
|
34
|
Instruction Scheduling for clustered VLIW DSPs
– Leupers
- 2000
|
|
34
|
Iterative compilation in a non-linear optimisation space
– Bodin, Kisuki, et al.
- 1998
|
|
33
|
Continuous program optimization: Design and evaluation
– Kistler, Franz
- 2001
|
|
26
|
Evaluating iterative compilation
– Fursin, O’Boyle, et al.
- 2002
|
|
21
|
A feasibility study in iterative compilation
– Kisuki, Knijnenburg, et al.
- 1999
|
|
16
|
OCEANS: Optimizing Compilers for Embedded Applications
– Aarts
- 1997
|
|
13
|
Automatic recommendation of compiler options
– Granston, Holler
- 2001
|
|
10
|
Performance evaluation and prediction for parallel algorithms on the bbn gp1000
– Bodin, Windheiser, et al.
- 1990
|
|
8
|
GAPS: iterative feedback directed parallelisation using genetic algorithms
– Nisbet
- 1998
|
|
7
|
Modulo scheduling with reduced register pressure
– Llosa, Valero, et al.
- 1998
|
|
7
|
Genetic programming applied to compiler heuristic optimization
– Stephenson, O’Reilly, et al.
- 2003
|
|
3
|
A feasibility study
– Kisuki, Knijnenburg, et al.
- 1999
|
|
2
|
Phillips Trimedia Processor Homepage
– Corporation
- 2002
|
|
2
|
Electron C Compiler User's Guide for Linux
– Corporation
- 2001
|
|
1
|
Equator MAP Architecture
– Corporation
- 2002
|
|
1
|
OCEANS: Optimizing compilers for embedded HPC applications
– Aarts, Barreteau, et al.
- 1997
|
|
1
|
pfmon Performance Monitoring Tool
– Eranian
|
|
1
|
pfmon Performance Monitoring Tool.” ftp://ftp.hpl.hp.com/pub/linux-ia64
– Eranian
|