From cTuning.org

(Difference between revisions)
Jump to: navigation, search
Line 19: Line 19:
* optimize both execution time and compilation time (important for cloud computing services and real-time systems)
* optimize both execution time and compilation time (important for cloud computing services and real-time systems)
-
We also use [http://cTuning.org/milepost-gcc MILEPOST GCC] to correlate program features and behavior to predict good optimizations
+
Furthermore, we are developing [http://cTuning.org/milepost-gcc MILEPOST GCC] to correlate program features and behavior to predict good optimizations
for unseen programs based on prior learning.
for unseen programs based on prior learning.

Revision as of 00:38, 16 March 2010

CCC framework: Frequently Asked Questions:

Navigation: cTuning.org > CTools > CCC

Do I really need CCC framework? I thought that compilers already produce perfect code

If you think that compilers produce optimal code, look carefully at the following motivation example (produced by CCC framework):

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:

fig_opt_case_susan_c_1.gif fig_opt_case_susan_c_2.gif

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:

  • optimize both execution time and code size (important for optimizing libraries and embedded/mobile computing systems)
  • optimize just execution time (important for desktop computers and HPC servers/supercomputers)
  • optimize both execution time and compilation time (important for cloud computing services and real-time systems)

Furthermore, we are developing MILEPOST GCC to correlate program features and behavior to predict good optimizations for unseen programs based on prior learning.

Is CCC framework similar to ACOVEA tool?

Yes, there are some similarities with the useful ACOVEA tool. However, the main difference is the possibility to share optimization knowledge with the community automatically using Collective Optimization Database (to enable learning of optimizations across multiple programs and architectures in MILEPOST GCC) and the possibility for third-party high-level plugins to implement various search techniques besides genetic algorithms. In fact, some time ago, we have been discussing with ACOVEA author a possibility to implement ACOVEA algorithm as one of the search plugins for CCC framework in the future.

Locations of visitors to this page