3 ms·
Could that be because of ICC’s dispatch code? It compiles code for different feature sets and then uses the CPUID feature list to know which to run.
by colejohnson66 8y ago
Could that be because of ICC’s dispatch code? It compiles code for different feature sets and then uses the CPUID feature list to know which to run.
- userbinator 8y agoThat's for autovectorisation, but my experience has been that icc's regular scalar code generation is what makes it perform so well. Instruction selection, register allocation, etc.
- conistonwater 8y agoAren't those common to all compilers? So it just does everything that clang/gcc do also, but does it better?
- naikrovek 8y agoDepending on what you are doing a bit, stuff compiled with `icc` runs about 20% faster than the same code compiled with `gcc` or MSVC's compiler on Intel CPUs.
- colejohnson66 8y agoInteresting. Any links to benchmarks?
- earenndil 8y agoHmmm. The one time I tried it (for a crypto miner), it ran about 60% the speed of gcc and clang (which were comparable; one was slightly ahead, I forget which but I think it was gcc). Granted, I may have gotten the flags wrong (there were a lot of them), but I turned all the ones that looked relevant.
- keldaris 8y agoWould you happen to know if recent versions of icc still generate horrible code for AMD CPUs (particularly Ryzen/EPYC)?