Slashdot Mirror


Intel C/C++ compiler vs. GNU gcc/MS Visual Studio

the_real_tigga writes "OpenMag features a benchmark review of the Intel C/C++ compiler as opposed to gcc on linux and Microsoft Visual Studio compiler on Windows XP. Not surprisingly (for me at least), icc beats them both, with dramatic performance improvements. Too bad they chose to review gcc version 2.95, and not the 3.x series, which is known to produce faster code. What is surprising, even AMD CPUs benefit from the icc-compiled code. There is another version of the article here, and they provide a download of the used tools , so you can try it at home too!"

16 of 35 comments (clear)

  1. AMD by fault0 · · Score: 3, Insightful

    > What is surprising, even AMD CPUs benefit from the icc-compiled code.

    This isn't suprising, as AMD CPUs have always shown remarkable increases in performance with icc (sometimes even more than equivalent intel chips). I guess AMD does a really good job in making the Athlon a x86 chip.

    1. Re:AMD by AT · · Score: 4, Informative

      I'm guessing icc beats the others mainly on instruction scheduling. In other words, Intel has put a lot of effort into generating code that is parallelizable by spreading out close instructions to different pipelines.

      Since AMDs chips are pipelined, they are likely to benefit even if the pipelines aren't exactly the same.

  2. kuch and associates by Satai · · Score: 3, Informative

    It's actually Kuck and Associates that was acquired by Intel, not Kuch and Associates as listed in the article.

  3. VC6.0, GCC2.95 by spongman · · Score: 5, Insightful

    It would be nice to see the same comparisons but with compilers that aren't over 3 years old.

    1. Re:VC6.0, GCC2.95 by RupW · · Score: 3, Interesting

      FYI: you should be able to download the latest Platform SDK from microsoft which includes the latest build tools.

      Don't think so. There's the latest IA64 compiler, yes, but no IA32 compiler.

      It doesn't have MFC/ATL, but you should be able to still use the versions from VC6 with the new compiler/linker.

      I'd be surprised - they've changed the .pdb (debug info) format. That said, the interface for mspdb70.dll and mspdb60.dlls look roughly the same, so you might get away renaming dropping the 70 version into VS6.

  4. beta of gcc 3.x? by norwoodites · · Score: 3, Insightful

    They said gcc 3.x was beta software, it has more regression testing than windows have security testing.

  5. how is this benchmark useful? by capoccia · · Score: 4, Insightful
    Key Findings
    On Linux, numerically intense CPU performance improved by 47 percent compared to GNU C v2.95.
    On Windows, numerically intense CPU performance improved by 37 percent compared to MS Visual Studio.
    CPU performance for Intel on Linux and MS Visual Studio .NET on Windows was a dead heat.
    AMD Athlon-based systems benefited equally with Pentium III-based systems.

    GCC 2.95??? in 2003???
    what are these guys thinking? i mean, it may have been the compiler that came with the Suse 7.3 they were using, but still. Suse is on 8.1 now which does ship with gcc 3.2.
  6. Yeah, that article is a little old by TwistedKestrel · · Score: 3, Insightful

    I'm pretty sure that Visual .NET isn't beta software anymore, and neither is GCC 3.x ... this is somewhat out of date. However, somebody who wants a Slashdotting could just download the aforementioned tools and write their own up to date comparison ... (note that I don't want a ./ing)

    All things considered, though, I'm fairly sure GCC hasn't gotten quite *that fast* in the elapsed time since the article was written :p.

  7. Re:but wait by Anonymous Coward · · Score: 4, Informative

    No, the intel compiler has been able to successfully compiler the kernel for the past two versions (7 & 6). Check out the recent discussion on the kernel mailing list
    http://www.uwsg.indiana.edu/hypermail/linux/ kernel /0301.2/0846.html
    Now we just need Spike ported from the alpha.

  8. Changing too many variables at a time? by Confuse+Ed · · Score: 4, Insightful

    re:

    Target specific object code and executable file format notwithstanding, what really makes the Intel compiler so very interesting is the fact that it delivers the same instruction sequences on both Linux and Windows platforms.

    Doesn't gcc also have the same property when running under Linux or windows? (for the OS-independant parts of your code, obviously)

    Although the main thrust of the article is to compare the new intel compiler to gcc and visual studio, they are also talking about comparing performance accross platforms - their initial comparison is gcc on Linux vs Visual Studio on Windows (no mention of what optimizations are performed, what other service are running, what nice levels the programs are executed at, whether they are measuring user cpu time or total execution time, and so on)

    It would be nice to see tests varying each of these variables individually, or showing all the possible combinations:

    • Operating System : Linux 2.4, Linux 2.5, Windows XP. I wouldn't expect the O.S. to have any impact on the performance of computationally heavy stuff that the compiler can affect (but would make a big difference when it comes to memory management, and any IO)
    • Compiler : Gcc, Intel C++, Visual Studio
    • Optimizations : no optimizations (should theoretically all be the same?), max optimizations without violating ANSI/IEEE rules, max optimizations not caring about rules (e.g. using -ffast-math for gcc), enabling or disabling different targets (ie compile for 386 against compile for 686). Maybe even anti-optimizations such as turning on some extra debug/profiling options under each compiler (the time taken to create and debug a program can be more important the time it takes to execute)

    On a (big) plus point - this article does at least show us some error margins on their measurements (none of this "Graphics card A lagged behind with a mere 47.6, but graphics card B stormed ahead with a score of 47.7" nonsense which seems to be all too common in most reviews)

  9. For Gentoo users... by dotgod · · Score: 2, Informative
    there's an ebuild if you want to try icc out. Just type:

    emerge dev-lang/icc

  10. sloppy editor alert by Garen · · Score: 2, Informative

    This story is really old and no longer relevant. Wouldn't be surprised if it was a dupe of a several-year-old story thats already appeared on slop-dot.

  11. surprisingly by z01d · · Score: 2, Funny

    ......and Microsoft Visual Studio compiler on Windows XP. Not

    They changed the name from ".Net" to ".Not"? surprisingly (for me at least),

  12. This is outdated info, fresher stuff in this post by Zeio · · Score: 4, Informative

    GCC 3.2.x vs. Intel C++ 7 would have been interesting. This just isn't.

    Go here for GCC 3.2 vs. Intel 7 information:
    http://www.coyotegulch.com/reviews/intel_comp/inte l_gcc_bench2.html

    GCC has done quite a bit to catch up.

    --
    Legalize the constitution. Think for yourself question authority.
  13. probably a dumb question but... by Davorama · · Score: 2, Interesting

    ... Intel has the nice compiler that generate really fast code. Presumably it's getting more done per CPU cycle on average by being smarter about scheduling and not wasting so many cycles.

    Intel also has this fancy new hyperthreading thing built into its newest CPUs that speeds things up by (very roughly speaking) letting one thread use another thread's wasted CPU cycles.

    Does a vastly more efficient compiler make hyperthreading ineffective? Is there some sort of balance that a really great compiler would need to strike between the fastest code and the code that will work best on Intel's fancy new CPU's if the app your are going to run is multi-threaded?

    --

    Davo -- Free speech, free software, AND free beer.

  14. For $1,000? by yerricde · · Score: 2, Informative

    However, somebody who wants a Slashdotting could just download the aforementioned tools

    I'm sorry; I don't have $1,000 for any version of Microsoft Visual Studio.

    Oh, you mean the "standard edition" for $100? That's known to generate inefficient code; Microsoft doesn't even claim that the "standard edition" optimizes your code one bit.

    --
    Will I retire or break 10K?