|
|
(28 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/logo_ici.gif|Interactive Compilation Interface|Enabling Collaborative Interactive Research Compilers}} | | {{CTitle|http://ctuning.org/wiki/images/logo_ici.gif|Interactive Compilation Interface|Enabling Collaborative Interactive Research Compilers}} |
- |
| |
- | {|border="0" cellpadding="15" cellspacing="0"
| |
- | | valign="top" |
| |
| | | |
| {{CShortCut|ici}} | | {{CShortCut|ici}} |
Line 8: |
Line 9: |
| {{CMenu:CTools|}} | | {{CMenu: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 [http://cTuning.org/milepost-gcc 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.<br> | + | {{NEWS}} |
| + | {{Reference}} |
| + | |
| + | 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 [http://cTuning.org/milepost-gcc 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. |
| + | |
| + | '''At the beginning of 2010, parts of ICI and related plugin frameworks have been finally included in mainline [http://gcc.gnu.org/gcc-4.5 GCC 4.5]!''' |
| | | |
| * '''Background:''' | | * '''Background:''' |
Line 21: |
Line 27: |
| | | |
| * '''[[CTools:ICI:Documentation|Documentation and API]]''' - functionality, API reference guide, features, FAQ | | * '''[[CTools:ICI:Documentation|Documentation and API]]''' - functionality, API reference guide, features, FAQ |
- |
| |
- | * '''[[CTools:ICI:Feedback|User suggestions and feedback]]'''
| |
| | | |
| * '''[[CTools:ICI:Projects|Projects to extend ICI, plugins and compilers]]''' - more than 15 projects currently | | * '''[[CTools:ICI:Projects|Projects to extend ICI, plugins and compilers]]''' - more than 15 projects currently |
Line 30: |
Line 34: |
| | | |
| ''ICI is an open collaborative community-driven project. You are welcome to [[Join|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.'' | | ''ICI is an open collaborative community-driven project. You are welcome to [[Join|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.'' |
- |
| |
- | |
| |
- | {{News1|
| |
- |
| |
- | * '''2010.May.14''' - Call for papers: [http://asplos11.cs.ucr.edu ASPLOS 2011].
| |
- |
| |
- | * '''2010.April.28''' - List of all projects accepted for Google Summer of Code 2010 is now [http://socghop.appspot.com/gsoc/program/list_projects/google/gsoc2010 available on-line]. There are many projects related to [http://gcc.gnu.org/wiki/SummerOfCode GCC], LLVM, MONO, etc.<BR>Discussion page about GCC as a research compiler [[Dissemination:Workshops:GROW10:GCC_as_a_research_compiler|has been updated]].<BR>Diego Novillo started a proposal to [http://gcc.gnu.org/wiki/ModularGCC modularize GCC].
| |
- |
| |
- | * '''2010.April.14''' - Long awaited GCC 4.5 has been [http://gcc.gnu.org/gcc-4.5 released]! It features new plugin framework with some parts of [http://cTuning.org/ici ICI] to continue GCC modularization and parametrization, simplify pass manipulation and reordering, and enable better integration with [http://cTuning.org cTuning]/[http://cTuning.org/milepost-gcc MILEPOST] tools to automate optimization space exploration and prediction of profitable combinations of program transformations during multi-objective optimizations (balancing execution time, code size, compilation time, etc) for a given program/dataset/architecture.
| |
- |
| |
- | * '''2010.March.17''' - We pre-released all tools including [[CTools:MilepostGCC|MILEPOST GCC]], [[CTools:CCC|CCC framework]], [[CTools:CBench|cBench]] and [[CDatabase|cDatabase]]. It's a major update of cTuning tools including changes behind to support transparent optimizations of programs and libraries, better multi-objective optimization (including balancing of execution time, code size and compilation time), bug fixes in averaging multiple optimization cases, C++ support in MILEPOST GCC, support of all version of GCC 4.4, new static features in MILEPOST GCC, extended documentation, etc. Feedback and comments are welcome [http://groups.google.com/group/ctuning-discussions/browse_thread/thread/c22a6109d57905f7 here].
| |
- |
| |
- | * '''2010.March.01''' - CGO'10 program is available [http://www.cgo.org/cgo2010/program.html on-line].
| |
- |
| |
- | * '''2010.January.28''' - Proceedings and slides from [[Dissemination:Workshops:GROW10:Program|GROW'10]] and [[Dissemination:Workshops:SMART10:Program|SMART'10]] are now available online.
| |
- |
| |
- | * '''2010.January.4''' - Call for participation: GROW'10 and SMART'10 workshops will be held on the 23rd and 24th of January in Pisa, Italy co-located with the [http://www.hipeac.net/conference/pisa/program HiPEAC conference]. Preliminary programs are available: [http://ctuning.org/wiki/index.php/Dissemination:Workshops:SMART10:Program SMART'10 program] and [http://ctuning.org/wiki/index.php/Dissemination:Workshops:GROW10:Program GROW'10 program].
| |
- |
| |
- | *'''2010.January.1''' - We wish you all a very happy and prosperous New Year with lots of exciting achievements maybe even related to cTuning technology ;) !
| |
- |
| |
- | *'''2009.November.11''' - Small [http://cTuning.org/ccc CCC] analysis plugins update available at SVN to speedup queries when dealing with large amount of optimization data in [http://cTuning.org/cdatabase cDatabases] (gigabytes of data).
| |
- |
| |
- | *'''2009.November.7''' - Submission deadline for [http://cTuning.org/workshop-smart10 SMART'10 workshop] has been extended until the 22nd of November, 2009.
| |
- |
| |
- | *'''2009.October.2''' - We successfully passed the final [http://cTuning.org/project-milepost MILEPOST] review and the project is officially over. We would like to thank all the partners from the University of Edinburgh, IBM Haifa, CAPS and ARC for a great collaborative work during last 3 years and [http://cTuning.org/community cTuning community] for a very interesting feedback and extensions! We released all the tools from the project and hope to continue extending them within community-driven [http://cTuning.org cTuning.org]. This infrastructure should open up many interesting research opportunities for performance auto-tuning based on statistical and machine learning techniques so we hope to see many more interesting extensions to the MILEPOST/cTuning technology soon ;) !..
| |
- |
| |
- | *'''2009.September.25''' - New CFP for [http://ctuning.org/workshop-smart10 SMART'10 workshop] co-located with HiPEAC'10 conference in Pisa, Italy is now available. [http://www.cs.rice.edu/~keith Prof. Keith Cooper] from Rice University kindly agreed to give a keynote talk.
| |
- |
| |
- | *'''2009.September.22''' - Congratulations to Dr.Christophe Dubach who has won a presitigious BCS/CPHC Distinguished Dissertation Award for his thesis "Using Machine-Learning to Efficiently Explore the Architecture/Compiler Co-Design Space" supervised by Prof. Michael O'Boyle. This topic is related to cTuning technology!
| |
- |
| |
- | *'''2009.September.1''' - The documentation of [http://ctuning.org/milepost-gcc MILEPOST GCC]/[http://ctuning.org/ici GCC ICI] extensions by Yuanjie and Liang during GSOC'09 program is now available: [http://ctuning.org/wiki/index.php/CTools:ICI:Projects:GSOC09:Function_cloning_and_program_instrumentation Function cloning and program instrumentation] and [http://ctuning.org/wiki/index.php/CTools:ICI:Projects:GSOC09:Fine_grain_tuning Fine grain program tuning]. We would like to fully test and sync these developments with mainline GCC within next month or two.
| |
- |
| |
- | *'''2009.August.05''' - The colleagues from the [http://unidapt.org UNIDAPT Group] started investigating the use of [http://ctuning.org cTuning]/[http://cTuning.org/project-milepost MILEPOST] technology and the [http://ctuning.org/unidapt UNIDAPT framework] to predict good optimization and parallelization schemes for hybrid heterogeneous CPU/GPU-like architectures together with [http://www.caps-entreprise.com CAPS Entreprise] based on run-time adaptation and profiling, empirical iterative compilation, statistical analysis, machine learning, program and dataset features and run-time decision trees ({{Ref|FT2009}}, {{Ref|LCWP2009}}, {{Ref|Fur2009}}, {{Ref|JGVP2009}}, {{Ref1|TWFP2009}}, {{Ref|FMTP2008}}, {{Ref|LFF2007}}, {{Ref|FCOP2005}}). They plan to add new optimization cases to the [http://ctuning.org/cdatabase Collective Optimization Database] in Autumn, 2009.
| |
- |
| |
- | *'''2009.July.27''' - The paper "Portable Compiler Optimization Across Embedded Programs and Microarchitectures using Machine Learning" ({{Ref|DJBP2009}}) has been accepted for the [http://www.microarch.org/micro42 42nd IEEE/ACM International Symposium on Microarchitecture (MICRO)]. The research has been led by the colleagues from the University of Edinburgh - congratulations!
| |
- |
| |
- | *'''2009.July.22''' - cTuning-related CFP: [http://ctuning.org/workshop-smart10 SMART'10] and [http://ctuning.org/workshop-grow10 GROW'10] workshops will be co-located with [http://www.hipeac.net/conference HiPEAC'10 conference] in Pisa, Italy at the end of January, 2009. You are warmly invited to submit your novel research results and developments to our workshops! At the websites of these workshops you can find all information about topics, PC, deadlines and submission procedures.
| |
- |
| |
- | *'''2009.July.15''' - New optimization cases to improve execution time, code size and compilation time are now available in [http://ctuning.org/cdatabase Collective Optimization Database] for [http://ctuning.org/cbench cBench], [http://www.eembc.org EEMBC], [http://www.spec.org SPEC] and other applications with multiple datasets using [http://ctuning.org/milepost-gcc MILEPOST GCC 4.4.0] and 2 architectures ([http://www.intel.com Intel] and [http://www.amd.com AMD]) from [http://www.grid5000.fr GRID5000] (infrastructure for large scale parallel and distributed computing research).
| |
- |
| |
- | *'''2009.July.08''' - The preprint of a paper "Collective Tuning Initiative: automating and accelerating development and optimization of computing systems" describing cTuning infrastructure is now available online ({{Ref|Fur2009}}).
| |
- |
| |
- | *'''2009.June.29''' - Stable MILEPOST GCC 4.4.0 has been [[CTools:MilepostGCC|released]]. Follow further community developments at [http://ctuning.org/ici cTuning GCC ICI page] and [http://groups.google.com/group/ctuning-discussions cTuning development mailing list].<BR>Next, we plan to use MILEPOST/cTuning technology to enable realistic adaptive parallelization, data partitioning and scheduling for heterogeneous multi-core systems using statistical and machine learning techniques.
| |
- |
| |
- | *'''2009.June.26''' - The pdf of the paper that describes Collective Tuning Infrastructure and cTuning concept (presented at the GCC Summit'09) will be available in a few weeks [http://unidapt.org/index.php/Dissemination#Fur2009 here].
| |
- |
| |
- | *'''2009.June.17''' - We participated in discussions to include plugin system similar to [http://ctuning.org/ici ICI] to mainline GCC for a long time and finally GCC 4.5 will feature a low-level plugin system. We are now synchronizing high-level ICI/MILEPOST with the mainline to be able to reuse all our available plugins. We also develop several new plugins within [http://socghop.appspot.com/org/home/google/gsoc2009/gcc 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 [http://gcc.gnu.org/wiki/GCC_PluginComparison here]. The ICI development and discussions mailing list is available [http://groups.google.com/group/ctuning-discussions here].
| |
- |
| |
- | * '''2009.June.01''' - After nearly 1 year of developments we released/updated all our open-source collaborative [[CTools|R&D tools]]:
| |
- | ** fully redesigned and documented [[CTools:ICI|Interactive Compilation Interface]] v2.0 for GCC 4.4.0 synchronized with the official plugin GCC branch - transforming compilers into plugin-enabled research toolsets
| |
- | ** [[cTools:MilepostGCC|MILEPOST GCC 4.4.0]] pre-release version at SVN - automating program optimization and compiler optimization heuristic tuning using machine learning
| |
- | ** [[CTools:CCC|Continuous Collective Compilation Framework v2.0]] - enabling automatic collaborative program optimization based on statistical and machine learning techniques
| |
- | ** [[CTools:CBench|Collective Benchmark/MiDataSets v1.0]] - enabling realistic program optimization research and benchmarking using multiple open-source programs/datasets.<BR><BR>We also updated [[CDatabase|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.<BR><BR>We would like to thank [[Community:People|cTuning community]] for feedback, help and support! You are welcome to join this [[Community|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 [http://ctuning.org Collective Tuning Initiative and tools] and [http://cTuning.org/project-milepost MILEPOST project] ("Collective Optimization, run-time adaptation and machine learning"). Presentation is available [http://unidapt.org/presentations/presentation_fursin_uiuc2009.pdf here]. We would like to thank all the UIUC colleagues for a very interesting and useful feedback.<br>
| |
- |
| |
- | * '''2009.April.21''' - [http://socghop.appspot.com/org/home/google/gsoc2009/gcc 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|join cTuning community]] and follow or participate in the developments using our dedicated [[Community|mailing lists]].
| |
- |
| |
- | * '''2009.Mar.24''' - the new functionality implemented in the '''''<tt>master</tt>''''' branch on [http://www.gitorious.org/projects/gcc-ici/ Gitorious] was backported to a newly created '''''<tt>gcc-4.2.4</tt>''''' 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.Mar.02''' - [http://code.google.com/soc/ Google Summer of Code'2009] will be accepting development applications soon - you are welcome to check [[CTools:ICI:Projects|ICI extension projects]] and [[CTools:ICI:Feedback|ICI feedback/suggestion]] pages if you would like to help us to extend our collaborative tools within this program!<br>
| |
- |
| |
- | * '''2009.Feb.27''' - a [http://gcc.gnu.org/ml/gcc-patches/2009-02/msg01242.html 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.
| |
- |
| |
- |
| |
- | <BR>
| |
- | :::::: ''[http://groups.google.com/group/ctuning-announce News archive]''
| |
- |
| |
- | {{Link4}}
| |
- | }}
| |
- | |}
| |
| | | |
| <div align="center"> | | <div align="center"> |
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.