5

Pretty straight forward, are the Intel compilers worth getting? I do mostly systems level and desktop work so I figure I might benefit. Can anyone with some more experience shed some light?

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847
samoz
  • 56,849
  • 55
  • 141
  • 195
  • possible duplicate of [Anyone here has benchmarked Intel C++ compiler and GCC?](http://stackoverflow.com/questions/1733627/anyone-here-has-benchmarked-intel-c-compiler-and-gcc) – Paul Tomblin May 24 '10 at 19:23
  • For auto-vectorization and Fortran, yes, absolutely. – Jeff Hammond Apr 24 '15 at 05:24
  • 1
    VTC as opinion based. Even if we can show objective quantitative differences, they are only valid for the current version and the current versions of competitors. Various feature differences get obsolete quickly. – Vladimir F Героям слава Mar 20 '23 at 15:55

5 Answers5

6

If you are on Windows, they do provide a nice speed boost over other compilers on Intel processors. There is a known behavior where they pick a very slow code path with non-Intel processors (AMD, VIA), and antitrust probes surrounding the issue.

If you use the thread building blocks or other features, you also risk tying your code to the Intel compiler long term as the functionality doesn't exist elsewhere.

GCC 4.5 on Linux is nearly on-par with the Intel compiler. There is no clear winner on that platform.

Yann Ramin
  • 32,895
  • 3
  • 59
  • 82
1

In the small experience I've had with intel compilers (C only), I would say their are vastly superior. Specifically the OpenMP library was much much faster than the open source version. "Worth it" depends on your situation though, they are expensive, but they are better IMO.

Tom
  • 663
  • 5
  • 19
  • Well, I qualify for student pricing, so it wouldn't be too bad if I got them before I graduate. – samoz May 24 '10 at 19:38
  • If you can afford it I'd say go for it. I was able to use it through a class which the professor had an instructional license but after the class was over I couldn't use it anymore and I was pretty sad. I gained a lot of respect for Intel software from using their tools, they make good stuff. – Tom May 24 '10 at 22:40
1

If you're comparing the numerical behavior of ICL vs. MSVC++ you must take into account the different behavior of the /fp: settings. ICL /fp:source (less aggressive than default) is equivalent to MSVC /fp:fast (more aggressive than default). Microsoft doesn't perform any of the optimizations which are enabled by ICL default. These include simd reductions (which usually improve accuracy, but by an unpredictable margin). ICL also violates the standard about parens by default. There still seems to be a controversy about whether to fix that by better performing means than /fp:source.

tim18
  • 580
  • 1
  • 4
  • 8
  • 1
    Earlier in the thread, comparison of Intel vs. gnu compiler performance was mentioned. g++ -ffast-math -fno-cx-limited-range is roughly equivalent to ICL default /fp:fast. On Windows, -ffast-math may not control underflow mode, and it may be necessary to set it yourself in the program. -ffast-math reduces fmin/fmax et al to single instructions, but with Intel C++ you need std::min/max. – tim18 Jun 11 '16 at 20:23
  • Recent ICL added option /Qprotect-parens to observe post-K&R language standards on parentheses. gcc couples K&R handling of parentheses into -ffast-math. – tim18 Jun 11 '16 at 20:27
0

if floating number precision is important to you then use Visual studio compiler and not intel compiler. 32 bit vs 64 bit application Can give you different result on calculation with Intel compiler. (checked). Visual studio compiler result on 32 bit vs 64 bit will be same.

user3004288
  • 17
  • 1
  • 5
  • ICC's default for `-fp-model` is `fast:1`, while most other compilers default to `strict` (e.g. `gcc -fno-fast-math`). If you want strict FP semantics from ICC, you can ask for it (https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-8/fp-model-fp.html). Unless there are compiler bugs that don't fully respect it, you should get ISO C standard evaluation order. – Peter Cordes Mar 20 '23 at 09:50
0

From the benchmarks I've seen, it does look like using the Intel specific compilers provide some performance/multithreading benefit over their Open Source alternatives.

Justin Niessner
  • 242,243
  • 40
  • 408
  • 536