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
Mask 55: 4 threads on 4 modules, no resource sharing
Mask 0f: 4 threads on 2 modules, with resource sharing
www.techpowerup.com/forums/threads/bulldozer-core-count-debate-comes-back-to-haunt-amd.251758/page-10#post-3981565
7-Zip on FX-8350 behaves like 5.6 cores, not 8. Independent 8 cores come in at 8. Independent quad cores come in at 4. Independent dual cores come in at 2.
Look at 7-zip code. It uses very, very little FPU operations. It uses lots and lots and lots of ALU/memory operations, so many that the shared fetcher gets bogged down. There's other benchmarks that show a similar bottleneck. Exactly. Bulldozer sucks if it doesn't get a mixed workload. The scheduler is inadequate to handle two threads in real time.
The problem was that AMD was right, the way forward was several core. But they were not market leaders
Intel was not interested in selling cheap multiple core systems. And the software manufacturers did not change their software either, so it supported and used multiple cores.
Ryzen also have the same problems with windows at the beginning, where software could not figure out how to use the processor correctly.
- But the solution of Ryzen problems has make the Bulldozer a better cpu too.
Second time, with Ryzen going better, AMD corrected the mistakes they made in their first series of many cores (Bulldozer)
Most importantly, software manufacturers here also play game manufacturers.
Have start using them, maybe because they are now also available in Playstation and Xbox
Today, where the software supports multiple CPUs, the old Bulldozer actually better than 6 years ago. So It's not that bad.
So AMD is right. More CPUs were the future They just made some mistakes, with poor choice in design, and the market was not ready.
From technical perspective, AMD really had 2 objections - two threads in a module would share L2 that could prove a speed boost (this was fairly well debunked by some site, I think it was TechReport) and AMD's power management should be able to boost higher if only one module is used (which was true but that did not help enough for performance).
Edit:
I think this was the relevant Tech Report article:
techreport.com/review/21865/a-quick-look-at-bulldozer-thread-scheduling
There is no right way to do it. The same argument can be had for simple multi core processors where you'd want dependent threads to be scheduled onto the same core so they can share the same L1/L2 cache. But when do you stop so that it doesn't hurt performance ? Same thing, nothing out of the ordinary here. As astonishing as it may seem all processors share resources on a certain level and face the same types of limitations.
What else would there be to fix?
There you go : www.eecis.udel.edu/~cavazos/cisc879-spring2008/papers/conjoining_micro04.pdf
I doubt the court is even interested in getting technical.
The only difference is the separate Integer Core assigned to each thread. This results in 70-80% boost from using both threads in a module as opposed to 30% from Intel's HT (which is textbook SMT). This does not play a part in operating system scheduling. Bulldozer module has single frontend, architectural features like Integer Cores and separate schedulers do not play a part for what operating system and its scheduler can do.
www.theregister.co.uk/2019/08/27/amd_chip_compensation/
Firstly, it's meritless — at the very least — due to the language of the claim.
Secondly, it only applies to purchases made in California, which is utterly arbitrary.
Thirdly, it only arbitrarily applies to a subset of the consumer-grade 8 core FX chips.
According to this article.
This case does put anyone on notice about trying to redefine what a "core" is. Bulldozer had two "integer cores" per "core" and this misrepresentation in advertising lead consumers to believe they got more than they really did.
Everything went skin deep as expected, this ended up having almost nothing to do with AMD's definition of a core and more to do with the complaints of some consumers not getting the performance they expected.
There was simply no way the plaintiffs could come up with a coherent argument against AMD's choice of architecture that would have affected all CPUs.
AMD did well to settle with this garbage.
But given AMD went back to using real cores now have decent cpu's again and this law suit is now settled..
Maybe we can get back to having AMD vs Intel And both being Really viable choices.
If nothing else comes of this we can see that even bulldozer didn't manage to take AMD down, and now they are back in the game.
Given how fast people forgot all the Good cpu's AMD made before bulldozer. lets hope people forget about the terrible cpu's they made in an equally timely manner.