News of the FTC case and Intel compilers
Written by Marc Prieur
Published on January 4, 2010
The FTC’s proceedings against Intel in December were important for a number of reasons. Among them, the part concerning compilers is the least known by the general public.
In addition to processors, Intel also sells a range of compilers. They have a reputation for high performance and are also generally faster with Intel processors, so much so that they're sometimes preferred to compilers from third parties (Gnu, Microsoft) by those who prioritise rapidity above all else.
Like all other compilers, the Intel ones offer various compilation options. You can therefore target specific levels of instruction (LA32, SSE, SSE2, SSE3, etc.) but a more elegant option allows you to generate executables that integrate different code that is executed according to the processor’s features.
And here lies the rub. With this option on the Intel compilers, the executable will first check to see if the processor is an Intel one before executing the optimal code for the features of that particular processor. When it isn't an Intel processor, the default code is used whatever the instruction set supported by the CPU!
Today the default code is SSE/SSE2 code, but a few years ago it was non-vector code (pure x86) that was therefore executed on the Athlon 64s! The current situation is less problematic than it was in the past then but still, a programme compiled with this option won’t, for example, execute SSE3 code on a Phenom II.
Of course, there are alternatives, the first of course being not to use Intel compilers. Where this isn’t possible, you can compile your exectuable in several versions and have a programme that launches the right version upstream. Better still, you can replace the Intel CPU with another that works whatever the CPU manufacturer (page 125 onwards of this document) !
As part of its enquiry into Intel’s practices, the FTC, alerted to the issue, has come out against Intel compilers as uncompetitive behaviour, qualifying the compiler itself as defective ("defective compiler", page 21 of this document). As a result it has requested that Intel put a compiler from which this code is excluded at the disposition of developers and take responsibility for any recompilation of programmes compiled with the “defective” versions.
Of course, if the FTC’s request was seen through, it wouldn’t transform an Athlon II into a Core i7, but in terms of programmes compiled with Intel software, there could be a gain on rival CPUs, which is still a bonus.
Copyright © 1997-2013 BeHardware. All rights reserved..