| View previous topic :: View next topic |
| Author |
Message |
xsecret

Joined: 01 Feb 2004 Posts: 1846 Location: France
|
Posted: Sun Jun 08, 2014 9:41 pm Post subject: AMD K15+ CPU and the definition of a "core". |
|
|
Let's start a debate about the definition of a "core" and why AMD's definition is wrong.
What is a core ?
- A core is an independent unit, able to process instructions and data.
- A core is the combination of a front-end and a back-end.
- A core is able to fetch/decode/dispatch/exec instructions as well as load/store data.
What is NOT a core ?
- A back-end only is not a core.
- An execution unit alone is not a core.
- SMT (simultaneous multithreading – ie: Intel's Hyperthreading) is not a core. This technology does not "split" a core into 2 core. That's a 1 core / 2 thread design.
What AMD is calling a "core" ?
AMD Marketing decided to promote the K15-based CPUs (and newer) with Bulldozer Architecture as "8 core" CPU (ie: FX-8350). From a technical point of view, that's total bullshit. The design is based on a 4 core CPU with CMT. CMT is cluster multithreading (similar to SMT). It's another way to process 2 threads with one core. To achieve this, clusters are used in execution units. So, technically, a FX-8350 is a 4 core CPU able to process 8 threads at once (4C/8T).
AMD Marketing used the term "Core" to define an "Integer Cluster" and the term "Module" for a "Core".
Why this is only a marketing trick ?
If you look at the die of what's called "8 core" by the marketing team, it's obvious that the design is 4 core.
More important, AMD Engineers know exactly what a core is. All technical informations located inside AMD's bulldozer patents are correct. A core is called a core (not a "module") and a cluster is called a cluster (not a "Core").
Link for the original patent : https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US20080263373.pdf
So, What to do ?
CPU-World is all about technical stuff and reliable information about CPU, so I think it's time to correct that. _________________ ES-Only Collector : http://www.engineering-sample.com
Universal Chip Analyzer (UCA) : https://x86.fr/uca / http://www.cpu-world.com/forum/viewtopic.php?t=34349 |
|
| Back to top |
|
 |
Neon_WA

Joined: 08 Nov 2008 Posts: 7146 Location: Margaret River, West Australia
|
Posted: Sun Jun 08, 2014 10:20 pm Post subject: |
|
|
I'm not that up with internal workings of modern CPUs, but it looks like AMD using something similar to "hyper-threading" without calling it that
Had a look a various definitions of a core in a multi-cored processor.. and by all of those definitions it could only technically be called a 4 core processor
Also looked at performance.. seemed pretty well on par with a 4 core / 8 thread Intel (be it a uni-processor Xeon) _________________ There are 10 types of people in this world:
those who understand binary and those who don't. ~Author Unknown
http://www.x86-guide.net/Neon-WA/en/collection.html |
|
| Back to top |
|
 |
smithy

Joined: 27 Apr 2008 Posts: 2906 Location: Sydney, Australia
|
Posted: Mon Jun 09, 2014 1:46 am Post subject: |
|
|
I think the die says it all _________________ My former Intel collection:
www.smithschips.com.au |
|
| Back to top |
|
 |
debs3759

Joined: 18 Jan 2006 Posts: 9477 Location: Northampton, Divided Kingdom
|
Posted: Mon Jun 09, 2014 3:59 am Post subject: |
|
|
Even calling that an 8-thread processor is misleading if they don't qualify it as being 8 INTEGER threads, as there are still only 4 FPU threads. _________________ My graphics card database can be found at http://www.gpuzoo.com.
I can resist anything except temptation.
Debs |
|
| Back to top |
|
 |
KK_Fin

Joined: 01 Jul 2013 Posts: 835 Location: Finland
|
Posted: Mon Jun 09, 2014 4:02 am Post subject: |
|
|
I fully agree with Xsecret. Only 4 cores, not 8. Only marketing can make it to 8.  _________________ 1242 x86 CPUs in my collection (week 2 2026). |
|
| Back to top |
|
 |
Neon

Joined: 04 Feb 2008 Posts: 1512 Location: Dallas, Texas, USA
|
Posted: Mon Jun 09, 2014 8:27 am Post subject: |
|
|
It seems that the definition of "core" is arbitrary.
AMD marketing now describes HSA-enabled APUs with 8 graphics processing units and 4 x86 processors as, "12 compute cores".
If we accept that there must be int and fp units present, then should we refer to 80486 as a zero-core processor? |
|
| Back to top |
|
 |
gshv

Joined: 01 Feb 2003 Posts: 7898 Location: Fairfax, VA USA
|
Posted: Fri Jun 13, 2014 12:47 am Post subject: |
|
|
Here is my take on it... The function of each core is to execute instructions independently from other cores. It means that N-core processor executes N separate threads at any given time. Hyper-Threaded cores work differently. Each HT core switches between two or more threads, something like thread 1 -> thread 2 -> ... -> thread T -> thread 1 -> ... (T is the number of threads supported by each core), but it can execute only one thread at a time. So, in that sense AMD processors do have 8 CPU cores, as they can run 8 threads at once. Intel Core i7 processors with Hyper-threading can also run 8 threads, but only 4 of them are running simultaneously (at any given point of time). In my opinion, sharing of some units, like FPU, cache or instruction fetch/decode unit, is not important. Unit/logic sharing may be the cause of poor performance if not properly implemented, but that's a not a reason to claim that the CPU has fewer cores than it actually has.
Gennadiy |
|
| Back to top |
|
 |
xsecret

Joined: 01 Feb 2004 Posts: 1846 Location: France
|
Posted: Fri Jun 13, 2014 1:54 am Post subject: |
|
|
I think there is a misunderstanding about what a core is. What's your talking about is not a core, it's an execution unit (Integer ALU in that case). If I follow your definition of a core, each Haswell core has "4 core" because every one have 4 complete Int ALU (http://images.anandtech.com/reviews/cpu/intel/Haswell/Architecture/haswellexec.png). And if we use this, the lastest AMD APU are really "12 core" chips. The GPU "Compute Core" could be seen (from a marketing POV) as extra SIMD Execution Units. But the number of ALUs per core or per thread is really not related to the "core" itself. The important is of course to have at least one ALU per thread to avoid bottleneck. Another important think is to have an instruction decoding rate high enough to feed those units ... and that was not the case with earlier Bulldozer-based design (up to Piledriver), but that's another debate.
An actual Intel quad-core with Hyper-Threading IS able to run 8 threads simultaneously via context switching. But context switching is done before (and after) the executions unit. It's a register renaming trick. The exec units are not aware about which threads they're working on. They just execute instructions and they can actually execute instructions for up to 8 threads in the same flow.
Both AMD Bulldozer and Intel Haswell have 2 ALU per thread. Each AMD Cluster is build with 2 ALU and each Haswell core have 4 ALU (with SMT enabled, that's 2 ALU / thread). So, both FX-8350 and Core i7 4770K can work on 8 threads simultaneously with their 16 ALU. But both are 4 cores design. _________________ ES-Only Collector : http://www.engineering-sample.com
Universal Chip Analyzer (UCA) : https://x86.fr/uca / http://www.cpu-world.com/forum/viewtopic.php?t=34349 |
|
| Back to top |
|
 |
gshv

Joined: 01 Feb 2003 Posts: 7898 Location: Fairfax, VA USA
|
Posted: Sat Jun 14, 2014 9:48 pm Post subject: |
|
|
Core i7s can run 8 threads, but they cannot run 8 threads all the time. Modern processors translate x86 instructions into microops, and have an ability to execute different types of microops in parallel, one microinstruction per execution unit. This allows Intel i7 processors to run 8 threads at certain times, but this is not guaranteed. Say, you feed the processor a series of same x86 instructions, which are translated into one microop per instruction, and that microop can be executed only by one execution unit. On that code, Core i7 CPUs can only run 4 microops at a time, when Bulldozer CPUs will run 8 of them. This is because Bulldozer processors have two sets of schedule+execution units+load/store units+retire blocks.
Obviously, my example has nothing to do with real world applications. However, if you look at Hyper-Threading performance in real CPU intensive applications you will see that one thread may perform much better than the second thread. That should tell you that Core i7 processors do not usually run all 8 threads all the time. From the outside, it looks like a Core i7 processor runs 4 threads at a time, and can run up to 4 extra threads when the cores are not loaded, or when primary threads wait for data or if there is some other kind of thread blocking condition. So, in my opinion, FX-8xxx Bulldozer processors do have 8 cores. It is just each Bulldozer core performs much worse than Intel's Hyper-threaded core...
Gennadiy |
|
| Back to top |
|
 |
xsecret

Joined: 01 Feb 2004 Posts: 1846 Location: France
|
|
| Back to top |
|
 |
|