From cTuning.org

(Difference between revisions)
Jump to: navigation, search
Current revision (15:53, 12 September 2015) (view source)
 
(25 intermediate revisions not shown.)
Line 1: Line 1:
 +
'''''NEWS: Since 2015, we moved all related developments to our new [http://github.com/ctuning/ck/wiki Collective Knowledge Framework]! Demo of a new live repository is available [http://cknowledge.org/repo here].'''''
 +
 +
 +
 +
{{CTitle|http://ctuning.org/wiki/images/milepost_image.jpg|MILEPOST project|machine learning for embedded programs optimization}}
{{CTitle|http://ctuning.org/wiki/images/milepost_image.jpg|MILEPOST project|machine learning for embedded programs optimization}}
{{CShortCut|project-milepost}}
{{CShortCut|project-milepost}}
 +
 +
'''NOTE:'''
 +
* Since 2014, we continue this R&D with the help of the [http://cTuning.org non-profit cTuning foundation].
 +
* MILEPOST GCC is now a part of [http://cTuning.org/ctuning-cc cTuning CC] and [http://c-mind.org Collective Mind framework].
 +
* Website milepost.eu was overtaken and has now nothing to do with the MILEPOST GCC project.
* '''Project reference:''' [http://cordis.europa.eu/fetch?CALLER=FP6_PROJ&ACTION=D&DOC=1&CAT=PROJ&QUERY=1170930422883&RCN=79763 035307] (Specific Targeted Research Project, funded by [http://cordis.europa.eu/fp6/dc/index.cfm?fuseaction=UserSite.FP6HomePage EU FP6 program])
* '''Project reference:''' [http://cordis.europa.eu/fetch?CALLER=FP6_PROJ&ACTION=D&DOC=1&CAT=PROJ&QUERY=1170930422883&RCN=79763 035307] (Specific Targeted Research Project, funded by [http://cordis.europa.eu/fp6/dc/index.cfm?fuseaction=UserSite.FP6HomePage EU FP6 program])
-
* '''Official dates:''' 2006-07-01 - 2009-06-30 (continued by Grigori Fursin and cTuning community afterwards)
+
* '''Official dates:''' 2006-07-01 - 2009-06-30
* '''Project coordinator:''' [http://www.dcs.ed.ac.uk/home/mob/ Prof. Michael O'Boyle, University of Edinburgh, UK]
* '''Project coordinator:''' [http://www.dcs.ed.ac.uk/home/mob/ Prof. Michael O'Boyle, University of Edinburgh, UK]
-
* '''Technical coordinator (R&D):''' [http://fursin.net/research Dr. Grigori Fursin, UVSQ/INRIA, France]
+
* '''Technical coordinator/cTuning founder:''' [http://cTuning.org/lab/people/gfursin Dr. Grigori Fursin, INRIA, France]
 +
 
* '''Acknowledgments:''' [[CTools:MilepostGCC:Motivation#Acknowledgments|Milepost colleagues]]
* '''Acknowledgments:''' [[CTools:MilepostGCC:Motivation#Acknowledgments|Milepost colleagues]]
 +
* '''Reference publications:''' [http://fursin.net/wiki/index.php5?title=Research:Dissemination#FKMP2011 MILEPOST GCC: machine learning enabled self-tuning compiler]; [http://fursin.net/wiki/index.php5?title=Research:Dissemination#FT2010 Collective Optimization: A Practical Collaborative Approach]; [http://fursin.net/wiki/index.php5?title=Research:Dissemination#MCFP2010 Practical Aggregation of Semantical Program Properties for Machine Learning Based Optimization].
-
* '''Official partners:'''<BR><BR>http://unidapt.org/images/logo_inria.gif http://unidapt.org/images/logo_ue.gif http://unidapt.org/images/logo_ibm.jpg http://unidapt.org/images/logo_caps.gif http://unidapt.org/images/logo_arc.gif  
+
== Official partners ==
 +
http://cTuning.org/wiki/images/logo_inria.gif http://cTuning.org/wiki/images/logo_ue.gif http://cTuning.org/wiki/images/logo_ibm.jpg http://cTuning.org/wiki/images/logo_caps.gif http://cTuning.org/wiki/images/logo_arc.gif  
-
* '''Objectives:'''<BR><BR>The overall objective of this project is to develop compiler technology that can automatically learn how to best optimise programs for reconfigurable heterogeneous embedded processors. If successful we will be able to dramatically reduce the time to market of reconfigurable systems. Rather than developing a specialised compiler by hand for each configuration, our project will produce optimising compilers automatically.<BR><BR>Current hand-crafted approaches to compiler development are no longer sustainable. With each generation of reconfigurable architecture, the compiler development time increases and the performance improvement achieved decreases. As high performance embedded systems move from application specific ASICs to programmable heterogeneous processors, this problem is becoming critical.<BR><BR>This project explores an emerging alternative approach where we use machine learning techniques, developed in the artificial intelligence arena, to learn how to generate compilers automatically. Such an approach, if successful, will have a dramatic impact on reconfigurable systems. This means that for a fixed amount of design time. We can evaluate many more configurations leading to better and more cost-effective performance. If successful, this will enable Europe to increase its dominance in this critical emerging market.
+
== Objectives ==
 +
The overall objective of this project is to develop compiler technology that can automatically learn how to best optimise programs for reconfigurable heterogeneous embedded processors. If successful we will be able to dramatically reduce the time to market of reconfigurable systems. Rather than developing a specialised compiler by hand for each configuration, our project will produce optimising compilers automatically.<BR><BR>Current hand-crafted approaches to compiler development are no longer sustainable. With each generation of reconfigurable architecture, the compiler development time increases and the performance improvement achieved decreases. As high performance embedded systems move from application specific ASICs to programmable heterogeneous processors, this problem is becoming critical.<BR><BR>This project explores an emerging alternative approach where we use machine learning techniques, developed in the artificial intelligence arena, to learn how to generate compilers automatically. Such an approach, if successful, will have a dramatic impact on reconfigurable systems. This means that for a fixed amount of design time. We can evaluate many more configurations leading to better and more cost-effective performance. If successful, this will enable Europe to increase its dominance in this critical emerging market.
-
* '''Software releases:'''
+
== Software releases ==
** [[CTools:MilepostGCC|Milepost GCC]] - first public machine learning-enabled, self-tuning, adaptive compiler that correlates program features and optimizations during empirical learning to predict good optimization for unseen programs.  
** [[CTools:MilepostGCC|Milepost GCC]] - first public machine learning-enabled, self-tuning, adaptive compiler that correlates program features and optimizations during empirical learning to predict good optimization for unseen programs.  
** [[CTools:MilepostFramework|Milepost Optimization Framework]] - infrastructure that combines MILEPOST GCC, CCC Framework, Collective Optimization Database and UNIDAPT Framework to find "good" program optimizations or architectural configurations for reconfigurable processors entirely automatically using statistical and machine learning techniques. After the end of the MILEPOST project in October, 2009, the MILEPOST framework has been fully integrated with cTools. Note: this framework is now fully integrated with the cTuning infrastructure, tools and repository so it is not used/extended anymore on its own.
** [[CTools:MilepostFramework|Milepost Optimization Framework]] - infrastructure that combines MILEPOST GCC, CCC Framework, Collective Optimization Database and UNIDAPT Framework to find "good" program optimizations or architectural configurations for reconfigurable processors entirely automatically using statistical and machine learning techniques. After the end of the MILEPOST project in October, 2009, the MILEPOST framework has been fully integrated with cTools. Note: this framework is now fully integrated with the cTuning infrastructure, tools and repository so it is not used/extended anymore on its own.
-
* '''Press:'''
+
== Press ==
-
** IBM press-release about MILEPOST GCC ([http://www-03.ibm.com/press/us/en/pressrelease/27874.wss 2009.06.30], [http://www-03.ibm.com/press/us/en/pressrelease/24548.wss 2008.06.30]).
+
* IBM press-release about MILEPOST GCC ([http://www-03.ibm.com/press/us/en/pressrelease/27874.wss 2009.06.30], [http://www-03.ibm.com/press/us/en/pressrelease/24548.wss 2008.06.30]).
-
** [http://www.infoworld.com/d/developer-world/rethinking-code-optimization-mobile-and-multicore-505 InfoWorld: Rethinking code optimization for mobile and multicore]
+
* [http://www.infoworld.com/d/developer-world/rethinking-code-optimization-mobile-and-multicore-505 InfoWorld: Rethinking code optimization for mobile and multicore]
-
** [http://tech.slashdot.org/story/09/07/03/0143233/IBM-Releases-Open-Source-Machine-Learning-Compiler Slashdot.org]
+
* [http://tech.slashdot.org/story/09/07/03/0143233/IBM-Releases-Open-Source-Machine-Learning-Compiler Slashdot.org]
-
** [http://www.drdobbs.com/linux-open-source/218102130 Dr Dobb]
+
* [http://www.drdobbs.com/linux-open-source/218102130 Dr Dobb]
-
** [http://www.hpcwire.com/offthewire/IBM-Research-Announces-Intelligent-Compiler-49521262.html HPCWire]
+
* [http://www.hpcwire.com/offthewire/IBM-Research-Announces-Intelligent-Compiler-49521262.html HPCWire]
 +
* [http://www.physorg.com/news187452053.html Machine-learning revolutionizes software development]
 +
 
 +
== Some industrial usages of the MILEPOST technology ==
 +
* Since 2010, ICI-compatible plugin interface is available in mainline GCC, meaning that anyone using current GCC can take advantage of or extend MILEPOST and cTuning technology.
-
* '''Some industrial usages of the MILEPOST technology:'''
+
* [http://www.ibm.com IBM]
-
** [http://www.ibm.com IBM]
+
* [http://www.caps-entreprise.com CAPS Entreprise]
-
** [http://www.caps-entreprise.com CAPS Entreprise]
+
* Dr. Zbigniew Chamski joined Grigori Fursin's team at INRIA for 6 months to considerably extend, document and move [[CTools:ICI|ICI]] to the mainline GCC while using it in his "Infrasoft IT Solutions" company
-
** Zbigniew Chamski has been working with us to extend [[CTools:ICI|ICI]] for GCC and is using it in "Infrasoft IT Solutions" company
+
-
** Joern Rennecke helped us to extend [[CTools:ICI|ICI]] for GCC, port it to the ARC processors and is using it in "Embecosm" company
+
-
* '''Continuation:'''
+
== Further work ==
-
** After the end of the MILEPOST project in October, 2009, [http://fursin.net Grigori] integrated the MILEPOST framework with the [http://cTuning.org cTuning framework] to continue collaborative R&D on self-tuning computing systems together with the [[Community|cTuning community]]. You are welcome to join and also follow [http://groups.google.com/group/ctuning-discussions cTuning discussions mailing list] for more info.
+
* After the end of the MILEPOST project in October, 2009, [http://fursin.net Grigori] integrated the MILEPOST framework with the [http://cTuning.org cTuning framework] to continue collaborative R&D on self-tuning computing systems together with the community.
-
** Some parts of MILEPOST GCC (parts of ICI plugin system) has been integrated with the [http://gcc.gnu.org/gcc-4.5 mainline GCC 4.5]
+
* Grigori Fursin and Zbigniew Chamski collaborated with Google and Mozilla (see public GCC discussions on the GCC mailing list and wiki) to develop ICI-compatible plugin framework for GCC that has been eventually integrated to the [http://gcc.gnu.org/gcc-4.5 mainline GCC 4.5+]
-
** We are looking forward to public contributions to cTuning framework particularly to add support for more fine-grain optimizations, polyhedral optimizations, LLVM, Rose, Open64, ICC, XL, etc ...
+
* We are encouraging public contributions to cTuning framework particularly to add support for more adaptive scheduling, parallelization, fine-grain tuning, polyhedral optimizations while supporting other compilers such as LLVM, ROSE, etc.
-
* '''Contacts:'''
+
== Contacts ==
-
** [http://groups.google.com/group/ctuning-discussions cTuning discussions mailing list]
+
* [http://groups.google.com/group/ctuning-discussions cTuning discussions mailing list]
-
** General questions about MILEPOST technology, vision and R&D continuation: [http://fursin.net/research Grigori Fursin]
+
* General questions about MILEPOST technology, vision and further R&D: [http://cTuning.org/lab/people/gfursin Grigori Fursin]

Current revision

NEWS: Since 2015, we moved all related developments to our new Collective Knowledge Framework! Demo of a new live repository is available here.



milepost_image.jpg

MILEPOST project

machine learning for embedded programs optimization
Web shortcut: http://cTuning.org/project-milepost

NOTE:

  • Project reference: 035307 (Specific Targeted Research Project, funded by EU FP6 program)
  • Official dates: 2006-07-01 - 2009-06-30

Contents

Official partners

logo_inria.gif logo_ue.gif logo_ibm.jpg logo_caps.gif logo_arc.gif

Objectives

The overall objective of this project is to develop compiler technology that can automatically learn how to best optimise programs for reconfigurable heterogeneous embedded processors. If successful we will be able to dramatically reduce the time to market of reconfigurable systems. Rather than developing a specialised compiler by hand for each configuration, our project will produce optimising compilers automatically.

Current hand-crafted approaches to compiler development are no longer sustainable. With each generation of reconfigurable architecture, the compiler development time increases and the performance improvement achieved decreases. As high performance embedded systems move from application specific ASICs to programmable heterogeneous processors, this problem is becoming critical.

This project explores an emerging alternative approach where we use machine learning techniques, developed in the artificial intelligence arena, to learn how to generate compilers automatically. Such an approach, if successful, will have a dramatic impact on reconfigurable systems. This means that for a fixed amount of design time. We can evaluate many more configurations leading to better and more cost-effective performance. If successful, this will enable Europe to increase its dominance in this critical emerging market.

Software releases

    • Milepost GCC - first public machine learning-enabled, self-tuning, adaptive compiler that correlates program features and optimizations during empirical learning to predict good optimization for unseen programs.
    • Milepost Optimization Framework - infrastructure that combines MILEPOST GCC, CCC Framework, Collective Optimization Database and UNIDAPT Framework to find "good" program optimizations or architectural configurations for reconfigurable processors entirely automatically using statistical and machine learning techniques. After the end of the MILEPOST project in October, 2009, the MILEPOST framework has been fully integrated with cTools. Note: this framework is now fully integrated with the cTuning infrastructure, tools and repository so it is not used/extended anymore on its own.

Press

Some industrial usages of the MILEPOST technology

  • Since 2010, ICI-compatible plugin interface is available in mainline GCC, meaning that anyone using current GCC can take advantage of or extend MILEPOST and cTuning technology.
  • IBM
  • CAPS Entreprise
  • Dr. Zbigniew Chamski joined Grigori Fursin's team at INRIA for 6 months to considerably extend, document and move ICI to the mainline GCC while using it in his "Infrasoft IT Solutions" company

Further work

  • After the end of the MILEPOST project in October, 2009, Grigori integrated the MILEPOST framework with the cTuning framework to continue collaborative R&D on self-tuning computing systems together with the community.
  • Grigori Fursin and Zbigniew Chamski collaborated with Google and Mozilla (see public GCC discussions on the GCC mailing list and wiki) to develop ICI-compatible plugin framework for GCC that has been eventually integrated to the mainline GCC 4.5+
  • We are encouraging public contributions to cTuning framework particularly to add support for more adaptive scheduling, parallelization, fine-grain tuning, polyhedral optimizations while supporting other compilers such as LLVM, ROSE, etc.

Contacts

Locations of visitors to this page