• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

Are AMD cpus true octo-cores?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
...so the performance DOES scale up reasonably well, but not as well as a real octo-core going from 4 to 8 threads (with suitable software which can efficiently exploit the extra threads).
I agree, there is a "performance penalty", but it is much less severe with the AMD FX, compared to the Intels.

Agreed, which is why I think trying to compare them directly doesn't really work. An Intel quad+HT is more than a quad, and an AMD eight-core is less than a true eight-core but more than an Intel quad+HT.

The bulk of the software at the time (I think) either did not use floating point, or had its own floating point software to handle it. (387 rarely was supported, I think).

Correct, you had to either write your own FP code or buy the coprocessor. x86 software was in its infancy back then so the comparison to now makes no sense.

Plus, of course, nobody said an integer core without FP was worth "0 cores".
 

mrmt

Diamond Member
Aug 18, 2012
3,974
0
76
Agreed, which is why I think trying to compare them directly doesn't really work. An Intel quad+HT is more than a quad, and an AMD eight-core is less than a true eight-core but more than an Intel quad+HT.

I don't think it's fair to compare core against core here, because an Intel core is has more units than an AMD core, meaning that you can dispatch more operations per clock per thread with Intel processors, the units inside Intel cores are more efficient than AMD counterparts, meaning that for almost every kind of instruction you can think runs faster in Intel processors and, on top of that, memory at all levels is faster with Intel processors

Think about two different engineering approaches. Intel has a more refined, efficiency-oriented approach, while AMD is brute force on its prime (More cores, more power, more clock, etc).
 

SOFTengCOMPelec

Platinum Member
May 9, 2013
2,417
75
91
Agreed, which is why I think trying to compare them directly doesn't really work.

I don't think it's fair to compare core against core here,

I agree. I think I have heard that some upcoming arm chips will have 16 cores, (via a pair of on chip 8 core cpu modules), but alas, the performance is a tiny fraction slower than the intel 3960X (joke on the performance bit). Therefore, quantity of cores comparisons can be somewhat meaningless.

Consider the following thought experiment....

What if almost all software in existence was fully written to exploit 8 threads with extreme software efficiency, and a complete and utter disregard for single core performance, (8 full cores and/or (4 modules x 2 threads = 8 AMD threads) and/or 4 real + 4 HT intel threads) ?

We would probably see the FX-8350 beat the intel 3770K in most benchmarks, and it may even challenge the intel 3960X, since 8 fullish AMD cores would be against 6/12(HT) intel ones.

In practice some software would probably be very difficult to write in this way, and the intel chip would still win in areas like power consumption, built in IGP (AMD FX has none), and other things, like overclockability.
 
Last edited:

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
I don't think it's fair to compare core against core here...

Agreed, which is part of why I like using different terms for them entirely, to make that clear -- "cores" and "threads" for Intel, and "integer cores" and "FPUs" for AMD. It's not perfect but it demonstrates how they are designed and that that they are quite different.

What if almost all software in existence was fully written to exploit 8 threads with extreme software efficiency, and a complete and utter disregard for single core performance, (8 full cores and/or (4 modules x 2 threads = 8 AMD threads) and/or 4 real + 4 HT intel threads) ?

We would probably see the FX-8350 beat the intel 3770K in most benchmarks, and it may even challenge the intel 3960X, since 8 fullish AMD cores would be against 6/12(HT) intel ones.

This is a bit of an "if the queen had balls she'd be the king" sort of thought experiment, though. :) If software actually worked that way, Intel and AMD would probably be making entirely different chips.

The reason software isn't like that is because reality isn't like that. You can't write software to parallelize what isn't parallelizable. This problem goes back to the 1960s and is not likely to change any time soon.

And that's why CPU progress has stalled -- power limits frequency, and Amdahl's Law limits adding extra cores. ARM can put 1,024 cores on its chips if it wants, but most of them will be sitting around bored.
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
146
106
This is a bit of an "if the queen had balls she'd be the king" sort of thought experiment, though. :) If software actually worked that way, Intel and AMD would probably be making entirely different chips.

The reason software isn't like that is because reality isn't like that. You can't write software to parallelize what isn't parallelizable. This problem goes back to the 1960s and is not likely to change any time soon.

And that's why CPU progress has stalled -- power limits frequency, and Amdahl's Law limits adding extra cores. ARM can put 1,024 cores on its chips if it wants, but most of them will be sitting around bored.

Exactly. There was a reason why intel for example dabbled with the Mitosis project. Essentially willing to use 800%+ resources to get maybe 10-25% faster speed on a thread.

Instead we ended up with Turbo.
 

SOFTengCOMPelec

Platinum Member
May 9, 2013
2,417
75
91
This is a bit of an "if the queen had balls she'd be the king" sort of thought experiment, though. :) If software actually worked that way, Intel and AMD would probably be making entirely different chips.

The reason software isn't like that is because reality isn't like that. You can't write software to parallelize what isn't parallelizable. This problem goes back to the 1960s and is not likely to change any time soon.

And that's why CPU progress has stalled -- power limits frequency, and Amdahl's Law limits adding extra cores. ARM can put 1,024 cores on its chips if it wants, but most of them will be sitting around bored.

Very good answer. An excellent point! :cool:

Of course, if software could of been done like that, Intel high end (consumer) cpu's would be weaker but more numerous 16+ cores.

Thanks.

P.S. I'm going to change my forum name to mrmt, now:whiste:
 

Enigmoid

Platinum Member
Sep 27, 2012
2,907
31
91
I agree. I think I have heard that some upcoming arm chips will have 16 cores, (via a pair of on chip 8 core cpu modules), but alas, the performance is a tiny fraction slower than the intel 3960X (joke on the performance bit). Therefore, quantity of cores comparisons can be somewhat meaningless.

Consider the following thought experiment....

What if almost all software in existence was fully written to exploit 8 threads with extreme software efficiency, and a complete and utter disregard for single core performance, (8 full cores and/or (4 modules x 2 threads = 8 AMD threads) and/or 4 real + 4 HT intel threads) ?

We would probably see the FX-8350 beat the intel 3770K in most benchmarks, and it may even challenge the intel 3960X, since 8 fullish AMD cores would be against 6/12(HT) intel ones.

In practice some software would probably be very difficult to write in this way, and the intel chip would still win in areas like power consumption, built in IGP (AMD FX has none), and other things, like overclockability.


Highly doubt it as multithreaded benchmarks are generally fairly similar between the 8350 and the 3770k with the 3770k winning on average. 3960X demolishes the 8350 in pretty much anything. Not to mention the weak FPU performance of the 8350.
 

SOFTengCOMPelec

Platinum Member
May 9, 2013
2,417
75
91
Highly doubt it as multithreaded benchmarks are generally fairly similar between the 8350 and the 3770k with the 3770k winning on average. 3960X demolishes the 8350 in pretty much anything. Not to mention the weak FPU performance of the 8350.

I agree.
In the (rare) benchmarks where the FX-8350 comes out in front of the 3770K, it usually beats it by the tiniest of amounts (from what I remember).
Whereas, when the 3770K beats the FX, it wins by a convincing amount, maybe up to about twice as fast for some things (again, from memory).

That's why I went for the FX-6300 for one of my recent computer rebuilds, because price wise its performance is comparable or better than Intels. It gives the benefit of dabbling with 6 core software development (Socket 2011 motherboards and hex core intel chips are massively more expensive than FX-6300 + AM3+ mobo). While at the same time giving approximately the same (or comparable) performance to the intel 2500K (from my examination of a limited number of benchmarks, and not worrying about the odd +/- 10% difference here and there).

My other main reason for going for the FX-6300 is because 95W is comparable to the 77W/84W(Haswell) TDP's. Whereas the FX-8350 125W would be too hot, noisy and expensive to run (relatively).
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,286
145
106
And I reject the notion of a "pure software term" and a "pure hardware term". There is no purity in computing; separating the hardware from the software is like separating the brain from the mind. And the operating system, especially, is the interface between hardware and software.
Sure there is.. but more on that later.

Seems unlikely. I don't know who coined the exact term "multithreading", but the concept is about 50 years old, and I'm confident it predates HT.
What? I never said it wasn't... I don't know what you are getting at here.

Most people don't talk about "OS related stuff" very often. If jargon doesn't increase understanding, it's just jargon.
Many people refer to the entire computer as "the CPU". Does that mean that is now correct jargon? Again, do a google search for "Logical core" You'll find that is a very commonly used term. If you are in linux, cpuinfo refers to them as logical cores ( http://software.intel.com/en-us/forums/topic/283496 ). If you are in windows, they are referred to as logical cores ( http://blogs.msdn.com/b/b8/archive/2011/10/27/using-task-manager-with-64-logical-processors.aspx ).

If someone with a strong technical background is going to talk about them, they refer to them as logical cores.

It is common terminology/jargon. Again, it is really only here on anandtech forums that I've seen "Thread" become the replacement for logical cores.

Is an instruction a hardware term or a software term? How about an address? A register? A page table? There are lots of things that apply to both hardware and software.
This would be a strawman. I never said that there aren't terms which have some meaning in both the hardware and software world. I was saying that a Thread, specifically, is a software concept, not a hardware one. Just like a Hashmap is a software only concept or an ALU is a hardware only concept. There ARE things that reside solely in one world or the other. That, of course, does not mean that everything resides in one world or the other.

When I say it's an 8-thread processor, that means it can execute 8 threads at a time. Just as when I say it's a 2 GHz processor, that means its base clock period is 0.5 ns.
What is wrong with saying "It is has 8 logical cores" The terminology is more correct and very clear. Heck you could even do the "4P/8L" division if you like.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
In other words, there is a difference between a software thread and a hardware thread, but it's not much and it's more about how it's handled. A 4C/8T CPU can handle 8 threads simultaneously, but via context switching can seem to handle far more.

Well, it still isn't really simultaneously. What is happening is the OS gives that CPU extra information in case of a stall in processing. When one thread stalls on something (memory lookup, crazy long instruction, whatever) The CPU can very quickly switch to the other thread without involving the OS's thread scheduler. That is where the benefit comes into play. So long as the OS presents each of the CPU's logical cores with threads, the CPU has enough information to keep things moving along.

In other words, the CPU is still only handling 4 threads in parallel. The difference is that it can switch so quickly when one of those threads stalls that it looks like there are 8 threads running in parallel instead of just 4.
 

zephyrprime

Diamond Member
Feb 18, 2001
7,512
2
81
got it.

Sidequestion: Are integer instructions much faster that floating point?

IE: 4/4 = 1 or 4.0/4.0 = 1

Would it not be more economical to make all units FP, doubling all the speeds we have today?
Integer is faster and much lower transistor usage than FP generally speaking. But as others have said, the math isn't quite equivalent between the two so you would need both even if both were the same speed and cost.
 

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
What? I never said it wasn't... I don't know what you are getting at here.

You said you thought the current use of the term "thread" in a hardware context was a result of Intel's term "Hyper-Threading". I was just saying that the concept is much older, though I agree that Intel has popularized it.

Many people refer to the entire computer as "the CPU". Does that mean that is now correct jargon?

Funny that you use that as an example, because it's actually a good example of a term whose meaning has evolved over time. Sure, calling the whole system box a "CPU" is not correct, but the idea of calling microprocessors "CPUs" is also somewhat of a recent invention. Also, what we call "CPUs" today encompass far more functions than they did 20 years ago.

Again, do a google search for "Logical core" You'll find that is a very commonly used term.

The examples you give are development resources. I'm not saying you're wrong, I'm just saying that the term is not widely used outside geek circles.

I personally prefer terms to be accurate and in common use. I'm not going to use a term I feel is wrong, but otherwise I try to eschew obfuscation, as the saying goes. :)

This would be a strawman. I never said that there aren't terms which have some meaning in both the hardware and software world. I was saying that a Thread, specifically, is a software concept, not a hardware one.

Yes, I understand that, but I brought up the other examples because I don't really understand why you feel that "thread" is software-only while the others aren't. Even if the term originated in the software world, that doesn't mean it's wrong to use it to describe hardware concepts when they are closely related, and in the case of hyper-threading, they are. I could think of other examples of things that started out in the software domain and now are used in both respects.

Well, it still isn't really simultaneously. What is happening is the OS gives that CPU extra information in case of a stall in processing. When one thread stalls on something (memory lookup, crazy long instruction, whatever) The CPU can very quickly switch to the other thread without involving the OS's thread scheduler.

I don't believe that's the case. What you are describing is usually called coarse-grained multithreading. SMT does not involve context switching -- instructions can be issued from two threads to different execution units in parallel.

Which is part of why I don't think "thread" is inaccurate, because the processor is thread-aware: it has to keep track of the instructions to ensure proper retirement.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,071
3,575
126
if ur amd is an octicore..

my intel is a Dodecacore... :p

Welcome to the 21st century were people are cpu vendors try to confuse u with threads vs cores..
 

Blandge

Member
Jul 10, 2012
172
0
0
The term "core" isn't well defined, because there isn't a consensus on what exactly it means. A better terminology would be "independent cores" that share either nothing at all (In which case most CPUs would be single core) or that share no execution units, which would allow for share cache.

I'm fine with AMD calling the FX-8350 an octocore, but I'd make a strong distinction that they are not 8 independent cores. The debate is really pointless until we reach a concurrences on definitions.
 

jaqie

Platinum Member
Apr 6, 2008
2,471
1
0
I've seen motherboards refer to a single socket-housing as a physical core, and the number of cores inside that cpu as logical cores. This is for multiple cpu socket motherboards.

Before now, that is the only time I ever saw or heard the term 'logical core' used anywhere... I've been an SMP enthusiast since before 2000 (had a tyan patriot BX with dual p3 600) and been working on computers now since the late 80s.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,071
3,575
126
its down to the definition of core.

What is a core?

Is it a logic unit? or is it physical?


The only real multicore cpu i have seen is probably the original Intel prescotts.
Oh yeah.. lets put 2 cpu dies on 1 cpu socket and profit!
Then intel continued it with kentsfield.

naked_kentsfield.jpg


Thats when AMD started laughing at intel going thats not a real quadcore our bulldozer technology allows us to throw everyone in 1 die, having it be faster.. blah blah blah...
(u know how that went).

(even tho they were getting there asses handed by the C2D arch.)

So then things started coming out in 1 die.
 
Last edited:

sefsefsefsef

Senior member
Jun 21, 2007
218
1
71
I don't believe that's the case. What you are describing is usually called coarse-grained multithreading. SMT does not involve context switching -- instructions can be issued from two threads to different execution units in parallel.

I just want to chime in and say that Charles is correct here, sorry Cog. Hyperthreading is Intel's implementation of "Simultaneous Multithreading," or SMT. A Hyperthreaded core can *literally* (using the term correctly here) issue from and execute instructions from two threads in the same cycle. At the same time. Literally.

I believe Ivy Bridge can issue 4 mico-ops per cycle. These 4 micro-ops can come from either thread, both threads, or just one thread (the division could be 4/0, 3/1, 2/2, 1/3, or 0/4). No need for context switching to make progress on two threads at the same time. Context switching, in the case of an HT core, means to completely swap out the thread state of our of the two hardware threads for another thread (just like it does for a non-SMT core).

The larger question of "what is a core," is one that will not be settled on the AT forums. My opinion (and opinions are all we're going to get here) is that one of AMD's CMT modules should count as a two cores, because most programs (even FP heavy programs), will have a hard time keeping the FP pipeline 100% busy, so sharing the FP pipe makes a lot of sense, but it does make a lot of sense to have dedicated INT hardware for each thread for just about every program in the world (again, even FP heavy programs).
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,071
3,575
126
Ultimately i tell people how many working threads does windows task manager show.

And if they have an intel CPU with HT ON... divide that by half.

I am a firm and strong intel user, however i will never tell anyone a HT core is a real core.
The cost of HT can be a double sided sword if used improperly or not optimized correctly.

The HT core is also a gimp'd core because its not a true core, so again, i dont include HT cores.

To me a Core is => 1 working thread at full clock speed.
If you need to gimp the clock speed like HT, its not a real core.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,071
3,575
126
Hyperthreading does not do anything to reduce clock speed.

errr i think my vocabulary is getting you confused.... when i mean clock speed, i also mean the amount of work the processor is able to do.
Hence when looking at the same processor, one with a higher clock speed is going to be able to do more work if both have 0 bottlenecks.

A HT thread is roughly 2/3rds the performance of a non HT thread when both are being utilized.

Turbo on slightly counters that by overclocking your cpu so the speed of HT becomes overall the same, but again, your roughly 1/3rd less in speed wise of that turbo'd core.

If your talking about it reduces your overall overclock then no.
Your right, HT ON has no impact of what speed your cpu runs on the non HT thread.

But as i said i dont include HT threads as "Cores" because of that limitation.
HT is a prefetch, works best when your real cores are loaded.
If your real cores are free, and the application throws it inside the HT thread instead of a real core thread, this will hurt you.

This was first saw on the 920's and videogames where ht on, was making games and other applications run slower.

Intel and windows fixed this with priorities in fetching built in.
But its a example of why i dont consider HT to be real cores, even tho they show threads in task manager.
 
Last edited:

SPBHM

Diamond Member
Sep 12, 2012
5,066
418
126
Don't forget the atom n330!
68250060.jpg


I still own one, though it is gathering dust in my motherboards box.

core 2 quad also have 2 separate dies, but each contains 2 cores,
the Dunnington Xeons had 6 cores (3 dual core dies).


but I don't think "cores" are associated with separate dies or something.
 

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
But as i said i dont include HT threads as "Cores" because of that limitation.
HT is a prefetch, works best when your real cores are loaded.

What do you mean by prefetch here?

The cores being all on one die versus separate dies makes only a small difference in the potential speed of the interconnect; otherwise, it doesn't matter. Both Intel and AMD have used them.

IBM uses big whomping 4-inch square MCMs with tens of chips on them.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,071
3,575
126
What do you mean by prefetch here?

when your real core is loaded, new work is loaded onto the HT core.
As your real core free's up, the HT core unloads the work onto the real core to finish the assigned work.

Thats what i mean about prefetch.

Work was already grab'd and started on by the HT thread and then unloaded to the real core as it becomes available.

Both Intel and AMD have used them.

Yes i know however, intel's shows up on windows as actual threads tho.

Intel Hexcore:
stalker_testing.jpg


That's the misleading part.

On the AMD processor, each thread represents cores no?
Each thread has the same speed as the one next to it, can do the same amount of work in a equal amount of time.

AMD Hexcore:
5x0dF.png


On the intel processor with HT, half of them are real threads, the other half HT threads, are prefetch threads incase the real cores are loaded.

I dont consider the intel a 12 core or true 12 thread processor.
Intel even doesn't, that's why they call them a hexcore.

Oh and i consider both of them hexcores.

BTW i do consider a AMD Magny-Cours a Octocore.
It has 8 working threads at the same speed each being able to do equal amounts of work in the same time.

However if amd is calling a quadcore with a hyper threading type function a octocore, then no.
 
Last edited:

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
when your real core is loaded, new work is loaded onto the HT core.
As your real core free's up, the HT core unloads the work onto the real core to finish the assigned work.

Thats what i mean about prefetch.

Okay. I was just confused because usually that means something else.

As for the other stuff, "what is a core" is the question we're debating. :) I don't think anyone is saying HT is as good as a full additional core, but the AMD cores aren't full cores either, though better than HT.

As for Magny-Cours, that's a "stars" chip and before all the module stuff so those are real cores. It was a dual die package, but again, that doesn't really matter.