An Evolutionary Analysis of GNU C Optimizations

Discussion in 'C++' started by Scott Robert Ladd, Nov 17, 2003.

  1. I've just posted my analysis of GNU C and C++ optimizations, using a
    genetic algorithm to discover the most effective optimization flags for
    different algorithms.

    ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm)
    implements a genetic algorithm to find the "best" options for compiling
    programs with the GNU Compiler Collection (GCC) C and C++ compilers.
    "Best", in this context, is defined as those options that produce the
    fastest executable program from a given source code. Acovea is a C++
    framework that can be extended to test other programming languages and
    non-GCC compilers.

    I envision Acovea as an optimization tool, similar in purpose to
    profiling. Traditional function-level profiling identifies the algorithms
    most influential in a program's performance; Acovea is then applied to
    those algorithms to find the compiler flags and options that generate the
    fastest code. Acovea is also useful for testing combinations of flags for
    pessimistic interactions, and for testing the reliability of the compiler.

    You'll find the full article, and links for downloads, at:

    http://www.coyotegulch.com/acovea/index.html

    Enjoy.

    ...Scott

    --
    Scott Robert Ladd
    Coyote Gulch Productions (http://www.coyotegulch.com)
    Software Invention for High-Performance Computing
    In development: Alex, a database for common folk
     
    Scott Robert Ladd, Nov 17, 2003
    #1
    1. Advertising

  2. Scott Robert Ladd

    Nudge Guest

    Scott Robert Ladd wrote:
    > I've just posted my analysis of GNU C and C++ optimizations, using a
    > genetic algorithm to discover the most effective optimization flags for
    > different algorithms.


    You could have cross-posted, you know...
     
    Nudge, Nov 17, 2003
    #2
    1. Advertising

  3. Scott Robert Ladd wrote:
    > I've just posted my analysis of GNU C and C++ optimizations, using a
    > genetic algorithm to discover the most effective optimization flags for
    > different algorithms.
    >
    > ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm)
    > implements a genetic algorithm to find the "best" options for compiling
    > programs with the GNU Compiler Collection (GCC) C and C++ compilers.
    > "Best", in this context, is defined as those options that produce the
    > fastest executable program from a given source code. Acovea is a C++
    > framework that can be extended to test other programming languages and
    > non-GCC compilers.
    >
    > I envision Acovea as an optimization tool, similar in purpose to
    > profiling. Traditional function-level profiling identifies the algorithms
    > most influential in a program's performance; Acovea is then applied to
    > those algorithms to find the compiler flags and options that generate the
    > fastest code. Acovea is also useful for testing combinations of flags for
    > pessimistic interactions, and for testing the reliability of the compiler.
    >
    > You'll find the full article, and links for downloads, at:
    >
    > http://www.coyotegulch.com/acovea/index.html




    Nit :

    you write:

    -finline-limits=nnn

    it is:

    -finline-limit=N (note the missing "s")

    Unfortunately this one sometimes has huge impact on performance and
    changes in meaning from release to release. In some cases inlining can
    actually eliminate alot of code and when it's successful huge swaths of
    code disappear. But sometimes you need to set it so high that some of
    the code fails to finish compiling (gets stuck in some infinite loop) !
    This is definitly a weakness with gcc.

    Cool - I read about GA once - is this somthing we can bundle up as part
    of a unit test - sort of a build-step in my Makefile ? That would be cool.

    G
     
    Gianni Mariani, Nov 17, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    5
    Views:
    3,979
    Mike Treseler
    Aug 23, 2005
  2. Peter

    1 day gnu, whole life gnu?

    Peter, Jan 10, 2005, in forum: Java
    Replies:
    3
    Views:
    353
    John C. Bollinger
    Jan 10, 2005
  3. Peter
    Replies:
    17
    Views:
    613
    Chris Smith
    Jan 13, 2005
  4. Markus Elfring
    Replies:
    2
    Views:
    380
    Markus Elfring
    Feb 23, 2005
  5. Scott Robert Ladd

    An Evolutionary Analysis of GNU C Optimizations

    Scott Robert Ladd, Nov 17, 2003, in forum: C Programming
    Replies:
    0
    Views:
    339
    Scott Robert Ladd
    Nov 17, 2003
Loading...

Share This Page