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
But from the fact that there is still scaling to be gained even for floating point throughput by enabling both cores within the modules suggests there is more to it than just disabling the ALU. Clearly the fetch/decode/FPU are affected as well when disabling one core per module.
Increased throughput in this case - including the floating point throughput in some cases - has not that much to do with cores. It is related to available compute pipelines as well as managing the work.
Fetch/Decode/FPU are affected positively when one Integer Cluster is disabled. They have to do less work. Especially with OS then not pushing 2 threads worth of work into the module :)
Calling a module a single core because of how the FP unit works would be akin to having two 3" paint brushes and calling them a single 6" brush because you *can* hold them together to paint a thicker line.
FPU really is not a reason why module would be a single core. FPU has not always been a part of CPUs and that includes fairly recent stuff for example ARMv6 or v7.
Also, juries are always randomly selected and screened for conflicts of interest. They're always supposed to be neutral and representative of the district's population. The fact that AMD never produced a diagram of a "single core" of Bulldozer is evidence that closest similarity to a "single core" in other designs is, in fact, what AMD calls a module. Module is the smallest, complete processor (what a core is) Bulldozer has.
the case is
"normal members of the public were sold "cores" which weren't the same as a traditional core. But amd says that normal members of the public would have known the difference"
Who better to have than normal members of the public if the argument is the public should know the difference.
That said... the FX 8150 and line can do 8x 128-bit FPU operations or can combine and do 4x 256-bit.
A poorly architected design does not change the core count no matter how much you want to argue over it.
Being able to turn cores off in pairs or as singles does not change the core count... there was a time where there was no power gating, all on or all off, were they no longer cores then?
Plain and simple frivolous lawsuit. The performance sucked, they overhyped it, the only argument they have IS performance of those 8 cores was not better than 4 quick cores and that is a bogus argument.
AMD says people should have understood it wasn't 8 fully independent cores even though they didn't label it as such.
The law suit says amd should have labeled it properly and not doing so was deliberate.
----------------
P.s
I dont think you could possibly arrive where we are today if they did have 8 real cores.
and you may want to bring up infinity fabric and how things are glued together as a Scandal that just isnt anything.. But the thing with that is.. that genuinly isnt an issue and will never end up in a thread like this 4-5 years down the road.
core == processor
integer core != core (rather integer core is a component of a core) AMD used two phrases in describing what Bulldozer was that were not deceptive: module and integer core. They elected not to use these phrases instead, went the deceptive, untruthful one: core. Outside of the context of Bulldozer, references to a "core" as an "integer core" are virtually nonexistent. Since the debut of the multicore CPU, cores meant individual processors sharing the same socket.
Evidence is found in how Bulldozer was designed differently. A core in any other CPU is effectively an independent processor. By the same logic, AMD's module has more similarities with a core than AMD's integer cores do. Evidence, therefore, strongly suggests untruthfulness here too.
There are 8 int and 8 128bit FPU compute units. Those are the facts. How the cpu is composed modularly does not change the fact that there are in fact 8 cores.
Zen is composed of 4 core modules. That doesn't mean that a 2700x has 2 cores it has 8.
Its a matter of what the general accepted definition of a core was at the time.
AMD even in the evidence provided from other users here admit that the bulldozers did not use a conventional core.
the law suit basically says
People bought bulldozers thinking they were getting 8 conventional cores.
amd Deliberately neglected to state that they were not the cores that you were probably expecting.
People should be compensated.
you are welcome to try and say amd adequatly explained the cores in bulldozers were not the same as those in other multi core processors of the time.
But then you have to remember you are talking to other people who Also knew from the start what they were.
The people who were "allegedly" ripped off are the people who just saw a box saying "8cores" and bought it not knowing anything about it other than more cores = more better.
Now i can argue back and forth as to why i don't call them cores, but that does not matter, just as you can argue back and forth why you think they are cores.
the only thing that matters is people expected product A and received product B, and Product B was not adequately advertised to state that it was not the same as product A.
And this (Thuban):
Thuban -> core
Excavator -> core but let's call it a module and slap it next to a...
Zen -> core ...because they're basically one in the same, right?
This slide should be exhibit A for the plaintiff (look at that title even :laugh:):
2 integer cores != 2 cores
If you put Excavator cores or Zen cores in the Thuban diagram, you end up with six of them either way and both can handle 12 threads. The *only* difference is that Excavator has extra ALUs and a decoder to accelerate the second thread.
AVX support is irrelevant, even current cpu's have unequal avx support even throughout intel's server linup.
Even assuming FPU support is now expected as part of a cpu core. A bulldozer 8 core cpu can do 8 int or 8 independent fpu calculations at the same time.
AMD said we tried something different, we tried to make a more efficient cpu to give you 8 real cores instead of 4 cores and 4 hyperthreads.
They in fact did what they said.
Lets look at this again since you all clearly missed it.
Look at that sandybridge with Hyperthreading for a grand 4x speadup. 4cores 8 threads for 4x performance.
990x 6 cores 12 threads for 6x performance. (also 1k)
AMD 8 cores 8 threads for a little over 6x improvement.
Is their scaling bad? IPC worse? absolutely.
But did they deliver what they promised? Absolutely.
BTW this is a FPU benchmark. That is not 4 FPU cores quite clearly it is 8 poorly scaling ones.
Also for those clearly not understanding CPU core architecture history and WHY FPU does not a core make...
Here is Thuban... what's that, only 1 128-bit fpu? So is it also not a core?