Is AMD FX 4300 really quad core ?

2 physical cores, 2 logical cores I'm guessing since my FX-8120 is also the same (4 physical, 4 logical). The computer still believes it's 8 cores and still utilizes them the same as if they were physical so don't worry about it :)
 
It depends entirely on your definition of what a "core" is. Like all other forms of SMT, the second core of an FX module shares resources with the first, so it's not a self contained unit. You can make the argument that a FX-4300 is a dual core with 2-way SMT support. You can also make the argument that because 80% of the resources are NOt shared, that the FX-4300 is a quad core CPU with some shared resources on each module.
 


By that definition, the core i3 with Hyperthreading is also a quad core CPU, since the Hyperthreaded cores can be individually addressed by an application. The i7 lineup is henceforce Octo-core CPUs.
 


Not correct since the AMD has physical 2 cores pair module and Intel I3 only has 2 cores with virtual HT cores.
 


AMD has one physical core and one logical core per module, same as Intels HTT implementation. The only difference is how many resources are duplicated.

So again: Until someone defines what a "core" is, the OPs question is totally objective. Both CMT and HTT rely on shared resources between cores; at what threshold does one become "Virtual" and one become "Physical"?
 
Posted by cmi86 in another thread,

"Ill take a sec to answer this thread properly. An FX CPU is made up of "modules" that each consist of 2 integer processing units and one floating point unit. So an 8 "core" FX does indeed have 8 processing cores sharing 4 floating point units. This is by far superior to hyperthreading as these are actual real stand alone processing units unlike hyper threading. 4 core = 2 module, 6 core = 3 module, 8 core = 4 module."

 


This was not really a discussion on the single core performance of the chip, just the design, and if AMD had better per core performance, it is a technically better layout, just more mature, to put it nicely
 


Not quite.

HT = logical cores = not real. They are threads added to physical cores through addressing/timing/software optimization techniques that allow you to treat them as separate for workload purposes. It is not unlike the asynchronous shader optimizations you will see in DX12 and up-coming GPUs.

FX CPUs have ALL physical cores. They are not logical. They are actual hardware on the die.

The cores are paired into modules for the purpose of sharing L2 cache. This allows certain affinity optimizations where threaded workloads can benefit from sharing cached data. But they are still individual physical cores that can be given their own individual workloads.

I agree that this is confusing because this is a 'hybrid architecture' when compared to previous designs. But Module =/= core, and physical cores =/= logical/virtual.

Hope that helps.
 
Yes, the fx4130 is a 4 core cpu. It has 2 modules (2 brains) each with 2 processors (left and right hemispheres) and 1 floating point unit (thoughts) that happen to share L2 cache (memories).

So, yes it's a 4 'core', as each processing unit is separate and can think on its own, but some will consider it a 2 core as each left and right hemisphere is still just one brain (module) and there is two (modules) of them in a FX 4xxx.
 


There is nothing "virtual" about HTT cores. The way HTT works, is you have all the resources necessary to store the processor state duplicated, which means two separate sets of registers. ONLY the execution resources are shared, and they are shared equally. EG, If I run exactly one thread, you will get the same throughput if you assign it to Core 0 and Core 1. It's if you use both that performance is lost, because only one of those cores can access the execution resources at any one time.

This is also the reason why non-HTT aware OS's see HTT enabled chips as having two physical cores, rather then one physical and one logical. The two cores are EXACTLY THE SAME, but only one can access the execution resources at a time. Treating the second core as a logical core is really just a hack to tell the OS that the second core of a group is sharing resources with the first, so the second cores of a group get scheduled differently then the first to maintain overall system performance.

From Wiki:

Hyper-threading works by duplicating certain sections of the processor—those that store the architectural state—but not duplicating the main execution resources. This allows a hyper-threading processor to appear as the usual "physical" processor and an extra "logical" processor to the host operating system (HTT-unaware operating systems see two "physical" processors), allowing the operating system to schedule two threads or processes simultaneously and appropriately. When execution resources would not be used by the current task in a processor without hyper-threading, and especially when the processor is stalled, a hyper-threading equipped processor can use those execution resources to execute another scheduled task.

Compare that to Cluster Multithreading, where the Integer processing resources are duplicated, but the floating point resources are not. That's why BD is actually faster then i7's in pure Integer math, since there's no stalling due to needing to share execution resources, like you would if you were doing FP heavy work.

So again: What is a "core"? I define a core as a unit able to maintain the CPUs architectural state, so by that definition, a FX-4xxx is a quad core CPU. Likewise, the HTT enabled i3's are also quad core CPUs. Others will disagree with this, but unless you define exactly what a core is, the OPs question is open to interpretation.
 


There you said it FX4300 is a 4 core CPU!
Although your believes on Intel CPU's are different from the manufacturer them selves. That is they market their CPU's like I3 dual core I7 quad or even the upper end I7's on the LGA2011(-3) as hexa core which you would call 4 core, 8 core and 12 core CPU's! If they really are Intel should fire their PR reps because they made the biggest marketing mistake in this industry!
 
Although your believes on Intel CPU's are different from the manufacturer them selves. That is they market their CPU's like I3 dual core I7 quad or even the upper end I7's on the LGA2011(-3) as hexa core which you would call 4 core, 8 core and 12 core CPU's! If they really are Intel should fire their PR reps because they made the biggest marketing mistake in this industry!

Key word: Marketing.

And again: It depends how you define a core. If you go simply by Registers, then the Core i3 HTT line are quad cores. If you go by needing to have EVERYTHING duplicated, then both the i3's and FX-4xxx are dual cores. And so on. It depends on how you choose to define the minimum requirements for a core.

Hence why I hold the OPs question is unanswerable.

Run 4 simultaneous software based full hd video encodes on a 4300 & a hyperthreaded i3 & it'll take you about 5 seconds to work out the difference between 4 real cores & dual core hyperthreading.

And run four FP heavy threads, and the i3 starts running faster then the FX. Just saying, that logic works both ways.
 
^ not actually the point I'm making - the i3 will finish that encoding as fast as the amd quad (maybe even faster) BUT at the expense of the system becoming near enough unusable while its working. The amd will continue to be useable - the physical modules do make a difference in extreme cases like this.
This is from personal & practicsl experience with both chip types .
 
I know this is an old thread but I have to correct peoples opinions with actual facts, The AMD FX has 4 Modules and 8 CMT threads and there are ONLY 2 shared 128 bit floating points NOT4 NOT 8. The CMT (Clustered Multithreading) threads act like individual cores because the process different instructions instead of sharing them with their sister thread like SMT (simultaneous multithreading). Windows does recognize threads as cores now because of the FX patch that was released in Windows 7. Before the patch the AMD FX would only be recognized as a quad core with 8 threads because the modules are actually the cores not the threads, but after the patch was released for download in Windows 7 and integrated into Windows 8.1 and 10 it recgnizes the threads as cores and does the same for the Intel i3 and i7. The i3 dual core is recognized as a quad core and the i7 quad core is recognized as an 8 core even thought they use SMT and not CMT