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
How many in this picture?
Remember, Feng's slides saying "core replication obvious." The defense has the uphill battle here, not the plaintiff. The pictures above make the plaintiff's case as plain as day. Honestly, AMD is better off settling out of court.
Right A/B and left G/H = L1i/BP/Fetch/Decode
Below A/B and G/H = Cache unit and L2
Left A/B and right G/H = Floating point unit
Inside A/B/G/H = Scheduler/Integer Units/Load-store/registers/etc <== Actual core
Eight actual cores.
Let's throw something not x86 into the mix. Here's an Exynos Octa (big-LITTLE design):
Like Sandy Bridge-EP, the cores are obvious.
The design from Core(Chip) Multiprocessing(CMP) to Cluster-based(Chip) Multi-threading(CMT) needs to be displayed.
A CMP module will always have a single core.
A CMT module within the same space as a CMP module will always have 1+x cores.
ieeexplore.ieee.org/document/5746227/authors#authors
None of the citations appear relevant to the court case.
TL;DR: the jury would have to take AMD's word for it.
Look at it this way:
Vishera|1.2|4m/8t|AnandTech
Sandy Bridge|1.16|4c/8t|AnandTech
Ivy Bridgee|1.4|4c/8t|AnandTech
Sandy Bridge-EP|2.27|8c/16t|Overclock
One of these things is not like the other...
You can see performance numbers on the AnandTech link. Hint: i7-3770K 3.5 GHz almost always wins against FX-8350 4.0 GHz and often by a long mile. Why is that? Because Intel beats the hell out of their dual-threaded cores where AMD divided and conquered in their dual-threaded cores. When Intel is faced with only a single thread, it pulls out all of the stops to get it done. AMD can't. Even when you async like a boss, AMD's shared nature comes back to haunt it often doing 10-50% worse than it should. Can't win single, can't win dual, can't win in terms of transistor count either (whole reason why AMD pursued it). Zen and Bulldozer proves "conjoined cores" were a bad idea. Isolating hardware resources from threads that could use it makes little sense.
Cores are independent processors. They don't share anything--they communicate via memory subsystems. Each processor pulls the data it needs, executes it, and pushes it back. At no point does one core interfere with another (unless there's some kind of intentional memory lock to prohibit thread cross references). 7zip compression proves Bulldozer "cores" are not independent.