Hacker News new | past | comments | ask | show | jobs | submit login

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.




I 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).


That 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.


>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#Recepti...


> 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.


Intel is the one who defined feature presence flags in the CPU, but then doesn't use them for their compiler.


> 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.


This 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.


It's been 30 years since benchmarks used icc .. it was already shocking when we realized that in the 2Ks.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: