From cTuning.org
Line 6: | Line 6: | ||
{{CMenu:CTools|}} | {{CMenu:CTools|}} | ||
- | Continuous Collective Compilation Framework (CCC) is a collaborative modular plugin-enabled R&D infrastructure to automate program and architecture optimizations (i.e. iteratively search for ''good'' program and architecture optimizations in a feedback-directed manner) and gather various static and dynamic optimization profile data in a [[CDatabase|Collective Optimization Database]]. It supports both global program optimization and fine-grain procedure, loop or instruction level optimizations if compiler supports [[CTools:ICI|Interactive Compilation Interface]]. | + | Continuous Collective Compilation Framework (CCC) is a collaborative modular plugin-enabled R&D infrastructure to automate program and architecture optimizations (i.e. iteratively search for ''good'' program and architecture optimizations in a feedback-directed manner) and gather various static and dynamic optimization profile data in a [[CDatabase|Collective Optimization Database]]. It supports both global program optimization and fine-grain procedure, loop or instruction level optimizations if compiler supports [[CTools:ICI|Interactive Compilation Interface]]. CCC is used to help end-users optimize their programs, libraries and whole OS automatically (improve execution time/code size, etc), test and tune compiler optimization heuristic. It also enables collaborative R&D and optimization knowledge reuse with statistical and machine learning techniques ({{Ref|FMTP2008}}, {{Ref|FT2009}}). |
+ | Current version of CCC supports '''cBench/MiBench/EEMBC/Polyhedron/SPEC_CPU95,2000,2006''' benchmark suites. | ||
CCC Framework is a community-driven project - you are welcome to [[Join|join]] the project, [[CTools:CCC:Projects|extend]] it, provide smart search and data analysis plugins, leave [[CTools:CCC:Feedback|feedback]] and add your optimization data to help the community. You can also communicate with cTuning community through our [[Community|mailing lists]]. | CCC Framework is a community-driven project - you are welcome to [[Join|join]] the project, [[CTools:CCC:Projects|extend]] it, provide smart search and data analysis plugins, leave [[CTools:CCC:Feedback|feedback]] and add your optimization data to help the community. You can also communicate with cTuning community through our [[Community|mailing lists]]. |
Revision as of 21:58, 16 March 2010
![]() |
Continuous Collective Compilation Framework |
Enabling collective optimization |
Navigation: cTuning.org > CTools Continuous Collective Compilation Framework (CCC) is a collaborative modular plugin-enabled R&D infrastructure to automate program and architecture optimizations (i.e. iteratively search for good program and architecture optimizations in a feedback-directed manner) and gather various static and dynamic optimization profile data in a Collective Optimization Database. It supports both global program optimization and fine-grain procedure, loop or instruction level optimizations if compiler supports Interactive Compilation Interface. CCC is used to help end-users optimize their programs, libraries and whole OS automatically (improve execution time/code size, etc), test and tune compiler optimization heuristic. It also enables collaborative R&D and optimization knowledge reuse with statistical and machine learning techniques (FMTP2008, FT2009). Current version of CCC supports cBench/MiBench/EEMBC/Polyhedron/SPEC_CPU95,2000,2006 benchmark suites. CCC Framework is a community-driven project - you are welcome to join the project, extend it, provide smart search and data analysis plugins, leave feedback and add your optimization data to help the community. You can also communicate with cTuning community through our mailing lists.
![]()
Example of complex optimization search spaces for susan_c from Collective Benchmark and MILEPOST GCC 4.4.0 after randomly selecting about 80 optimization flags: ![]() ![]() We can automatically improve execution time of the program by nearly 2 times over the highest GCC optimization level after using CCC framework (we obtain similar results on LLVM, Open64, Intel and IBM compilers). We can also use CCC framework to perform multi-objective optimizations (selecting optimization cases on the optimization space frontier shown by red circles and blue dots) such as:
Furthermore, we are developing MILEPOST GCC to correlate program features and behavior to predict good optimizations for unseen programs based on prior learning. |
|
You are welcome to join us and participate in CCC developments, discussions, provide feedback or suggestions to extend CCC or add new functionality. The framework currently supports multiple compilers including GCC, Open64, PathScale, Intel ICC, IBM XLC and a large number of server, desktop and embedded architectures.