Navigation: cTuning.org > CTools
The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets. The ICI framework acts as a "middleware" interface between the compiler and the user-definable plugins. It opens up and reuses the production-quality compiler infrastructure to enable program analysis and instrumentation, fine-grain program optimizations, simple prototyping of new development and research ideas while avoiding building new compilation tools from scratch. For example, it is used in MILEPOST GCC to automate compiler and architecture design and program optimizations based on statistical analysis and machine learning. It should enable universal self-tuning compilers adaptable to heterogeneous, reconfigurable, multi-core architectures ranging from supercomputers to embedded systems.
ICI is an open collaborative community-driven project. You are welcome to join and participate in developments, discussions, provide feedback or suggestions to extend ICI or add new features. We develop ICI for GCC at the moment, but trying to keep it compiler independent in case someone would like to port it to other compilers to extend collaborative tools.
|
News
|
- 2009.June.26 - Finally, after long and tough discussions, GCC 4.5 will feature a low-level plugin system similar to ICI. Hence, we are working on the full ICI/MILEPOST synchronization to move it to the mainline and reuse all our available plugins. We also have prototypes of several new plugins that we develop within Google Summer of Code'2009 to enable XML representation of the compilation flow, fine-grain program optimizations and instrumentation, automatic tuning of optimization heuristic based on machine learning, and function-level run-time adaptation. Comparison of GCC low-level and high-level ICI plugins is available here. The ICI development and discussions mailing list is available here.
- 2009.June.01 - After nearly 1 year of developments we released/updated all our open-source collaborative R&D tools:
- fully redesigned and documented Interactive Compilation Interface v2.0 for GCC 4.4.0 synchronized with the official plugin GCC branch - transforming compilers into plugin-enabled research toolsets
- MILEPOST GCC 4.4.0 pre-release version at SVN - automating program optimization and compiler optimization heuristic tuning using machine learning
- Continuous Collective Compilation Framework v2.0 - enabling automatic collaborative program optimization based on statistical and machine learning techniques
- Collective Benchmark/MiDataSets v1.0 - enabling realistic program optimization research and benchmarking using multiple open-source programs/datasets.
We also updated Collective Optimization Database with various optimization cases for Intel and AMD processors and comparison of different compilers including GCC, LLVM, Open64, Intel, etc - enabling sharing and reuse of optimization knowledge.
We would like to thank cTuning community for feedback, help and support! You are welcome to join this community effort to automate program optimization and compiler/architecture design.
- 2009.April.27 - We gave a talk at the University of Illinois at Urbana-Champaign about Collective Tuning Initiative and tools and MILEPOST project ("Collective Optimization, run-time adaptation and machine learning"). Presentation is available here. We would like to thank all the UIUC colleagues for a very interesting and useful feedback.
- 2009.April.21 - Several projects to enable automatic fine-grain program optimization and run-time adaptation in GCC using iterative compilation and machine learning (based on our cTuning/UNIDAPT/ICI/MILEPOST technology) have been accepted by the Google Summer of Code. You are welcome to join cTuning community and follow or participate in the developments using our dedicated mailing lists.
- 2009.Mar.24 - the new functionality implemented in the master branch on Gitorious was backported to a newly created gcc-4.2.4 branch to support and promote the use of ICI in production environments.
- 2009.Mar.20 - the master branch of the ICI framework was updated to SVN revision 144783 dated 2009-03-11 16:57:01.
- 2009.Feb.27 - a GCC patch combining ICI-based high-level plugin infrastructure with low-level plugin infrastructure of GCC was submitted to the gcc-patches mailing list.
- 2009.Feb.13 - the comparison of Mozilla and ICI plugin APIs was uploaded to the GCC Wiki.
- 2009.Feb.9 - the master branch of the ICI framework was updated to SVN revision 144014 dated 2009-02-08 09:10:15.
- 2009.Feb.6 - the GCC Steering Committee agreed on the way plugins should be integrated into GCC. A new GCC Wiki page devoted to plugins was opened, and a dedicated "plugins" branch (svn://gcc.gnu.org/svn/gcc/branches/plugins) created in GCC SVN.
- 2009.Jan.12 - the result of a new SVN sync (SVN rev. 143113 dated 6 January 2009) has been uploaded to Gitorious. It fixes several performance issues which were introduced in GCC 4.3.x.
|
|