Jump to: navigation, search

You are warmly welcome to quickly self-register at this website and our community mailing lists (developments, announcements) to join our collaborative effort, follow and update cTuning news, update wiki pages, add and rank optimization cases, use web-services and participate in developments!

Web shortcut:
Machine learning based optimization prediction using program similarities based on static and dynamic program features using continously collected knowledge in the cDatabase as described in [FKMP2011].

In 2012, we also hope to add program analysis, parallelization and run-time adaptation techniques for performance vs power based on [FT2010], [LCWP2009], [JGVP2009], [FCOP2005] and [FOPT2004]. If you have any questions or comments, don't hesitate to contact Grigori Fursin (cTuning/MILEPOST Framework research and development coordinator) or cTuning discussions mailing list.

cTuning Web-service is now available to predict multi-objective optimizations (execution time vs code size vs compilation time) on the fly during compilation. It is now connected with MILEPOST GCC (with ICI plugin system and feature extractor) and CCC framework to optimize programs for better execution time and code size on the fly during compilation. This is a part of our statistical collective optimization concept to convert compilers into modular, self-tuning intelligent adaptive infrastructure. It allows substitution of the compiler default optimization heuristic with the external plugin that communicates with our machine learning based online predictor and improves optimization predictions continuosly for a given architecture, program and a dataset leveraging experience of multiple users.

Sample program:

Compiler with feature extractor:

Static program features (Description of current program features from the MILEPOST GCC):
Dynamic program features (hardware counters):
On-going work

Predict optimizations:

Find optimization cases (that improve execution time, code size, power, etc) from the Collective Optimization Database for programs with similar static features.
This is an on-going work - we continue working to improve prediction mechanisms (automatic feature generation, quality and importance of features, etc).

Note: Prune the search until you find your configuration:

  • fursinne_coptcases - main database with optimization cases
  • fursinne_ccomparisons - database with comparison of different compilers (GCC, LLVM, Open64, Intel, etc)
  • fursinne_coptcasestest - database for testing cTools and cDatabase
  • fursinne_cfeatures - (WILL BE ADDED SOON) database with static and dynamic program features
    to enable optimization prediction based on machine learning


Development history

Support and development:

Locations of visitors to this page