daysleeper83
Enthusiast
- Mitglied seit
- 26.06.2007
- Beiträge
- 1.416
Noch ein Beispiel
http://www.agner.org/optimize/optimizing_cpp.pdf Seite 115
Besonders interessant ist Seite 119
http://www.agner.org/optimize/optimizing_cpp.pdf Seite 115
Besonders interessant ist Seite 119
Unfortunately, the CPU detection mechanism in Intel compilers has several flaws:
• The best possible version of the code is chosen only when running on an Intel
processor. The CPU dispatcher checks whether the processor is an Intel before it
checks which instruction set it supports. An inferior version of the code is selected if
the processor is not an Intel, even if the processor is compatible with a better version
of the code. This can lead to a dramatic degradation of performance on AMD
processors.
• Explicit CPU dispatching works only with Intel processors. A non-Intel processor
makes the dispatcher signal an error simply by performing an illegal operation that
crashes the program.
• The CPU dispatcher does not check if XMM registers are supported by the operating
system.
I have had a long correspondence with Intel about this. They tried to explain away the fact
that performance is crippled on non-Intel processors until I had provided piles of evidence to
prove my point. Yet, they refused to change the way their CPU dispatcher works.
I just wonder how many benchmark tests have been made comparing Intel and AMD CPUs
on software that - unbeknownst to the tester - was build with an Intel compiler. Some
published benchmarks have evidently been based on the Intel compiler.
Zuletzt bearbeitet: