Friday, November 6th 2015
AMD Dragged to Court over Core Count on "Bulldozer"
This had to happen eventually. AMD has been dragged to court over misrepresentation of its CPU core count in its "Bulldozer" architecture. Tony Dickey, representing himself in the U.S. District Court for the Northern District of California, accused AMD of falsely advertising the core count in its latest CPUs, and contended that because of they way they're physically structured, AMD's 8-core "Bulldozer" chips really only have four cores.
The lawsuit alleges that Bulldozer processors were designed by stripping away components from two cores and combining what was left to make a single "module." In doing so, however, the cores no longer work independently. Due to this, AMD Bulldozer cannot perform eight instructions simultaneously and independently as claimed, or the way a true 8-core CPU would. Dickey is suing for damages, including statutory and punitive damages, litigation expenses, pre- and post-judgment interest, as well as other injunctive and declaratory relief as is deemed reasonable.
Source:
LegalNewsOnline
The lawsuit alleges that Bulldozer processors were designed by stripping away components from two cores and combining what was left to make a single "module." In doing so, however, the cores no longer work independently. Due to this, AMD Bulldozer cannot perform eight instructions simultaneously and independently as claimed, or the way a true 8-core CPU would. Dickey is suing for damages, including statutory and punitive damages, litigation expenses, pre- and post-judgment interest, as well as other injunctive and declaratory relief as is deemed reasonable.
511 Comments on AMD Dragged to Court over Core Count on "Bulldozer"
When substracting CPU resources such as shared caches, HyperTransport, DMI, and so on, the number of transistors scales linearly the more cores are added:
One Core = ~100%
Two Core = ~200%
Four Core = ~400%
Six Core = ~600%
Eight Core = ~800% and so on
This is the way cores are understood by the public and generally considered by the industry.
AMD on the other hand:
Bulldozer One "Core": 88%
Bulldozer One "Module" = 100% (marketed as "2-core")
Bulldozer Two "Core": 176%
Bulldozer Two "Module = 200% (marketed as "4-core")
Bulldozer Three "Core": 264%
Bulldozer Three "Module" = 300% (marketed as "6-core")
Bulldozer Four "Core" = 352%
Bulldozer Four "Module" = 400% (marketed as "8-core")
They're cooking the books to make their processors look more attractive on computer spec sheets ("Why buy an Intel quad-core when you can buy an AMD 8-core for substantially less? More is better, right?"). It doesn't make it true nor accurate. Compare the two lists above. How is that not misleading? I'd argue it goes beyond misleading: it is false advertising.
AMD does not claim "8 integer execution units," "8 integer clusters," nor "8 integer cores" (all are true), they claim "8-core" (false).
Your definition of a "core" applies more to GPUs than CPUs (NVIDIA calls them CUDA "cores" where AMD calls them stream processors). Then again, CPUs are not highly parallel by nature (because logic) where GPUs are.
* Except Bulldozer and derivatives.
Go to bed, Ford. Your drunk.
searchdatacenter.techtarget.com/definition/multi-core-processor Not execution units. Not integer cores. Not integer clusters. "Processors!"
How about another?
techterms.com/definition/multi-core "Processors!"
Or another?
www.techopedia.com/definition/5305/multicore "Processors!" and "CPUs!"
Not enough yet? Have another!
www.pcmag.com/encyclopedia/term/55926/multicore ...okay, that one is just worded badly but..."CPUs!"
Here's a scholarly paper and they have a block diagram showing dual core with separate fetch/decode for each discreet core on page 27:
www.cs.cmu.edu/~fp/courses/15213-s07/lectures/27-multicore.pdf
"Core" is consistently used to describe what could be considered a separate processor (having up to a private or shared L2).
You'll have to be satisfied with that because I'm not quoting more.
Generally speaking, each core starts with prefetch (or "front end") and the core ends just before the L2 cache if the L2 cache is shared or just below the L2 cache if the L2 cache is private. This unit is effectively a stand-alone processor only missing some communication parts (e.g. RAM and chipset).
Once again, your sources say nothing about where control logic lives, which is the CPU not the core.
Von Neumann disagrees with you:web.archive.org/web/20130314123032/http://qss.stanford.edu/~godfrey/vonNeumann/vnedvac.pdf
In other words, control logic is a separate entity than what carries out the operations themselves... but you know, I clearly don't know anything on the matter. :shadedshu:
I'll play your game though: a dual-core processor has two "devices" by Von Neumann's definition. There are two "central controls" and at least one "organ" under each "central control" (usually integer and floating point execution units).
I tried finding some more recent news on the class action suit and turned this up:
wccftech.com/amd-class-action-lawsuit-bulldozer-processor-core-count/ That's a pretty weak defense because Hyper-Threading Technology does the same. Additionally, the threads do not run concurrently through prefetch (true of Bulldozer, Piledriver, Steamroller, & Excavator) and decoding (true of Bulldozer & Piledriver) so, as with all cases of SMT, that statement is only true some of the time.
pacermonitor.com/public/case/9674725/Dickey_v_Advanced_Micro_Devices,_Inc
It appears AMD motioned to dismiss the case. The hearing is scheduled for 2/26/2016.
It's not a weak defense because FX CPUs do actually execute concurrently as opposed to simultaneously and I'm sure come the hearing AMD will bring in some engineers to explain exactly why that's the case. Hyper-threading does not because the dedicated hardware to do it simply isn't there.
Now, there are SMT systems that are a little more complex and do have extra dedicated hardware like some of the latest SPARC CPUs in order to run 8 threads per core but, it's a very different animal than Intel's HT or AMD's FX modules.
Simply put, back to the initial argument, control logic is part of the CPU, not the core. A core (or execution unit,) alone without the CPU doesn't mean diddly squat because there wouldn't be anything to drive it. There is absolutely no requirement that says that control logic has to be dedicated for every core. This is true for x86, this is true for GPUs, this is true for SPARC. It's true for just about every microprocessor in the world but, just because there are several cases where it is dedicated, you seem to think you can derive the truth from observation which is simply a joke.
Simultaneous is synonymous with concurrent.
SMT is a grayscale, not black and white. On the black end, you have technologies like HTT where there's very little extra transistors to make it work; on the white end (but not including) you have a second discreet processor. I'd argue that Bulldozer is as close to white as currently exists while HTT is very close to black. SPARC is in between the two. SPARCs SMT design is actually very similar to HTT but where HTT assumes cache misses will be rare (thanks to huge caches), SPARC assumes they'll be common. SPARC fills in the gaps from cache misses by working on other threads.
In your definition of "core" does it only include integers or does it also include the floating point units? Additionally, what do you call the unit of hardware which encompasses prefetch, decode(rs), execution unit(s), and may or may not include L2 shared cache? Now when you take that unit of hardware and place them together two form four discreet hardware units one die, what do you call them? And I'm talking all x86; not just Bulldozer and derivatives.
I would answer as: CPU (or processor) contains one or more cores constituting of one prefetcher and one or more decoders and execution units.
If number of cores is the issue, then why is no one making fuss about shaders on graphic cards? AMD has tons more of them compared to NVIDIA and yet no one makes any fuss about it. They aren't of same performance either. They just are. AMD can call it 2000 core CPU if they design it in such a way. In the end, in either case you need becnhmarks to assess performance. Because even quad core to quad core comparison NEVER yields the same results, especially not from different company.
So, why all this fuss?
Bulldozer underperformed Thuban (Phenom II) in most cases.
Using that logic, Bulldozer should be almost twice as fast because there are two "cores" per core. But no! You need a separate thread to access those! Even when you compare 8 threads (making it a fairer comparison), Thuban is still competitive likely because the decoder got overwhelmed. This is why they added a second decoder in Steamroller and Excavator. Thuban can't keep pace with Steamroller and Excavator but it isn't clear if that is because of the process advantage or because the decoder really made that big of a difference. Even so, it's moot because that's not what the lawsuit is about. It is about the definition of a core. I searched high and low for calling an "execution unit" a core and I'm not finding anything that isn't related directly to Bulldozer and derivatives.
Meh, fuck it. You're never going to convince me and I'm never going to convince you. The court will decide if the case should be heard 2/26/2016.
this thread has given me hours of entertainment :D
and some insight tbh :)