NTMBK
Lifer
- Nov 14, 2011
- 10,269
- 5,134
- 136
@NBTMK
I just don't get how the hell you can argue it's a cripple amd function.
I'm suprised it's that large a deficit actually - but it's not a bloody cripple AMD function.
And the usual AMD fanbois arguments are straws at best.
The thing is, if it was intended to be a feature to extract maximum performance out as opposed to lock out their competitors then they would have implemented it differently. The CPUID instruction emits a bitmask which very clearly lists each individual capability of the processor- whether it has SSE4, whether it has SSE3, etc etc. This is the most straightforward and reliably portable way of determining what code will run on that processor, and as such the most straightforward way to implement the logic for a dispatcher. The same logic would determine what codepath to execute for AMD, Intel or VIA chips- and this is very simple logic, the kind of thing I could write in an afternoon.
Instead, Intel implemented a solution based upon the name of the chip. This not only prevents optimal performance on competitor's chips, but it also limits performance on future chips which did not exist when the binary was compiled. A binary compiled in 2004 will not know what is the optimal code path for Haswell, for instance.
Take a look at the "Common math programs are affected" section on the Agner Fog blog. When the Via Nano fakes being a Pentium 4, the same Mathcad job runs more than twice as fast as it does when pretending to be a "Intel nonexisting fam. 7". It's pretty obvious that there is no good technical reason to go with this solution, other than to shaft their competitors.
Also, I really don't appreciate you calling me a fanboy.
Intel is not pushing ICC as a de-facto IDE solution or compiler.
Therefor market sentiment should regulate this problem by itself.
Intel Parallel Studio is heavily marketed as deeply integrated into Visual Studio, and works very well in that respect. You get a whole suite of (very useful) Intel tools linked into your IDE.
A software company would never make the release binaries in ICC - if they want to reach all, done.
Trust me, software companies make the release binaries with the ICC.
I somehow don't expect VS to compile optimally to windows vs unix either.
(Even tho that's a vague comparison).
Microsoft's compiler doesn't support Unix at all, so I'm not really sure what you're saying. :S
Come on - is that best argument you have as a fan?
"ICC is only good Intel! - that's cheating!".
If your market base is cross-hardware wise - hopefully your smart enough not to compile with ICC.
Now that the issue has been raised publicly and most people are aware of it? Sure, they probably won't. But what if your company uses Intel workstations for development? You're rushing towards a deadline, looking for any way to hit a critical performance requirement, and suddenly "hey look, if I rebuild it with the Intel compiler I get an extra 15%!" You try it out on a few other Intel machines, it looks good, you ship it. Yes, you should really be benchmarking across all sorts of different architectures and manufacturers, but do you really think everyone is that stringent, especially when there is a deadline coming up?