Placebo effect

Article: MAQSIP-RT: An HPC Benchmark
By: Vincent Diepeveen (diep.delete@this.xs4all.nl), June 26, 2010 2:50 pm
Room: Moderated Discussions
? (0xe2.0x9a.0x9b@gmail.com) on 6/24/10 wrote:
---------------------------
>Rohit (@.) on 6/24/10 wrote:
>---------------------------
>>? (0xe2.0x9a.0x9b@gmail.com) on 6/24/10 wrote:
>>---------------------------
>>>Bottom line: Not counting the support for new C/C++ features, how exactly is GCC 4.5 better than GCC 3.4 ?
>>>
>>
>>SSE intrinsics and/or C++ templates improved a lot in 4.2
>
>OK, that is true, but I would put these two things into the bag "new language features".
>The question I asked is more in the line of: If you can compile a program both with
>GCC version X *and* without any changes with version Y, is there a difference between GCC-X and GCC-Y?
>
>Let me present some comparison from a project of mine, maybe that will persuade
>you that the "newer GCC is better than older GCC"-idea suffers from a placebo effect:
>
>Application type: C++ code with some template classes, no floating-point arithmetic, no STL
>
>Compilers: GCC 4.5.0, GCC 4.1.2
>
>Compilation options: identical in both cases
>
>Compilation time: GCC-4.5.0 took 4.4% longer than GCC-4.1.2

Compilation time is really not a big problem. Even the largest projects you can compile, be it with some tools, in parallel. The amount of people where compilation time of a C/C++ compiler is a crucial bottleneck is quite limited on this planet, with all respect, by accident a few of them post on this newsgroup.

>Performance of generated code: There do not seem to be any significant differences
>in performance (well, at least in the places where I am measuring performance).
>Most certainly, there is *nothing* which would support the conjecture that "4.5.0
>produces strictly faster code than 4.1.2".

You are completely correct here.

Besides some major bugfixes in GCC (i remember some important bugfixes that allowed my software to bugfree run parallel suddenly - so possibly in the 'volatile' keyword in C), its model of generating code is strictly seen the same spaghetti, which to say it in a black and white mode, basically SABOTAGES its possibilities for getting a big speedup out of profile guided optimizations.

If we compare the better commercial compilers with GCC it is obvious that the commercial compilers manage to use less instructions to get something done and this simply always wins in the battle for execution speed of the code.

Now it is true that in vectorisation towards SIMD a lot has happened, but that's not the main cause of GCC being a suck slow compiler.

SIMD optimizations are 'a bonus' if i may say so. The core logics of the GCC compiler producing code seems to have been the same always, even though i'm aware some big rewrites there have happened.

If we look to other compilers i'm also not really very impressed by the speed they manage to get out of todays processors, yet that's not the discussion; GCC simply is not even close to being on par to that 'default level' of a copmiler like visual c++ 2005.

Now this software program is over 5 years old. We're far into 2010 and it is beating handsdown GCC for simple integer code. Though simple, it's a lot of integer code, and GCC gets total annihilated there.

SIMD is not a big issue there.

It is the core logics of the produced code that is seemingly at a fundamental different conceptual level between GCC and the commercial compilers. I could be total wrong there, as i didn't really dive into the GCC codes.

Realize Compiler technology is not my core expertise, yet i have the impression i would be able to really speedup some parts of GCC there for a lot of software running on x64 type hardware, if i look at the total clumsy, seemingly sabotaged code that gets produced by GCC.

That basically tells me that the problem is not a lack in brilliancy, but the problem is a lot of beginners mistakes somewhere in the compilation proces.

>-----
>
>So, if I may ask: Do you happen to have a normal Linux application (C/C++ integer
>code) where you are sure you are seeing GCC-4.5 producing better code than GCC-4.1?

GCC 4.0 to 4.5 is same speed for my application. If we realize that in the meantime visual c++ in 2005 got a boost of say 22% or so by means of an added PGO stage, GCC is missing that boost simply.

Its PGO, for whatever reason, is total junk; and i say that polite.

Vincent
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
New article online: MAQSIP RTDavid Kanter2010/06/21 11:57 AM
  Why no GCC?Rohit2010/06/22 09:25 PM
    Why no GCC?David Kanter2010/06/23 12:45 AM
      sun 's cc better than GCC?Rohit2010/06/23 05:04 AM
        sun 's cc better than GCC?anon2010/06/23 07:49 AM
          Where is the GCC optimization effort directed?Mark Roulo2010/06/23 10:42 AM
            GCC is very ugly bad everywhere in 64 bitsVincent Diepeveen2010/06/23 02:49 PM
              even for 64-bit arch?anon2010/06/23 02:59 PM
              GCC is very ugly bad everywhere in 64 bitsajensen2010/06/23 11:03 PM
                GCC is very ugly bad everywhere in 64 bitsGabriele Svelto2010/06/24 02:33 AM
                  GCC is very ugly bad everywhere in 64 bitsajensen2010/06/24 05:32 AM
                    GCC is very ugly bad everywhere in 64 bitsGabriele Svelto2010/06/24 07:18 AM
                      GCC is very ugly bad everywhere in 64 bitsajensen2010/06/24 09:50 AM
                        Why GCC is big and complicated (my guess)Mark Roulo2010/06/24 12:17 PM
                          Why GCC is big and complicated (my guess)Gabriele Svelto2010/06/28 04:00 AM
                GCC is very ugly bad everywhere in 64 bitsBernd Schmidt2010/06/24 05:46 AM
                  GCC is very ugly bad everywhere in 64 bitsajensen2010/06/24 09:43 AM
                  GCC is very ugly bad everywhere in 64 bitsVincent Diepeveen2010/06/26 02:12 PM
                GCC is very ugly bad everywhere in 64 bitsRob Thorpe2010/06/24 07:47 AM
                  GCC is very ugly bad everywhere in 64 bitsAnon2010/06/24 05:23 PM
            Where is the GCC optimization effort directed?Gabriele Svelto2010/06/23 10:45 PM
              Where is the GCC optimization effort directed??2010/06/24 01:48 AM
                Where is the GCC optimization effort directed?Gabriele Svelto2010/06/24 02:29 AM
                  Where is the GCC optimization effort directed??2010/06/24 03:13 AM
                    Where is the GCC optimization effort directed?Andi Kleen2010/06/24 03:15 AM
                      Where is the GCC optimization effort directed??2010/06/24 04:08 AM
                    Where is the GCC optimization effort directed?Gabriele Svelto2010/06/24 03:54 AM
                      Where is the GCC optimization effort directed??2010/06/24 04:15 AM
                        Where is the GCC optimization effort directed?Gabriele Svelto2010/06/24 07:22 AM
                Where is the GCC optimization effort directed?Rohit2010/06/24 03:04 AM
                  Placebo effect?2010/06/24 06:37 AM
                    Placebo effectRohit2010/06/24 08:45 AM
                    Placebo effectVincent Diepeveen2010/06/26 02:50 PM
                      Compile timeMark Roulo2010/06/26 05:28 PM
                        Compile timeRichard Cownie2010/06/27 04:44 AM
                          Compile timeMark Roulo2010/06/27 10:12 AM
                          Compile timeMark Roulo2010/06/27 10:21 AM
                            Compile timeEduardoS2010/06/27 11:37 AM
                            Compile timeRichard Cownie2010/06/27 04:07 PM
                              Compile time & efficiency?2010/06/28 12:03 AM
                                Compile time & efficiencyMark Christiansen2010/06/28 06:08 AM
                                Compile time & efficiencyLinus Torvalds2010/06/28 07:48 AM
                                  kernel programming languageJohn Simon2010/06/29 06:46 PM
                                Compile time & efficiencyRichard Cownie2010/06/28 09:29 AM
                                  Compile time & efficiencyLinus Torvalds2010/06/28 11:17 AM
                                    Compile time & efficiencyRichard Cownie2010/06/28 02:16 PM
                                      Compile time & efficiencyRichard Cownie2010/06/28 06:23 PM
                                        Compile time & efficiencyMark Roulo2010/06/29 08:31 AM
                                          Compile time & efficiencyRichard Cownie2010/06/29 11:48 AM
                                          Compile time & efficiencyrwessel2010/06/29 12:28 PM
                                            C is a crappydev2010/06/29 07:12 PM
                                              C is a crappy, but only when you push it out of it's nicheRohit2010/06/30 02:11 AM
                                              C is a crappyanon2010/06/30 02:17 AM
                                                C is a crappydev2010/06/30 07:59 AM
                                                  C is a crappyMax2010/07/01 04:30 AM
                                                    C is a crappyMichael S2010/07/01 07:00 AM
                                                      C is a crappyKonrad Schwarz2010/07/01 08:02 AM
                                                        C is a crappyMichael S2010/07/01 08:50 AM
                                                          C isn't so crappyanon2010/07/01 10:11 AM
                                                            C isn't so crappyMikael Tillenius2010/07/01 11:39 AM
                                                          C is a crappyKonrad Schwarz2010/07/01 11:22 AM
                                                          C is a crappyMax2010/07/02 08:44 AM
                                                            C is a crappyrwessel2010/07/02 12:33 PM
                                                              C is a crappyanon2010/07/02 01:17 PM
                                                              C is a crappyMax2010/07/02 02:56 PM
                                                                C is a crappyMax2010/07/02 03:13 PM
                                                                  C is a crappyrwessel2010/07/02 03:32 PM
                                                                    C is a crappyMax2010/07/02 04:19 PM
                                                                    C is a crappyGabriele Svelto2010/07/05 05:25 AM
                                                      C is a crappygallier22010/07/02 12:14 AM
                                                    C is a crappyIan Ollmann2010/07/06 03:07 PM
                                                      PortabilityMax2010/07/06 03:37 PM
                                                      C is a crappyhobold2010/07/07 02:31 AM
                                                        C is a crappyIan Ollmann2010/07/07 05:18 PM
                                                      failure to standardize typesCarlie Coats2010/07/07 04:11 AM
                                                      C is a crappyKonrad Schwarz2010/07/07 08:34 AM
                                                        C is a crappyIan Ollmann2010/07/07 05:29 PM
                                                          C is a crappy NOTKonrad Schwarz2010/07/08 12:29 AM
                                                  C is a crappyanon2010/07/01 10:40 PM
                                                    C type safety?2010/07/02 01:10 AM
                                                      C type safetyanon2010/07/02 11:02 PM
                                                    C is a crappydev2010/07/03 04:51 PM
                                                      C is a crappyanon2010/07/03 07:02 PM
                                                        C is a crappydev2010/07/05 07:27 AM
                                                          C is a crappy?2010/07/05 09:05 AM
                                                            C is a crappyanonymous2010/07/07 08:32 AM
                                                              C is a crappy?2010/07/07 10:48 PM
                                                              C is a crappyAnon2010/07/08 12:53 AM
                                                      C is a crappy and a crappie is a fishanonymous2010/07/03 07:24 PM
                                      Compile time & efficiencyMichael S2010/06/29 03:18 AM
                                        Compile time & efficiencyrwessel2010/06/29 12:20 PM
                                        Compile time & efficiencysomeone2010/06/30 11:03 AM
                                        Compile time & efficiencyJouni Osmala2010/07/02 05:29 AM
                                  Compile time & efficiencyMax2010/06/28 05:05 PM
                                    Compile time & efficiencyEduardoS2010/06/28 05:11 PM
                                    Compile time & efficiencyMichael S2010/06/29 03:33 AM
                              Compile timeFoo_2010/06/28 09:03 AM
          sun 's cc better than GCC?Silent2010/06/23 06:19 PM
            sun 's cc better than GCC?Foo_2010/06/23 07:06 PM
          sun 's cc better than GCC?Andi Kleen2010/06/24 02:49 AM
        sun 's versus gccVincent Diepeveen2010/06/23 03:07 PM
    Why no GCC?Carlie Coats2010/06/23 05:11 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?