80 likes | 213 Vues
This document explores advanced system software for parallel computing, focusing on the innovative aspects of auto-tuning compilers versus traditional optimizing compilers. It highlights the challenges of modern compiler enhancement and the complexities of optimizing large codebases. The promise of search-based auto-tuners is examined, showcasing their capability to generate multiple code variants and benchmark them for optimal performance. Recent advancements in auto-tuners are discussed, emphasizing their applicability to general-purpose parallel programming and integration within operating system frameworks.
E N D
Two System Software Components • Hard to do the innovation • Replacement for Tradition Optimizing Compilers • Replacement for conventional large monolithic OS
Autotunersvs Traditional Compilers • Quality of Generated Code • Which Optimizations to perform • Choosing parameters for the optimizations • Selecting from among alternative implementations • Resulting Optimizing Space
Difficulty of Enhancing Modern Compilers • Constraints of Modern Compilers • Million lines of code • New optimizations are difficult to add • Large investment • Functional Correctness is more imp than output code quality • Hence peak performance may still require handcrafting of the program
Promise of Search Based Autotuners • Search based technique used in several areas of code generation • Generates many variants of a given kernel • Benchmarks each variant by running on the target platform • Time to complete on the target platform ( tries many or all optimization switches ) • Often find non-intuitive loop unrolling or register blocking factors that lead to better performance
Recent Autotuners Earlier Auto -Tuners were used concentrate on non-intuitive loop unrolling Recent Auto-Tuners are applicable for general-purpose parallel programs Auto-Tuning Cycle Auto-Tuners as Libraries Auto-Tuners as Stand-Alone Application Integrating Auto-Tuners as part of Operating System Compiler Extensions for Auto-Tuning Note: Taken from More recent paper " Auto-Tuning Support for Manycore applications - Perspectives for Operating Systems and Compilers
References • High-Performance Compilers for Parallel Computing by Michael Wolfe • Optimizing Compilers for Modern Architectures: A Dependence-based Approach by Randy Allen • C.A. Schaefer, V.Pankratius and W.F.Ticy. Atune-IL: An instrumentation language for autotuning parallel applications. Technical Report, University of Karlsruhe, 2009