 |
Brief information
|
UNIDAPT Group (UNIversal aDAPTation) pioneers and promotes radically new practical techniques to overcome the complexity of current architectures, compilers, operating systems and programming environments, and to automate and improve architecture and compiler design (particularly for future heterogeneous multi-core systems), optimize and parallelize systems to improve performance, power consumption, size and fault-tolerance, reduce cost and time to market based on machine learning, artificial intelligence, statistical methods and biologically inspired techniques. This is critical to be able to continue innovation in science and industry (bioinformatics, medicine, physics, chemistry,
finances, gaming, etc) that demands ever-increasing computing resources while placing strict requirements on systems.
UNIDAPT group is created by Dr. Grigori Fursin and has close collaboration with the groups of Prof.Michael O'Boyle (University of Edinburgh), Prof.Olivier Temam (INRIA) and colleagues from IBM.
We are leading the following developments:
- MILEPOST GCC - the first machine learning based self-tuning research compiler;
- Continuous Collective Compilation (and Parallelization) Framework - framework to reuse the optimization knowledge among different programs and architectures based on MILEPOST GCC and Global Optimization Database;
- Interactive Compilation Interface - interface for GCC, Open64/PathScale and other compilers to enable practical iterative interactive optimizations and make future compilers modular and extensible with automatically tuned optimization heuristic easily adaptable to different architectures and constraints;
- MiDataSets - multiple datasets to enable realistic program and architecture optimizations, run-time adaptation and performance evaluation;
- UNIDAPT Framework - techniques to enable run-time adaptation for statically compiled programs on heterogeneous multi-core architectures;
- Techniques to reuse knowledge and speedup program optimizations and architecture design space exploration based on reactions to optimizations;
We have a fruitful collaboration with both academia and industry:
- INRIA/IRISA (France), University of Edinburgh (UK), Imperial College (UK), UPC (Spain), UIUC (USA), University of Delaware (USA), Ghent University (Belgium), ICT (China)
- IBM, ARC (UK), CAPS Enterprise (France), AMD (USA), STMicro, NXP (Netherlands), ARM (UK)
If you would like to discuss research, collaboration, visits, internships, grant proposals, funding, consulting services and knowledge transfer, startups, provide sponsorship, etc, please don't hesitate to contact us! |
|
|
MILEPOST GCC
|
Together with the MILEPOST colleagues, we are developing MILEPOST GCC - the first machine learning based self-tuning research compiler (described in our GCC Summit'08 paper). The pre-release version of MILEPOST GCC is available on the CVS of GCC-ICI project (March 2008 version). We plan to document and release MILEPOST GCC v1.0 in summer 2008. You can subscribe for UNIDAPT announcements to know when it is released or contact Grigori Fursin for more details.
Tuning hardwired compiler optimizations for rapidly
evolving hardware makes porting an optimizing compiler
for each new platform extremely challenging. Our
radical approach is to develop a modular, extensible,
self-optimizing compiler that automatically learns the
best optimization heuristics based on the behavior of the
platform. MILEPOST GCC is
a machine-learning-based compiler that automatically
adjusts its optimization heuristics to improve the execution
time, code size, or compilation time of specific
programs on different architectures. Our preliminary
experimental results show that it is possible to considerably
reduce execution time of various benchmarks (MiBench, MediaBench, EEMBC, SPEC) on a range of platforms (x86, x8664, IA64, ARC, Longson/Godson, etc) entirely automatically.
Some references: GCC Summit'08 paper and bib,CGO'06 paper and bib; IBM's press release at CNN Money.
[ MILEPOST GCC development branch is available and will be updated in summer 2008 ]
|
|
|
Continuous Collective Compilation (and Parallelization) Framework
|
This framework automate and simplify transparent reuse of optimization knowledge among different programs and architectures using static and dynamic (hardware counters and reactions) program features based on MILEPOST GCC and Global Optimization Database. It will be used to overcome the complexity of current architectures, compilers, operating systems and programming environments, and to automate and improve architecture and compiler design (particularly for future heterogeneous multi-core systems), optimize and parallelize systems to improve performance, power consumption, size and fault-tolerance, reduce cost and time to market based on machine learning, artificial intelligence, statistical methods and biologically inspired techniques.
This framework is highly portable and have been tested on various platforms including x86, x8664, IA64, ARC, Longson/Godson, etc. It uses MILEPOST GCC to enable iterative compilation and program feature extraction, and allow transparent program optimizations without Makefile and other project modifications. It uses MiDataSets to analyze the behavior of programs with multiple datasets to enable research on run-time adaptation. It uses PAPI library to collect describing program dynamic behavior. CCC Framework can be used to optimize benchmarks such as SPEC 2006 transparently without any Makefile and project modifications. Our preliminary
experimental results show that it is possible to
reduce execution time and code size of various benchmarks (MiBench, MediaBench, EEMBC, SPEC) on a range of platforms entirely automatically.
The pre-release version of CCC Framework is available on the CVS project (March 2008 version). We plan to release CCC Framework v1.0 in summer 2008. You can subscribe for UNIDAPT announcements to know when it is released.
Some references: GCC Summit'08 paper and bib.
[ Sourceforge development site ] |
|
|
Interactive Compilation Interface
|
The aim of the Interactive Compilation Interface (ICI) is to transform compilers such as GCC (production quality non-research compiler that supports many languages and architectures) into research compiler with minimal changes. We use it to enable research on practical iterative fine-grain program optimizations for different constraints (performance, code size, power consumption, DSE, different ISAs, etc), to unify optimization knowledge reuse among different programs and architectures using statistical and machine learning techniques, and to improve default compiler optimization heuristic. We expect that this will simplify the design of future compilers and make them modular and extensible with automatically tuned optimization heuristic easily adaptable to different architectures and constraints.
Some references: GCC Summit'08 paper and bib; HiPEAC'05 paper and bib; HiPEAC cluster.
[ Sourceforge development site for GCC ]
[ Sourceforge development site for Open64 Compiler ]
[ Sourceforge development site for PathScale Compiler ] |
|
|
MiDataSets
|
Iterative optimization is now a popular technique to obtain performance or code size improvements over the default settings in a compiler. However, in most of the research projects, the best configuration is found for one arbitrary dataset and it is assumed that this configuration will work well with any other dataset that a program uses. We created 20 different datasets per program for MiBench benchmark to evaluate this assumption and analyze the behavior of various programs with multiple datasets. We expect that MiDataSets will enable research on realistic program and architecture optimizations, run-time adaptation and performance evaluation.
Some references: HiPEAC'07 paper and bib; GCC Summit'07 paper and bib.
[ Sourceforge development site ] |
|
|
UNIDAPT Framework
|
UNIDAPT framework enables practical and transparent run-time adaptability for statically compiled or dynamic programs with any behavior (regular or irregular) for different constraints (performance, power consumption) on scalar and multi-core heterogeneous systems. It does not require complex run-time recompilation frameworks and thus reliable, secure and easy to debug. This is of particular importance for new multi-core and heterogeneous computing systems (CELL, SUN T1, Intel TeraScale, various GPU architectures). We are currently implementing this framework for GCC and as a source-to-source tool for any compiler.
Some references: HiPEAC'05 paper and bib; GCC Summit'07 paper and bib; HiPEAC cluster.
[ Sourceforge development site ] |
|
|
|
|
 |
|