Forum > Discussion Forum
Interesting F/U on Intel Compiler vs. AMD issue
Raistmer:
--- Quote from: Gizbar on 05 Jan 2010, 10:36:07 am --- have to conform to the standard design/microcode etc. to be compatible, so why shouldn't any program written perform to it's utmost, whatever CPU it's running on?
regards, Gizbar.
--- End quote ---
Cause for current CPUs x86 instruction set is pretty high-level. One can implement same x86 IA very differently. It says nothing about instruction reorder, for example, dividing signle x86 op to many micro-ops and then merging them and so on and so forth. x86 can be implemented differently and still be compatible. And for these different implementations instruction arrangement and choice of instructions themselves does matter a lot.
For example, Athlon x64 supports SSE3. It can perform those instructions. But in so inefficient way that it turned out that SSE2-only build goes faster on this chip.
Gizbar:
--- Quote from: Raistmer on 07 Jan 2010, 05:58:12 am ---
Cause for current CPUs x86 instruction set is pretty high-level. One can implement same x86 IA very differently. It says nothing about instruction reorder, for example, dividing signle x86 op to many micro-ops and then merging them and so on and so forth. x86 can be implemented differently and still be compatible. And for these different implementations instruction arrangement and choice of instructions themselves does matter a lot.
For example, Athlon x64 supports SSE3. It can perform those instructions. But in so inefficient way that it turned out that SSE2-only build goes faster on this chip.
--- End quote ---
I see. Thanks for explaining it to me. Bit long in the tooth to start programming again now, I guess. But I've got time on my hands now, so I might start having a poke around again.
regards, Gizbar
KarVi:
Raistmer:
While its true that SSE3 on A64 chips is slow (not the case on Phenoms), I think it was established that some of the poor performance also lay elsewhere? My A64 runs the special AMD SSE3 version, and while it is modified to use much more SSE2, it still uses SSE3 and _is_ faster than the pure SSE2 version.
That was not the point I was going to make anyhow.
First, these are dificult points to make, and English is not my primary language, so excuse me if it comes out sounding a bit funny :)
My argument is that even though Intel are welcome to make optimizations for their own different architectures, I dont find it OK that they just disable the enhanced instructions on competing CPU's.
It might well be that they would run slower or even produce false results (I doubt this), but that then, should be AMD's/Via's problems.
If the CPU reports a capability, and the compiler supports producing code for it, it should do so to the best of its ability. If that means running P-IV optimized SSE3 code on Athlons/Phenoms, because thats the fastest SSE3 code Intel has, then so be it. Intel should still have the homefield advantage.
But dont disable the enhanced capabilities, or (as Intel has been accused of doing) choose the absolute worst performing code for the given processor. Thats simple cheating.
It has been proven many times that disabling/circumventing the AMD cripling code in ICC, makes the same code run much faster on AMD CPU's, without producing errors.
Its quite easy to understand that AMD processors do badly in benchmarks when the compiler forces the AMD processor to run MMX/SSE and the Intel CPU runs SSE3/SSE4.x
And as some benchmarks are compiled with Intel's compiler, this is in fact what is happening in todays world. And probably not only in benchmarks, but in many other programs such as video encoders and so on.
I understand that there are many complexities to designing a compiler, most of them beyond my comprehension, but still I think the picture of Intel using its dominance to play unfairly, is clear.
Are they in their good rights to do so?
I don't think so. If you produce a standard (SSE1,2,3), and others follow/use it legally, you should produce code that uses the standard, regardless of the name of the processor.
Raistmer:
Hey, I said nothing about Intel compiler and how it cheating or not, I just answered Gizbar's question while optimized for one CPU app can perform worser on another, that's all :)
Surely I agree that Intel shouldn't disable optimizations just because app intended to run on non-Intel CPU.
And indeed AthlonsXP beat P-IV :) Unfortunately I don't see it with newer CPUs but will be happy if AMD will provide something new and fast :)
The big problem with AMD - it smaller than Intel. It has small support team, it has no own optimizing compiler to compete with Intel's one... Will keep silence about soft for ATI GPUs, it's just pain in the a*s ;)
KarVi:
Ok.
Actually it was mostly my first part of the reply, that was pointed at your comments that SSE3 was slower than SSE2 on A64. I don't think thats quite true, its faster but not as much faster as Intels implementation was to their earlier generations.
I think AMD beat intel with both Athlon, AthlonXP, Athlon64, Athlon64X2. When Core2 came out the picture changed completely, but until then AMD was faster at most things, and Intel had to rely on dirty tricks to stay competitive. Compiler cheating was one of them.
AMD is in a hard situation. As you say they are much smaller, have much less resources, and is up against a competitor that mostly just want them out of the way.
I think if AMD had been allowed to make the money they _could_ have on their previous excellent generations of hardware, without Intel doing anything, even bullying PC builders, to not let them gain momentum, we would be looking at a different AMD today, and a much different market for processors.
But Intel played dirty, and mostly got away with it, and are therefore much more dominant today, than they should have been (IMHO).
AMD is also not without blame. It can be argued that todays Phenoms are basically much tweaked Athlons. They have had several complete failures in designing their next generation, and I think the management inside AMD, has a lot to answer for, regarding their current situation.
But in a fair world AMD _should_ have been rewarded much more for the excellent processors they brought to market, while Intel was experimenting with Netburst.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version