Wednesday, January 23rd 2019
Bulldozer Core-Count Debate Comes Back to Haunt AMD
AMD in 2012 launched the FX-8150, the "world's first 8-core desktop processor," or so it says on the literal tin. AMD achieved its core-count of 8 with an unconventional CPU core design. Its 8 cores are arranged in four sets of two cores each, called "modules." Each core has its own independent integer unit and L1 data cache, while the two cores share a majority of their components - the core's front-end, a branch-predictor, a 64 KB L1 code cache, a 2 MB L2 cache, but most importantly, an FPU. There was much debate across tech forums on what constitutes a CPU core.
Multiprocessor-aware operating systems had to be tweaked on how to properly address a "Bulldozer" processor. Their schedulers would initially treat "Bulldozer" cores as fully independent (as conventional logic would dictate), until AMD noticed multi-threaded application performance bottlenecks. Eventually, Windows and various *nix kernels received updates to their schedulers to treat each module as a core, and each core as an SMT unit (a logical processor). The FX-8350 is a 4-core/8-thread processor in the eyes of Windows 10, for example. These updates improved the processors' performance but not before consumers started noticing that their operating systems weren't reporting the correct core-count. In 2015, a class-action lawsuit was filed against AMD for false marketing of FX-series processors. The wheels of that lawsuit are finally moving, after a 12-member Jury is set up to examine what constitutes a CPU core, and whether an AMD FX-8000 or FX-9000 series processor can qualify as an 8-core chip.US District Judge Haywood Gilliam of the District Court for the Northern District of California rejected AMD's claim that "a significant majority of" consumers understood what constitutes a CPU core, and that they had a fair idea of what they were buying when they bought AMD FX processors. AMD has two main options before it. The company can reach an agreement with the plaintiffs that could cost the company millions of Dollars in compensation; or fight it out in the Jury trial, by trying to prove to 12 members of the public (not necessarily from an IT background) what constitutes a CPU core and why "Bulldozer" qualifies as an 8-core silicon.
The plaintiffs and defendants each have a key technical argument. The plaintiffs could point out operating systems treating 8-core "Bulldozer" parts as 4-core/8-thread (i.e. each module as a core and each "core" as a logical processor); while the AMD could run multi-threaded floating-point benchmark tests to prove that a module cannot be simplified to the definition of a core. AMD's 2017 release of the "Zen" architecture sees a return to the conventional definition of a core, with each "Zen" core being as independent as an Intel "Skylake" core. We will keep an eye on this case.
Source:
The Register
Multiprocessor-aware operating systems had to be tweaked on how to properly address a "Bulldozer" processor. Their schedulers would initially treat "Bulldozer" cores as fully independent (as conventional logic would dictate), until AMD noticed multi-threaded application performance bottlenecks. Eventually, Windows and various *nix kernels received updates to their schedulers to treat each module as a core, and each core as an SMT unit (a logical processor). The FX-8350 is a 4-core/8-thread processor in the eyes of Windows 10, for example. These updates improved the processors' performance but not before consumers started noticing that their operating systems weren't reporting the correct core-count. In 2015, a class-action lawsuit was filed against AMD for false marketing of FX-series processors. The wheels of that lawsuit are finally moving, after a 12-member Jury is set up to examine what constitutes a CPU core, and whether an AMD FX-8000 or FX-9000 series processor can qualify as an 8-core chip.US District Judge Haywood Gilliam of the District Court for the Northern District of California rejected AMD's claim that "a significant majority of" consumers understood what constitutes a CPU core, and that they had a fair idea of what they were buying when they bought AMD FX processors. AMD has two main options before it. The company can reach an agreement with the plaintiffs that could cost the company millions of Dollars in compensation; or fight it out in the Jury trial, by trying to prove to 12 members of the public (not necessarily from an IT background) what constitutes a CPU core and why "Bulldozer" qualifies as an 8-core silicon.
The plaintiffs and defendants each have a key technical argument. The plaintiffs could point out operating systems treating 8-core "Bulldozer" parts as 4-core/8-thread (i.e. each module as a core and each "core" as a logical processor); while the AMD could run multi-threaded floating-point benchmark tests to prove that a module cannot be simplified to the definition of a core. AMD's 2017 release of the "Zen" architecture sees a return to the conventional definition of a core, with each "Zen" core being as independent as an Intel "Skylake" core. We will keep an eye on this case.
369 Comments on Bulldozer Core-Count Debate Comes Back to Haunt AMD
:toast:
I think they may have a case in that early processors didn't even have an FPU, and were still processors. So it is technically an eight core integer CPU, and a four core floating point CPU. So you technically have eight cores that could run at once. It will depend on how much a modern processor design matters, as AMD didn't include any caveats in their marketing for the FX series to indicate that it wasn't always going to run 8 threads simultaneously. And in my personal opinion it was not correct to call them 8 core processors. They should have just called them 4 module processors, or made clear it was 8 integer cores and would perform at half speed for FP math. I wouldn't be surprised if AMD loses. I don't consider them 8 core processors since they aren't 8 core all the time.
Maybe the most damning thing is that AMD now sells 8 core processors that actually do have the FPU and IU per core, and 4 core processors with SMT that are 4 core/8 thread. In a way, that's admitting that the FX core terminology was a load of shit the whole time.
I am in complete agreement that they should have called them 4 module processors. The public would have to learn and understand what module meant but module versus core is a very important distinction AMD choose not to make.
See any of my old posts about the issue.
The public understand "core" as independent processors. That's not the case with AMD modules.
There were enough components to make 4 cores, and there were extra bits that worked at the same time.. Not all operations could work at the same time though.
If you ever tried to pull a bulldozer apart and make 8 individual cores, you would only be able to make 4 and have a bunch of left over parts.
to me that always was, and always will be why i cannot and could never call them 8 core.
and the worst thing is. AMD were the ones to try and specify what a "core" was when intel released the pentium D. Then they totally decided they didnt want to use that definition any more, and not only did they not want to use their definition they dint want to use any logical definition either.
i always called them modules. I just couldn't call them cores.
there were many a debate on these and other forums. and i genuinely didn't and still don't understand how any one can say they have 8 cores.
but i decided years ago it was better to just agree to disagree.
but in terms of a law case.
I think the most damning thing for amd is that they genuinely defined what they thought a core was when intel released the pentium d chips.
And because they did that, they honestly cant expect to win a court case where they say People should define it as something diferent to what they them selfs defined them to be.
1. A Control Bus/Control Logic.
2. An Instruction Bus.
3. An Address/Data Bus which is usually connected to a Load/Store Unit.
4. A datapath, this the ALU/AGU.
The Bulldozer module has;
2 Retire Queues -> Instruction Bus.
2 Schedulers(etc componentry) -> Control Logic.
2 clusters of 2 ALU/2 AGLUs -> Superscalar datapath
2 Address/Data buses which interconnect to a Load/Store unit. -> Address/Data Bus
Thus,
2 Cores.
The Bulldozer module by industrial and educational definition is two real/processing/physical cores.
Front-end of the module <-- not part of the core.
FPU in the module <-- not part of the core.
Shared L2 cache unit in the module <-- not part of the core.
The cores in the Bulldozer module are as independent as any fully replicated microprocessor.
"Multi core CPUs have an FPU per core "
like i said best to just agree to disagree..
Do I have no cores?
or do I have one core?
Now, if I bought an x86 processor with two-cores. Then, also have the FPU co-processor removed.
Do I have no cores?
or do I have two cores?
Then, I bought a 128-core soft processor. Only the first 16-cores have FPUs.
Do I only have 16-cores?
or do I have 128-cores?
its not a matter of how you want to describe it.. as stated above earlier its about conventional naming.
i could have a house and not have a roof. sure i can call it a house and, but unless i stated that it had no roof when i sold you the thing.. guess what you could sue me.
It wasn't till much later, that a CPU package would have both the integer scheduler as well as the FPU as part of the same package, let alone same die.
The Bulldozer architecture was well, objectively terrible, but what software has to do to interact with it has nothing to do with what is or isn't a core.
A core can be simplified to how many integer units something has, FPU's are separate in x86 world. Given this, its an 8 core CPU. it just happens to have only 4 FPU co processors rather than 8 like other designs.
Ryzen goes back to pairing one for one because that is what found worked better, but there is nothing to say it has to be that way. It just is.
No one is saying Bulldozer doesn't have 8 "integer cores," because it does, but it only has 4 "cores" (independent processors).
The only analog to Bulldozer's design, really, is UltraSPARC T1 which has 8 execution cores and a separate floating point core.
The vital distinction is that those 8 execution cores share absolutely nothing with each other other than floating point instructions being outsourced.
Bulldozer and sons share much more than that.
In fact, each iteration of the design, AMD split more and more functions to improve performance. Gee, I wonder why? Maybe sharing so much stuff wasn't such a great idea after all? No, it's AMD saying Bulldozer has "8 cores" and that declaration is misleading to the public. It's not that simple, and people that bought these processors are saying they were damaged because AMD mislead consumers into believing they got more than they did.
Again, performance is largely moot. This is about definitions.
Judging from the OP, the court has ruled in favor of the plaintiffs and against AMD; therefore, "modules" are "cores;" "integer cores" are not "cores." Only way that changes at this point is if AMD challenges the decision, which they really shouldn't because the disconnect between engineering ("integer core") and marketing ("core") is damning for them. False advertising could rope FTC into the lawsuit.
the ones who think its 8 cores will find a way to say it's 8. the ones of us who dont think its 8 cores just have to repeat the same things for years on end and never get any where..
agree to dissagree is the only way forward here.
p.s
you dont need a fpu for a cpu to work so i do get the argument.
I also think windows scheduling made them worse than they should be.. (it wouldnt move fpu calculations to a module that was not doing fpu calculations.) But thats not windows fault either. the cpu told it it had 8 cores, so windows sent a fpu calculation to core 1 and a diferent task to core 2, and whammo botle neck. had to wait for the fpu to finish 1st.
you can blame windows for it if you want but if windows had moved fpus to indepenant modules rather than "cores" you still end up in the situation of If you have 4 simultnious fpu calculations and 4 other tasks. You effectivly only have 4 cores able to do any processing because they are all tied up with fpu calcs, and nothing else can be done till they are finished.
And thats just 1 issue.
so even understanding the argument and only focusing on fpu's i still end up with only 4 processes able to run at 1ce.
Does each GPU "core" have a fetch? (this is me asking on that one I have not looked that hard into the design). If they do not does both AMD and nvidia need to pay out for misrepresenting the thousands of "cores" they claim a GPU has?
Right now AMD is betting on the original core design was one integer core was a core. FPU came later on, if anyone makes the argument for that then Intel and Motorola produced tons of processors that had zero cores.
its like saying If all cars have to have 4 wheels, what about mtorcycles?? are they not motorized vehicles now??
p.s
i know bad annalogy but what the hell. i already used up more thinking time than i should on this discussion.
For what it’s worth, this isn’t new. The i486SX was a i486DX with the FPU disabled, and there was such a confusing thing as a Core 2 Solo. Either way, this lawsuit is pretty late to the party!