From cTuning.org

(Difference between revisions)
Jump to: navigation, search
Current revision (16:11, 17 February 2019) (view source)
 
(32 intermediate revisions not shown.)
Line 1: Line 1:
-
{{CTitle|http://ctuning.org/wiki/images/logo_ctools.gif|Collective Optimization Tools|Enabling Collaborative Research & Development}}
+
'''''We moved all developments to our new [http://cKnowledge.org Collective Knowledge Framework] in 2015!'''''
-
cTuning community develops common open-source tools with unified APIs (compilers, computer architecture simulators, run-time systems, benchmarks) to enable collaborative research and development of the future intelligent adaptive self-tuning computing systems based on iterative compilation, statistical machine learning and run-time adaptation. We believe that current way of disseminating novel techniques only through publications without providing tools to verify and replicate results or with incompatible unstable prototypes often do not help the community to use these techniques immediately or continue collaborative research. We hope that cTools will help to avoid costly duplicate developments and will boost innovation and replicable research while automating and accelerating design, verification, optimization and benchmarking of the architectures and programs.
 
-
These collaborative tools are now supported and extended by the cTuning community. Everyone is welcome to use cTools for their R&D, provide feedback or help to extend them. You can find more information about potential and on-going extension projects or submit your own projects, feedback and suggestions at individual tool pages below. Alternatively, you are welcome to leave general feedback and suggestions at the [[CTools:Feedback|cTools feedback page]].
+
 
 +
{{CShortCut|community}}
 +
 
 +
{{Reference}}
 +
 
 +
cTuning community develops common open-source tools with unified APIs (compilers, computer architecture simulators, run-time systems, benchmarks) to enable collaborative research and development of the future intelligent adaptive self-tuning computing systems based on iterative compilation, statistical machine learning and run-time adaptation. We believe that current way of disseminating novel techniques only through publications without providing tools to verify and replicate results or with incompatible unstable prototypes often do not help the community to use these techniques immediately or continue collaborative research. We hope that cTools will help to avoid costly duplicate developments, will boost innovation and enable reproducible research while automating and accelerating design, verification, optimization and benchmarking of the architectures and programs. You are welcome to use cTools, provide feedback and help to extend them. You can find more information about potential and on-going extension projects or submit your own projects, feedback and suggestions at individual tool pages below. Alternatively, you are welcome to leave general feedback and suggestions at the [[CTools:Feedback|cTools feedback page]].
 +
 
 +
----
'''''<div align="right">Discussion page about installation of tools for Collective Optimization: ([[Download|Link]])</div>'''''
'''''<div align="right">Discussion page about installation of tools for Collective Optimization: ([[Download|Link]])</div>'''''
Line 9: Line 15:
'''The list of current collaborative and relatively stable R&D tools:'''
'''The list of current collaborative and relatively stable R&D tools:'''
-
*[[CTools:ICI|Interactive Compilation Interface (ICI)]] - a plugin system with high-level API to transform current compilers into collaborative modular interactive R&D toolsets. GCC is the main supported platform, however there are plans to add ICI to LLVM and other compilers. It is currently used in the [[CTools:MilepostGCC|MILEPOST GCC]].
+
* [[CMind|Collective Mind]] - completely new plugin-based infrastructure and repository for collaborative R&D in computer engineering that unifies all techniques, tools, benchmarks, data sets and models from below.
-
*[[CTools:CCC|Continuous Collective Compilation Framework (CCC)]] - collaborative framework to perform high-level platform independent iterative optimizations (i.e. search for good combination of program optimizations) and gather various static and dynamic optimization profile data in a [[CDatabase|Collective Optimization Database]]. It is used to help end-users optimize their programs automatically (improve execution time/code size, etc) and enable further optimization analysis using statistical and machine learning techniques.
+
----
-
*[[CTools:CBench|Collective Benchmarks and Datasets (cBench/MiDataSets)]] - collection of open-source programs and multiple datasets to enable realistic benchmarking and research on program and architecture optimization.
+
* [[CTools:CTuningCC|cTuning CC]] - free, open source compiler collection that combines multiple tools and techniques including [[CTools:MilepostGCC|MILEPOST GCC]], [[CTools:ICI|ICI]], [[CTools:CCC|CCC framework]], [[CDatabase|cTuning web-services and Collective Optimization Database]] and [[CTools:CBench|cBench]] as the first practical step toward self-tuning, adaptive computing systems based on industrial tools, empirical techniques, transparent collective optimization, statistical analysis and machine learning.  
-
'''The list of collaborative tools that will be moved here at some point:'''
+
*[[CTools:MilepostGCC|MILEPOST GCC]] - machine learning-enabled self-tuning research compiler that correlates program features and optimizations during empirical learning to predict good optimization for unseen programs.
-
*[[CTools:MilepostGCC|MILEPOST GCC]] - machine learning-enabled self-tuning research compiler.
+
*[[CTools:ICI|Interactive Compilation Interface (ICI)]] - a plugin system with high-level API to transform current compilers into collaborative modular interactive R&D toolsets. GCC is the main supported platform, however there are plans to add ICI to LLVM and other compilers. It is currently used in the [[CTools:MilepostGCC|MILEPOST GCC]]. During Google Summer of Code'09, GCC ICI has been extended to support generic function cloning, fine-grain program optimizations (such as selecting unrolling factors, tiling parameters, inlining, etc) and basic program instrumentation. Currently, we are working to move ICI to the mainline GCC to use GCC as a production-quality open-source research compiler.
-
*[[CTools:MilepostFramework|MILEPOST 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.  
+
*[[CTools:CCC|Continuous Collective Compilation Framework (CCC)]] - high-level collaborative plugin-enabled framework to perform iterative compilation (i.e. search for profitable combinations of program optimizations) and gather various static and dynamic optimization profile data in a [[CDatabase|Collective Optimization Database]]. It is used to help end-users optimize their programs automatically (improve execution time/code size/compilation time, etc) using direct search as well as various collective, statistical and machine learning techniques. It supports multiple compilers such as GCC, LLVM, Open64, ICC, etc and support both global optimization (compiler flags tuning) and finer-grain optimizations such as function level, loop level, instruction level (collaborative work is still in progress with prototypes available for download) whenever a compiler support [[CTools:ICI|Interactive Compilation Interface (ICI)]] such as [[CTools:MilepostGCC|MILEPOST GCC]]. [[CTools:CBench|Collective Benchmarks and Datasets (cBench/MiDataSets)]] can be immediately used with the CCC framework for iterative program optimization on a given architecture. We strongly advice you to use cDatabase when you install CCC framework to be able to use predefined configurations from the community and to use machine learning and collective optimization techniques to predict program optimizations.
-
'''The list of collaborative tools in an early development/brainstorming stage:'''
+
*[[CTools:CBench|Collective Benchmarks and Datasets (cBench/MiDataSets)]] - collection of open-source programs and multiple datasets to enable realistic benchmarking and research on program and architecture optimization. All programs support [[CTools:CCC|CCC framework]] to enable [http://fursin.net/wiki/index.php5?title=Research:Dissemination#FT2010 collective optimization].
 +
 
 +
'''List of collaborative tools in an early development/brainstorming stage:'''
*[[CTools:UNIDAPT|Universal Adaptation Framework (UNIDAPT)]] - hybrid static/dynamic framework to enable run-time adaptation, optimization and scheduling with low overhead for unicore and heterogeneous multi-core architectures (GPGPU, CELL, etc).
*[[CTools:UNIDAPT|Universal Adaptation Framework (UNIDAPT)]] - hybrid static/dynamic framework to enable run-time adaptation, optimization and scheduling with low overhead for unicore and heterogeneous multi-core architectures (GPGPU, CELL, etc).
Line 28: Line 36:
*[[CTools:CVirt|Collaborative Virtualization Platform]] - we would like to add common API to current virtualization platforms such as LLVM,GCC4NET,MONO for example. This project is in infancy so any help will be appreciated
*[[CTools:CVirt|Collaborative Virtualization Platform]] - we would like to add common API to current virtualization platforms such as LLVM,GCC4NET,MONO for example. This project is in infancy so any help will be appreciated
 +
 +
----
 +
 +
*[[CTools:Development_Methodology|Development Methodology]]
 +
----
 +
 +
'''Archive:'''
 +
 +
*[[CTools:MilepostFramework|MILEPOST 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.'''''
'''''Note:''' cTuning is an ongoing evolving project - please be patient and tolerant to the community or [[Join|join us]] to help with this collaborative effort!''
'''''Note:''' cTuning is an ongoing evolving project - please be patient and tolerant to the community or [[Join|join us]] to help with this collaborative effort!''

Current revision

We moved all developments to our new Collective Knowledge Framework in 2015!


Web shortcut: http://cTuning.org/community

cTuning.org is based on the following reference publications: GCC Summit'09, CPE'04, HiPEAC'05, PhD thesis'04, SMART'09, PLDI'10, HiPEAC'09, IJPP'11

cTuning community develops common open-source tools with unified APIs (compilers, computer architecture simulators, run-time systems, benchmarks) to enable collaborative research and development of the future intelligent adaptive self-tuning computing systems based on iterative compilation, statistical machine learning and run-time adaptation. We believe that current way of disseminating novel techniques only through publications without providing tools to verify and replicate results or with incompatible unstable prototypes often do not help the community to use these techniques immediately or continue collaborative research. We hope that cTools will help to avoid costly duplicate developments, will boost innovation and enable reproducible research while automating and accelerating design, verification, optimization and benchmarking of the architectures and programs. You are welcome to use cTools, provide feedback and help to extend them. You can find more information about potential and on-going extension projects or submit your own projects, feedback and suggestions at individual tool pages below. Alternatively, you are welcome to leave general feedback and suggestions at the cTools feedback page.


Discussion page about installation of tools for Collective Optimization: (Link)

The list of current collaborative and relatively stable R&D tools:

  • Collective Mind - completely new plugin-based infrastructure and repository for collaborative R&D in computer engineering that unifies all techniques, tools, benchmarks, data sets and models from below.

  • MILEPOST GCC - machine learning-enabled self-tuning research compiler that correlates program features and optimizations during empirical learning to predict good optimization for unseen programs.
  • Interactive Compilation Interface (ICI) - a plugin system with high-level API to transform current compilers into collaborative modular interactive R&D toolsets. GCC is the main supported platform, however there are plans to add ICI to LLVM and other compilers. It is currently used in the MILEPOST GCC. During Google Summer of Code'09, GCC ICI has been extended to support generic function cloning, fine-grain program optimizations (such as selecting unrolling factors, tiling parameters, inlining, etc) and basic program instrumentation. Currently, we are working to move ICI to the mainline GCC to use GCC as a production-quality open-source research compiler.
  • Continuous Collective Compilation Framework (CCC) - high-level collaborative plugin-enabled framework to perform iterative compilation (i.e. search for profitable combinations of program optimizations) and gather various static and dynamic optimization profile data in a Collective Optimization Database. It is used to help end-users optimize their programs automatically (improve execution time/code size/compilation time, etc) using direct search as well as various collective, statistical and machine learning techniques. It supports multiple compilers such as GCC, LLVM, Open64, ICC, etc and support both global optimization (compiler flags tuning) and finer-grain optimizations such as function level, loop level, instruction level (collaborative work is still in progress with prototypes available for download) whenever a compiler support Interactive Compilation Interface (ICI) such as MILEPOST GCC. Collective Benchmarks and Datasets (cBench/MiDataSets) can be immediately used with the CCC framework for iterative program optimization on a given architecture. We strongly advice you to use cDatabase when you install CCC framework to be able to use predefined configurations from the community and to use machine learning and collective optimization techniques to predict program optimizations.

List of collaborative tools in an early development/brainstorming stage:

  • Universal Adaptation Framework (UNIDAPT) - hybrid static/dynamic framework to enable run-time adaptation, optimization and scheduling with low overhead for unicore and heterogeneous multi-core architectures (GPGPU, CELL, etc).
  • Collaborative Virtualization Platform - we would like to add common API to current virtualization platforms such as LLVM,GCC4NET,MONO for example. This project is in infancy so any help will be appreciated


Archive:

  • MILEPOST 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.

Note: cTuning is an ongoing evolving project - please be patient and tolerant to the community or join us to help with this collaborative effort!

Locations of visitors to this page