FTC sues Intel

Page 3 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Fox5

Diamond Member
Jan 31, 2005
5,957
7
81
I agree. It looks like lawyers who grew up with computers are finally taking over from the older generation. The FTC compaint is surprisingly up-to-date and well versed in technology, compared to what we've seen anywhere in the past. I wouldn't be surprised if some of them are seasoned AnandTech readers.

Let's see if they're as well-versed in law. I don't think this is completely proven territory that they're treading on.
 

dmens

Platinum Member
Mar 18, 2005
2,271
917
136
The CPU-ID check gives more information than checking the flags. For one knowing the uarch family allows optimizations far beyond simply turning on SSE{1,2,3}. Prefetching and cache line optimizations are important. A good compiler might dynamically disable SMT in certain processors due to replay thrash or tune loops to take advantage of Nehalem's LSD, etc.

That said, isn't the intel compiler an expensive software product designed for high performance computing? I fail to see how a product with negligible usage in the general software market can be anti-competitive. If that niche market is so important, what's stopping AMD from write their own tuned compilers?
 

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
I'm with Cogman in that while I agree with behavior is not going to win any fuzzy-baby-bunny awards I don't see how or why it would be viewed as illegal or anti-competitive.

But I also understand that some business practices are viewed as simply being competitive (albeit asinine) when the market in question does not have any large dominating contenders but those same business practices are viewed as anti-competitive if/when used in a market which does contain a near-monopoly business.

So is this one of those cases? The legal issue here isn't so much what Intel did but rather that it was Intel (an effective monopoly, I beleive I read somewhere that is how it is legally viewed) doing it? And had Intel and AMD been more of equal marketshare competitors then this would simply be viewed as competition doing what competition does?

I suspect it's something like that. When you have one dominant monopolist in a market, you run into this situation:

Company A has 95% market share; company B has 5% market share. A free compiler (e.g. GCC) produces code that crunches 100 thingamajigs per jiffy (TPJ) on both company A's CPUs and company B's products. Company A's compiler produces code that crunches 120 TPJ on their products, and 50 TPJ on Company B's products. Company B's compiler produces code that crunches 120 TPJ on their products and 105 TPJ on Company A's products. The problem is that since the vast majority of a developer's customers will be using Company A's products, the developer will choose Company A's compiler. Company B's products will therefore be artificially crippled in the real world, and they could be forced out of the market. If the initial market share had been 50/50, developer's would have used Company B's compiler (which is clearly better on average), forcing Company A to respond with innovation or price drops.

In this particular case, it was pretty clearly de-optimization of competitors products rather than simple non-optimization (i.e. not worrying about details of instruction scheduling on competitors products). Those who doubt it should look into the history of what Intel did.

I wonder if there are Windows/*nix parallels with MSIE / Netscape. Before the bundling, you could browse the web with Netscape on any operating system and get the same experience. After Microsoft crushed its browser competitors and took 90% of the market, web developers decided to simply ignore visitors using other browsers. As a result, if you weren't using an operating system that ran a recent version of MSIE, your experience on the web was significantly impaired (even FuseTalk used to work better in IE than Firefox). Now that we have competition back in the browser market and developers are ensuring that their sites are compatible with Firefox (and even WebKit browsers like Safari and Chrome), you can choose your operating system without having to worry about a significantly impaired experience on the web. Of course, I'm not denying that Netscape was crap that deserved to die .
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
In this particular case, it was pretty clearly de-optimization of competitors products rather than simple non-optimization (i.e. not worrying about details of instruction scheduling on competitors products). Those who doubt it should look into the history of what Intel did.

This was with the P3 or the P4? I remember circa 1999-2000 that I had to use the PGI compilers to get could (fast) binaries for my Athlon-based cluster.

Poor Andy Grove, only the paranoid survive but for some reason they weren't paranoid enough about the government and the prospects of anti-trust reactions.
 

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
This was with the P3 or the P4? I remember circa 1999-2000 that I had to use the PGI compilers to get could (fast) binaries for my Athlon-based cluster.

Poor Andy Grove, only the paranoid survive but for some reason they weren't paranoid enough about the government and the prospects of anti-trust reactions.

I don't think AMD CPUs in the 1999-2000 timeframe had SSE yet, but I don't remember when Athlon XP was introduced. Looks like 2004ish for discovery of the malicious compiler: http://www.swallowtail.org/naughty-intel.shtml
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
The CPU-ID check gives more information than checking the flags. For one knowing the uarch family allows optimizations far beyond simply turning on SSE{1,2,3}. Prefetching and cache line optimizations are important. A good compiler might dynamically disable SMT in certain processors due to replay thrash or tune loops to take advantage of Nehalem's LSD, etc.

That said, isn't the intel compiler an expensive software product designed for high performance computing? I fail to see how a product with negligible usage in the general software market can be anti-competitive. If that niche market is so important, what's stopping AMD from write their own tuned compilers?
This is the point I've been trying to get across. Intels compiler is no where near being the lead compiler in the industry (and never has been). So how on earth could it be anti-competitive (The compiler aspect of things.)

Schmide, I had a big long response written up, but lost it due to a power failure. I don't really care to retype it, but here is the jist of what I was going to say.

CPUID is an x86 instruction. It is what is used to tell what instructions a CPU supports, processor family, ect. So intel would have been checking the CPUID regardless. There is no SSEy way to tell if a CPU supports SSE, it is all done through CPUID.

The other thing was that Intel doesn't advertise their compiler as a SSE compiler. They advertise it as a high performance compiler for C/C++/fortran/ect.

Finally, what Intel does with their compiler has absolutely no bearing on their license agreement with AMD. Their license trades the ability for AMD to use SSE instructions. That's it, nothing else. Their compiler was not a part of the deal. So saying that the compiler has any relation or bearing on the SSE license is ridiculous. That's I'll I'm willing to say about that. You have to realize that the software and hardware are two completely separate beasts. SSE is a hardware instruction set, not some sort of software innovation.

You might be wise to read up on what SSE actually is before you start spouting off more stuff about intels compiler not writing SSE code. It writes it just fine, it would (in the past) just reroute the IP around the code. Dirty, yes, but in no way was it breaking the SSE instruction set or the x86 instruction set.
 
Last edited:

Fox5

Diamond Member
Jan 31, 2005
5,957
7
81
The CPU-ID check gives more information than checking the flags. For one knowing the uarch family allows optimizations far beyond simply turning on SSE{1,2,3}. Prefetching and cache line optimizations are important. A good compiler might dynamically disable SMT in certain processors due to replay thrash or tune loops to take advantage of Nehalem's LSD, etc.

That said, isn't the intel compiler an expensive software product designed for high performance computing? I fail to see how a product with negligible usage in the general software market can be anti-competitive. If that niche market is so important, what's stopping AMD from write their own tuned compilers?

The compiler isn't that expensive. I think it's even free for non-commercial use. And I'm sure Intel tries its hardest to get people to use it for the various benchmarks out there that companies base purchasing decisions on, they probably even supply benchmarks for AMD and Intel processors using software compiled on their own compiler.

I wouldn't be surprised to see Intel provide the compiler for free to key software vendors (at least it seems they donated it and manpower effort to Folding at home).

BTW, Athlon XP launched in 2001 with SSE. At the time however, AMD was still pushing 3dnow!+. The Athlon w/o 3dnow+ had slightly better performance than the P3 with SSE, with 3dnow it jumped way ahead. (but that's to be expected, the athlon's fpu power was more in line with the p4 than the p3)

The original Athlon did have MMX though, but no one ever really cared about MMX. I'd imagine Intel's compiler doesn't enable that either. I wonder if it was intentional on Intel's part, since when MMX and SSE were new, only Intel processors supported them, so doing a vendor-ID check wasn't uncommon to check for support. Maybe Intel's compiler doing the same was (at least initially) a by-product of bad coding practices.
 

Schmide

Diamond Member
Mar 7, 2002
5,590
724
126
This is the point I've been trying to get across. Intels compiler is no where near being the lead compiler in the industry (and never has been). So how on earth could it be anti-competitive (The compiler aspect of things.)

No one act, object, subsidiary can be considered anti-competitive. You must take the totality of all the acts to determine a coercive monopoly.

Schmide, I had a big long response written up, but lost it due to a power failure. I don't really care to retype it, but here is the jist of what I was going to say.

I was wondering what happened.

CPUID is an x86 instruction. It is what is used to tell what instructions a CPU supports, processor family, ect. So intel would have been checking the CPUID regardless. There is no SSEy way to tell if a CPU supports SSE, it is all done through CPUID.

Well yes and no. There are plenty of flags the determine the capabilities of an x86 processor. If you call cpuid with 0 you get the vendor ID, if you call it with 1 you receive information in 2 registers, eax contains the processor info and ecx contains the feature bits. The latter is where you determine the SSE capabilities, not the former. It would be putting the cart before the horse if you attempted to use an SSE instruction to figure out its own existence.

The other thing was that Intel doesn't advertise their compiler as a SSE compiler. They advertise it as a high performance compiler for C/C++/fortran/ect.

Orly? During the time of the CPUID block shown in the above link the big buzz was vectorization. Almost every talking point about the compiler was about how well it was able to automatically produce these instructions. As I remember it you are wrong.

Finally, what Intel does with their compiler has absolutely no bearing on their license agreement with AMD. Their license trades the ability for AMD to use SSE instructions. That's it, nothing else. Their compiler was not a part of the deal. So saying that the compiler has any relation or bearing on the SSE license is ridiculous. That's I'll I'm willing to say about that. You have to realize that the software and hardware are two completely separate beasts. SSE is a hardware instruction set, not some sort of software innovation.

I would still beg to differ. Sounding like a broken record. AMD's license grants it the right to display it's opcode capabilities to the world and execute all code compatible with it's granted instruction set. Blocking a granted licensee, in my opinion, circumvents the purpose of the license.

You might be wise to read up on what SSE actually is before you start spouting off more stuff about intels compiler not writing SSE code.

WTH makes you think I don't understand SSE? I've coded assembly SSE FFS. Guess what? I check the cpuid 1 ecx register before spouting off about SSE opcodes. Why are you attacking me BTW? I think your ego is getting ahead of your argument.

It writes it just fine, it would (in the past) just reroute the IP around the code. Dirty, yes, but in no way was it breaking the SSE instruction set or the x86 instruction set.

In my opinion, and apparently the opinion of the justice department lawyers, proper production of the opcodes requires the proper checks on the processor before the using of them. While more than likely technically legal, in the context of a coercive monopoly, it becomes a damming piece of the puzzle.
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,278
126
106
No one act, object, subsidiary can be considered anti-competitive. You must take the totality of all the acts to determine a coercive monopoly.
Uh huh... So intel doing price fixing on its own can't be considered anti-competitive...

Well yes and no. There are plenty of flags the determine the capabilities of an x86 processor. If you call cpuid with 0 you get the vendor ID, if you call it with 1 you receive information in 2 registers, eax contains the processor info and ecx contains the feature bits. The latter is where you determine the SSE capabilities, not the former. It would be putting the cart before the horse if you attempted to use an SSE instruction to figure out its own existence.
What do you mean yes and no. You can't determine if a CPU supports SSE (without crashing the program) without using CPUID. There is no other way. That is the only way you find out what instructions the CPU supports.

? During the time of the CPUID block shown in the above link the big buzz was vectorization. Almost every talking point about the compiler was about how well it was able to automatically produce these instructions. As I remember it you are wrong.
Read the link again, this article is in 2008, long after intel took out the CPUID code. The whole thing happened in the early 2000's (2005ish). Not only that, this is an instructional article, not a promotional article.

I would still beg to differ. Sounding like a broken record. AMD's license grants it the right to display it's opcode capabilities to the world and execute all code compatible with it's granted instruction set. Blocking a granted licensee, in my opinion, circumvents the purpose of the license.
They aren't blocking them. They aren't blocking them. They aren't blocking them. How many times do I have to say it before it sinks in? For them to block them, the SSE opcodes would have to literally not function on the AMD CPUs. Guess what, the GCC generates SSE code that runs on AMD cpus, MSVC generates SSE that runs on AMD CPUs, and individual asm programmers have been able to program SSE instructions that run on AMD CPUs. AMDs SSE instructions have worked just fine REGARDLESS of what intel did with their compiler.

Would you claim that if I disable SSE code by hand for AMD processors by hand that I was blocking their granted license? No, it is crazy. Choosing not to run a competitors opcodes doesn't mean that you are stopping their opcodes from working. That is all the license permits, their right to let their opcodes work. Any other right is purely imagined.

This is all a moot point anyways, intel's compiler IS IN A DIFFERENT MARKET. They aren't the leaders in compilers making. I'll say it again. Intel is not the leader of compilers. They lag way behind in that market. Linking the two just doesn't make sense.

WTH makes you think I don't understand SSE? I've coded assembly SSE FFS. Guess what? I check the cpuid 1 ecx register before spouting off about SSE opcodes. Why are you attacking me BTW? I think your ego is getting ahead of your argument.
Mostly because of the stuff you posted about there being an SSE function or flag to determine if SSE is there.

In my opinion, and apparently the opinion of the justice department lawyers, proper production of the opcodes requires the proper checks on the processor before the using of them. While more than likely technically legal, in the context of a coercive monopoly, it becomes a damming piece of the puzzle.
Well, I guess we aren't really going to agree here. The compiler market is different and competitive. If Intel was to keep crippling AMD cpus in their compiler, they would only hurt their ability to sell the intel compiler.

Nothing intel did prevented AMD from using SSE instructions, It may have made it harder for a few to use it, but it definitely didn't make it impossible. I would have a very different opinion if Intel had the lions share of compilers, but they don't and they haven't.

Big picture wise, I think they will get nailed by the FTC, no question. I just don't think that the compiler should be one of the reasons to nail them.
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Interesting op-article on EETimes on the topic:

Comment: FTC's compiler attack on Intel is thin

Now let is try and see what the FTC is saying here.

Is the FTC saying that Intel has a duty to optimize its compiler software not only for its own processors but also for those of its competitors? And if so, which competitors should get the best treatment, because what is optimized for an AMD processor may not be as good for another x86 maker. So Intel would always be guilty of impairing someone's performance, including its own.

That does seem ridiculous. If I was being paid to create a successful processor-compiler combination I would be duty-bound to try and arrange things to my employer's best advantage and to help differentiate our product combination from those of the competition. If that meant organizing the compiler software so that procedures and the data they require flow smoothly on our processors but might incur a delay on a rival's processor, surely that is the nature of competition. Surely that is competitive rather than anticompetitive.


But wait, note the use of the word "secretly" and the phrase "failed to disclose."

It seems that the FTC is not objecting so much to fact that Intel tweaked its compiler as much as the fact that it didn't tell customers or the competition explicitly that the compiler works well with Intel processors but that it may not compile code as efficiently for other makes of processor.

The FTC's case seems to hinge on the fact that Intel said programs performed better on its processors when this was largely down to the impact of the compiler. Intel also took benefit from independent benchmark organizations that made use of the Intel compiler to create performance statistics.

But if benchmark organizations measure your products as performing well, would you choose to suppress the information?
http://www.eetimes.com/news/semi/showArticle.jhtml;?articleID=222002499
 

Schmide

Diamond Member
Mar 7, 2002
5,590
724
126
What do you mean yes and no. You can't determine if a CPU supports SSE (without crashing the program) without using CPUID. There is no other way. That is the only way you find out what instructions the CPU supports.

I don't understand your issue with this? Yes, there is no SSE instruction determining the existence of the set. The flag bit however is part of the SSE set. Every time there is a new set of extensions, they receive their existence bit. The bit is part of the set. You frilling caging your argument with some serious micro semantics.



Fine [URL="http://www.intel.com/intelpress/sum_vmmx.htm"]circa 2005
. Are you seriously saying Intel never touted its SSE compiler vectorization?

They aren't blocking them. They aren't blocking them. They aren't blocking them.

Ha. I guess if you say it over and over the SSE bit fairy will drop the flag bit into the great bit bucket in the sky.

How many times do I have to say it before it sinks in? For them to block them, the SSE opcodes would have to literally not function on the AMD CPUs.

Nope. To block them you just have to prevent the opcodes from reaching the qualified processor. Now how could this be done? I wonder what PROCESS OR IDea would do that?

Guess what, the GCC generates SSE code that runs on AMD cpus, MSVC generates SSE that runs on AMD CPUs, and individual asm programmers have been able to program SSE instructions that run on AMD CPUs. AMDs SSE instructions have worked just fine REGARDLESS of what intel did with their compiler.

Proper checks make proper code. You said it very well.

Would you claim that if I disable SSE code by hand for AMD processors by hand that I was blocking their granted license? No, it is crazy. Choosing not to run a competitors opcodes doesn't mean that you are stopping their opcodes from working. That is all the license permits, their right to let their opcodes work. Any other right is purely imagined.

I would say when you grant a license there is a good faith agreement to support all the standards licensor is providing. You declare opt in, I declare opt out.

This is all a moot point anyways, intel's compiler IS IN A DIFFERENT MARKET. They aren't the leaders in compilers making. I'll say it again. Intel is not the leader of compilers. They lag way behind in that market. Linking the two just doesn't make sense.

Far from a moot point, good luck declaring it moot when it goes to trial.

The market is irrelevant in determining whether or not it was a dirty tactic to gain an artificial advantage over one's competitors.

Mostly because of the stuff you posted about there being an SSE function or flag to determine if SSE is there.

Duh part of the SSE standards are how to determine what instructions are available on the processor. I guess adherence is only a standard when it's convenience.

If the code was valid, the entry point would check the flags and not the CPUID.

I guess I should of used Vendor ID? I wouldn't be the first to refer to the vendor sting as the CPUID.

Well, I guess we aren't really going to agree here. The compiler market is different and competitive. If Intel was to keep crippling AMD cpus in their compiler, they would only hurt their ability to sell the intel compiler.

I agree on the disagree. Since when has Intel been afraid to lose money somewhere to gain advantage elsewhere?

Nothing intel did prevented AMD from using SSE instructions, It may have made it harder for a few to use it, but it definitely didn't make it impossible. I would have a very different opinion if Intel had the lions share of compilers, but they don't and they haven't.

You don't see a bit of inconsistency here? "Nothing" an absolute, "it may have" an inference, "definitely didn't make it impossible" ??? that's a true not not.

Big picture wise, I think they will get nailed by the FTC, no question. I just don't think that the compiler should be one of the reasons to nail them.

As I said late at night. Poorly. When a regulatory agency puts forth a monopoly claim, they rarely focus on any one issue, but the totality of all the actions and how it hurt the industry. The compiler issue is just one cog in the sprocket of the case.
 
Last edited:

jvroig

Platinum Member
Nov 4, 2009
2,394
1
81
It seems even that EETimes op-article author fails to get it. It's not that Intel is duty-bound to optimize for competing processors as well. That's just crazy, and stating it that way is almost like a pro-Intel spin (but it isn't necessarily).

According to several sources already cited here, the optimizations done by Intel for their own processors work just as well for non Intel procs. The branching done (to execute non-optimized-much-slower code) is therefore unnecessary. (When the CPUID is spoofed to appear as Genuine Intel even though you are using a comparable AMD processor. the optimization takes effect, because the AMD processor then performs better than when the CPUID was not spoofed. Hence, unnecessary branching. However, if spoofing the CPUID causes AMD processors to run just as slowly as before, or causes them to crash, then we would have known that the branching was in fact necessary. But it didn't happen that way)

If something unnecessary is done, and it results in a product or products of the competition to perform worse than it should have, then it is easy to be misconstrued as sabotage or anti-competitiveness.

If there is any reason for the FTC to forget about this particular compiler complaint, it is that it has already been resolved. Far as I can tell (somebody please correct me) Intel has stopped this practice already. Perhaps the FTC simply wants to make sure Intel doesn't get the idea to do it again someday. Most likely though, they just gathered all kinds of complaints, all kinds of anti-competitive behavior that was documented that Intel has done (whether now resolved or not) and charge Intel for it.

Intel was bound to get this from the shenanigans they were doing. Even in my country, Intel's practices aren't different from what the EU didn't like, and what the FTC doesn't like either. They strong-arm vendors into accepting their terms of being Intel-only, or give them tremendous incentives to go Intel-only such as bigger discounts and incredible marketing support.

I love their products, but I hate that some of their habits have made it harder for a lot of people, including me, to source AMD products just as easily.
 
Last edited:

sonoran

Member
May 9, 2002
174
0
0
Let's not forget that checking CPUID for non-Intel processors wasn't always 100% successful. If I recall correctly, AMD actually produced some Thunderbird processors that reported having SSE capability, when they did not. An attempt to run SSE code on those processors would cause a system crash. I can't find much info on those chips, but I did find a mention of them here: http://einstein.phys.uwm.edu/forum_thread.php?id=4418&nowrap=true

A quote from that thread:

"there are some older Athlon C (Thunderbird cores - some Mobile Athlons 4 for example) that are, because of their cpu-id, improperly detected as Athlon XP derivates by some CPU-detection routines, although they can't execute SSE instructions. "

I have no idea what went through the compiler developers' minds, but this could have been a reason for writing the code to use SSE only on Intel chips.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |