The opposite of hyperthreading
Now i know tat the new i7's have hyperthreading again but what i reckon would be more useful was if you had the opposite.
So instead of the pc seeing it as 4 x 3Ghz cores it saw it as 2 x 6Ghz as with not a large amount of apps using 4 cores yet surely it would make more sense.
Now i know there's probaly something on why you can't (otherwise i'm sure intel/amd would have already done it), but what do you think of it?
Or am i just being stupid :stupid:
Re: The opposite of hyperthreading
Didn't AMD come up with something like that recently or am I imagining it?
Re: The opposite of hyperthreading
I think this falls into the "this would be amazing if it were actually possible" camp.
Instead of working our how to make 4 cores look like just two, why not just have two very fast cores in the first place?
Re: The opposite of hyperthreading
Quote:
Originally Posted by
Funkstar
I think this falls into the "this would be amazing if it were actually possible" camp.
Instead of working our how to make 4 cores look like just two, why not just have two very fast cores in the first place?
It's because of the limit in cycle speed that we went multi-core anyway. It also makes more sense in a multitasking environment, and most software that needs more than a single core provides can be written appropriately to use another.
Re: The opposite of hyperthreading
Quote:
Originally Posted by
handscombmp
Now i know tat the new i7's have hyperthreading again but what i reckon would be more useful was if you had the opposite.
So instead of the pc seeing it as 4 x 3Ghz cores it saw it as 2 x 6Ghz as with not a large amount of apps using 4 cores yet surely it would make more sense.
Now i know there's probaly something on why you can't, but what do you think of it?
Or am i just being stupid :stupid:
To get what you wanted, the 2nd core need some data that is being processed by the 1st core.
Its like doing a marathon, the other runners can't start until they get the stick from the previous runner. Getting them to run together doesn't make it faster.
To make fast core in the first place, if Intel or AMD can make a 6Ghz processor they would have made it.
Why 2 x 6Ghz if you can make 4 x 6Ghz !
Re: The opposite of hyperthreading
http://www.bit-tech.net/news/hardwar...perthreading/1
Well, it was news in 2006...guess it didn't go anywhere in the end.
Re: The opposite of hyperthreading
Quote:
Originally Posted by
dangel
It's because of the limit in cycle speed that we went multi-core anyway. It also makes more sense in a multitasking environment, and most software that needs more than a single core provides can be written appropriately to use another.
Yup, i was going to say that, but forgot to write it before posting :)
Re: The opposite of hyperthreading
Quote:
Originally Posted by
arthurleung
Its like doing a marathon, the other runners can't start until they get the stick from the previous runner. Getting them to run together doesn't make it faster.
Or perhaps a relay? :P
Re: The opposite of hyperthreading
Thanks anyway. i knew that therr would be a reason and i suppose like you mentioned it would only be useful once the first lot of mulitcores come out as devolpers catcher up and write with more cores in mind.
Re: The opposite of hyperthreading
Quote:
Originally Posted by
Funkstar
Or perhaps a relay? :P
LOL, forgot to proof-read my post.
My personal view is, if a program doesn't support multi-threading, or if the multi-threading efficiency is not high, I just run multiple instances doing separate sections. Individually each of the program would be slow but collectively they'll be fast.
Re: The opposite of hyperthreading
Quote:
Originally Posted by
shaithis
Didn't AMD come up with something like that recently or am I imagining it?
AMD talked about this years ago.
It makes limited sense, a CPU has a bunch of execution units available to it and can send a few instructions out per clock. If one CPU could get access to the execution units of another CPU, then it might be able to issue more work in a clock cycle.
Thing is, you get conditional jump instructions about every 6 instructions on average which limits how many instructions you can usefully issue per clock. Then the extra wiring needed to do this would drop the clock speed you could get to as everything has a cost.
They might have been able to share SSE units though, and there are potentially quite big gains to be made there given SSE was always intended to crunch big data sets with less looping.
But then Windows would get in your way. One of your cores grabs extra SSE resources to run your game dead fast, then Windows for reasons unfathomable decides to switch that thread to another CPU and chooses one that currently has its SSE unit in use elsewhere, so the CPUs have to reconfigure themselves.
So, the CPU has to be able to reconfigure itself on the fly, per clock cycle. Shared resources across 2 CPUs with wider than normal issue to make it worthwhile. I think if you take that to its logical conclusion, you end up designing the Core I7 Hyperthreading model :D
AMD should just adopt multi-threading. IBM seem to do a cracking job with their Power architecture, hitting 5GHz with two threads per CPU, and the Intel effort is pretty effective too. Sun process massive thread pools on their slightly loopy Niagra CPU, so I don't know why AMD think they are special and can ignore the whole technology.
Re: The opposite of hyperthreading
Quote:
Originally Posted by
DanceswithUnix
AMD talked about this years ago.
It makes limited sense, a CPU has a bunch of execution units available to it and can send a few instructions out per clock. If one CPU could get access to the execution units of another CPU, then it might be able to issue more work in a clock cycle.
Thing is, you get conditional jump instructions about every 6 instructions on average which limits how many instructions you can usefully issue per clock. Then the extra wiring needed to do this would drop the clock speed you could get to as everything has a cost.
They might have been able to share SSE units though, and there are potentially quite big gains to be made there given SSE was always intended to crunch big data sets with less looping.
But then Windows would get in your way. One of your cores grabs extra SSE resources to run your game dead fast, then Windows for reasons unfathomable decides to switch that thread to another CPU and chooses one that currently has its SSE unit in use elsewhere, so the CPUs have to reconfigure themselves.
So, the CPU has to be able to reconfigure itself on the fly, per clock cycle. Shared resources across 2 CPUs with wider than normal issue to make it worthwhile. I think if you take that to its logical conclusion, you end up designing the Core I7 Hyperthreading model :D
AMD should just adopt multi-threading. IBM seem to do a cracking job with their Power architecture, hitting 5GHz with two threads per CPU, and the Intel effort is pretty effective too. Sun process massive thread pools on their slightly loopy Niagra CPU, so I don't know why AMD think they are special and can ignore the whole technology.
If SSE units can be shared, then I think I can safely assume that you can ALSO just add more SSE units to EVERY core, hence speeding it up.
Hyper-threading only helps in very few cases and I remember many reviews saying HT affects single-thread performance.
AMD have a slight advantage at the moment with 4 cores in 1 die, instead of a dual-die package like Intel. Although that left me wondering, why don't AMD just make dual-die CPU like Intel, and push out a 8-core CPU right now. Or perhaps that will affect the sale of DP QC Opteron that is very profitable in the server market?
Re: The opposite of hyperthreading
Quote:
Originally Posted by
arthurleung
If SSE units can be shared, then I think I can safely assume that you can ALSO just add more SSE units to EVERY core, hence speeding it up.
You're still limited to how many instructions you can execute per clock cycle. SIMD simply allows you to process more data per instruction, you can't just add more units and sprinkle fairy dust and expect a performance increase. Especially since lots of software still largely ignores SIMD.
Quote:
Originally Posted by
arthurleung
AMD have a slight advantage at the moment with 4 cores in 1 die, instead of a dual-die package like Intel.
i7?.. Also, there's nothing wrong with gluing two dies together in the same package, it's the same thing as adding sockets to a motherboard, only way cheaper, and way less latent.
Quote:
Originally Posted by
arthurleung
Although that left me wondering, why don't AMD just make dual-die CPU like Intel, and push out a 8-core CPU right now. Or perhaps that will affect the sale of DP QC Opteron that is very profitable in the server market?
Probably because there aren't many motherboards which can pump 250W into a socket, or have a reasonably inexpensive and compact HSF design which can dissipate 250W of energy.
Re: The opposite of hyperthreading
I've wondered for some time (10 years?!) if this was possible. Putting a layer over the CPU's which takes requests from a single threaded app and splits it across multiple cores. I'd guess the overhead in doing that would far outweigh any gains.......even if it were technically possible.
It still amazes me how many apps are still single threaded. Nothing pleases me more than seeing all 4/8/16 cores (at work) running between 80 and 100% :D
Re: The opposite of hyperthreading
Quote:
Originally Posted by
DanceswithUnix
, so I don't know why AMD think they are special and can ignore the whole technology.
You really think that's the situation? I bet AMD would secretly love to be able to do it, but can't for either technological or IP reasons.
Re: The opposite of hyperthreading
Quote:
Originally Posted by
arthurleung
If SSE units can be shared, then I think I can safely assume that you can ALSO just add more SSE units to EVERY core, hence speeding it up.
AMD's next gen Bulldozer will sort of do that (wider SSE units at least).
Quote:
Originally Posted by
arthurleung
Hyper-threading only helps in very few cases and I remember many reviews saying HT affects single-thread performance.
Only true for Pentium 4 Hyperthreading. Looking at the benchies it looks like Intel did a better job with the I7, along the lines of what IBM did with Power.
Quote:
Originally Posted by
arthurleung
AMD have a slight advantage at the moment with 4 cores in 1 die, instead of a dual-die package like Intel. Although that left me wondering, why don't AMD just make dual-die CPU like Intel, and push out a 8-core CPU right now. Or perhaps that will affect the sale of DP QC Opteron that is very profitable in the server market?
Again, that is on the AMD roadmap for the future, giving 12 cores as 2x6 and 16 as 2x8. Their mature inter processor bus technology should make that very efficient, but thermals are bound to limit the top clock speed. They are switching sockets for this exact reason, as it allows 4 memory channels to come to the outside world (2 from each core).
They aught to be able to knock something out right now though, although the motherboard might get confused to discover it has suddenly grown another logical socket :D