Intel C++ Compiler?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Anyone had luck with the Intel C++ Compiler? I tried it for weeks, made a lot of progress with optimizations, but in the end it was just too much trouble and problems to really use it for final builds... :shrug: In the "old" days, I would only use the intel compiler, go figure...

Cheers, WilliamK

Post

Hi, what do you mean? Are you having trouble compiling C code? I personally don't make C programs, but support them. Its usually fairly straight forward. Most devs use gnu cc. A few use Intel's one. As long as you confirm to the coding standards you should be fine.

FWIW, a lot of the compiler support is in google groups these days.
🌐 Spotify 🔵 Soundcloud 🌀 Soundclick

Gear & Setup: Windows 10, Dual Xeon, 32GB RAM, Cubase 10.5/9.5, NI Komplete Audio 6, NI Maschine, NI Jam, NI Kontakt

Post

Hey there. I had some crashes within the compiler itself and Intel couldn't reproduce it. Them I found a workaround, but the whole compiling process was uuuuultra slow and nearly took my computer down. It is an old computer, so ok... I went ahead and rented an cloud-computer that had modern specs, 32 Gig of RAM. The same thing, very slow, crashed in the same location. So I decided to use the optimizations to see if that would speed up my code, and it did, a lot. But one user reported that the .dll file wouldn't work on his Windows 10 machine, but the MSVC compiled .dll file would. So I tried to find if it needed the run-time libraries. The user installed all from Intel, no dice... so I wonder if I should keep trying or just give up... the lower CPU usage on the final builds is really a good thing, but the compiler price is indeed very high. I did find an option for the community version that is free, but I don't know how legal is to make commercial stuff from it.

Cheers, WilliamK

Post

Here are my very non scientifically tests.... :hihi:

CPU USAGE IN % (I created a patch with several voices playing all voices steady - single core output)
58 - 60 - Visual 2017 all opts (whole program opts too)
55 - 56 - Intel 2019 with /Qip
56 - 57 - Intel 2019 with /Qip /Qftz /Qopt-matmul /Qunroll:9 /Qparallel /Quse-intel-optimized-headers
54 - 55 - /Qipo on the VST and VST3 files --- Intel Math Kernel Library: Use Intel MKL=Sequential --- /Qip /Qftz
53 - 54 - All the above plus: /Quse-intel-optimized-headers
54 - 55 - All the above plus: IPP multi-threaded static
52 - 53 - Intel Math Kernel Library: Use Intel MKL=Parallel, Use ILP64=Yes --- /Qip /Qftz /Qopt-matmul /Quse-intel-optimized-headers
52 - 53 - Intel Math Kernel Library: Use Intel MKL=Parallel, Use ILP64=Yes --- /Qip /Qftz /Qopt-matmul /Quse-intel-optimized-headers /O3 /Qprec-div- /fp:fast=2 /QxSSE2
54 - 55 - All above plus /Oi /Ob2 /Ot - INCREASED
52 - 53 (but stays mostly at 52, sometimes even 51) - /Qip /Qftz /Qopt-matmul /Quse-intel-optimized-headers /O3 /Qprec-div- /fp:fast=2 /QxSSE2 /Qinline-factor:800 /Qopt-report:4 /Qopt-report-phase ipo

Best so far
52 - 53 (but stays mostly at 52, sometimes even 51) - /Qip /Qftz /Qopt-matmul /Quse-intel-optimized-headers /O3 /Qprec-div- /fp:fast=2 /QxSSE2 /Qinline-factor:800 /Qopt-report:4 /Qopt-report-phase ipo
52 steady - Added to the above /Qparallel replaced /QxSSE2 with /QxSSE3

Post

Sorry man. All this stuff is way out of my territory. I work mostly on Unix type systems. You may want to hit the Microsoft Technet developer forums and see what the devs over there have to say.

https://developercommunity.visualstudio ... index.html

Your code is that the code that it is. You issues/challenges are Microsoft's implementation of C and the Visual Studio product. Those guys will have a better handle of it.
🌐 Spotify 🔵 Soundcloud 🌀 Soundclick

Gear & Setup: Windows 10, Dual Xeon, 32GB RAM, Cubase 10.5/9.5, NI Komplete Audio 6, NI Maschine, NI Jam, NI Kontakt

Post

Thanks. :cool:

Post

Used to work at a government lab on numerical solvers. Had no problems invoking icpc, although I wasn't linking with crazy graphics libraries and APIs like VST. However, the optimization was mind blowing. GCC produces fast elegant code and converts basic loops into what you'd expect with SIMD instructions. ICC on the other hand produces assembly that was written by aliens with 2000 IQ and understands what you meant better than you do. It can produce instructions you didn't even write that computes the probability of all scenarios of input data so that the most efficient path is chosen based on properties of the input data.

But IMO the bottleneck with 1-dimensional DSP is never CPU but memory/cache bandwidth, so GCC is just fine, or even clang.
VCV Rack, the Eurorack simulator

Post

WilliamK wrote: Mon Jan 21, 2019 6:51 pm Anyone had luck with the Intel C++ Compiler? I tried it for weeks, made a lot of progress with optimizations, but in the end it was just too much trouble and problems to really use it for final builds... :shrug: In the "old" days, I would only use the intel compiler, go figure...

Cheers, WilliamK
From my experience the optimisations and hassles are not enough to switch over the stock compiler.

Post

I'm assuming you're interested in the Intel compiler to maximise the speed of your code. This cppcon talk might be worth a look: https://www.youtube.com/watch?v=w5Z4JlMJ1VQ

He compares Clang, Gnu and Intel compilers.

Post

We have been getting (much) better performance using Intel compilers ever since we started using them about 15 years ago. The reasons for this are obvious once you look at the generated machine code. Non-Intel compilers tend to mess up even simple things like code inlining in some cases. So it is certainly worth testing what the Intel compiler can do with your code. If there is not much of a performance difference, don't bother with it.

Richard
Synapse Audio Software - www.synapse-audio.com

Post

:hug:

Post Reply

Return to “DSP and Plugin Development”