5 ms·
They used the Intel compiler. We know for a fact Intel’s compilers deliberately don’t optimize as well for non-Intel chips. That’s damning in and of itself.
by xenadu02 7y ago
They used the Intel compiler. We know for a fact Intel’s compilers deliberately don’t optimize as well for non-Intel chips.
That’s damning in and of itself.
- dbcurtis 7y agoThat is a little disingenuous. The whole point of Intel’s compiler is to support Intel chips well. Results on other chips are what they are. No effort to make other chips perform eiher better or worse is expended. Keeping up with Intel chips is more than a full time job without other distractions. The question to ask is whether or not they used the best complier/swithes available for the other chips.
- melkiaur 7y ago> No effort to make other chips perform [...] worse is expended. I don't know about nowadays, but it used to be that the intel libs and compiler would specifically disable SIMD instructions if they found that the CPUid returned a non-"Genuine Intel" string. Doing nothing - and just relying on the CPU feature flags - would have been more fair.
- wmf 7y agoThis is a debatable topic. The generated code could check cpuid and use whatever instructions are available but AFAIK it would check the vendor instead and not use SSE/AVX on non-Intel processors that support those instructions.
- xeeeeeeeeeeenu 7y ago>No effort to make other chips perform eiher better or worse is expended. This is not true. Intel compilers cripple non-intel CPUs on purpose, they generate code that literally checks whether CPUID is equal to "GenuineIntel" and if it isn't, it executes the less optimized code path[1]. [1] - https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler#Reception https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler#Recepti...
- monocasa 7y agoIntel is the one who defined feature presence flags in the CPU, but then doesn't use them for their compiler.
- xenadu02 7y ago> That is a little disingenuous. Nonsense. Please do some research before you comment. In the past Intel would build the benchmarks with commonly available compilers (Intel, GCC, Clang) then select the best benchmark results, eg if GCC gave the best numbers on AMD chips they'd use GCC to compile the tests on AMD. That was a fair comparison. They deliberately changed to using their own compiler specifically to disadvantage AMD in this comparison.
- Fnoord 7y agoI guess we're better off with Phoronix then, as they're more independent, and benchmark with a myriad of different compilers and OSes (I'm not aware of any software on my Linux AMD64 machine which was compiled with ICC).
- agumonkey 7y agoIt's been 30 years since benchmarks used icc .. it was already shocking when we realized that in the 2Ks.