Reverse HyperThreading? AMD's Next Marvel? Read On...

MadModMike

Distinguished
Feb 1, 2006
2,034
1
19,780
I just read that AMD is scrapping plans for K10....

AMD will have a lot of work on its hands and it remains to be seen what the company has in store to follow the K8L marchitecture, since the company ditched both K9 and K10 architectures and isn't disclosing development of new architectures.

Source: http://www.theinquirer.net/?article=30970

Or course, it is only the inquirer :)

Yea, and they also seem to think that Conroe is getting HyperTransport 3.0...

Regardless where this is being implemented, they're making it.

~~Mad Mod Mike, pimpin' the world 1 rig at a time
 

MadModMike

Distinguished
Feb 1, 2006
2,034
1
19,780
its in german,mike :cry: nine sprechen ze! so how does this idea translate to performance?what kind of alterations are needed to use one thread for multiple cores?

Imagine a Quad-Core CPU working on a Single thread, the immense performance gains will be greater than a Quad-Core working on 4 threads, the big gains will be in Gaming with heavy calculations, also letting 4 CPU's work on 2 Threads is a possibility.

~~Mad Mod Mike, pimpin' the world 1 rig at a time
 

MadModMike

Distinguished
Feb 1, 2006
2,034
1
19,780
what is a thread on a cpu?is that the pipeline?

Basically a "Thread" is part of the program broken up so that it can be done is sections, and 1 CPU w/o HyperThreading can work on 1 thread, so allowing 2 or more CPU's to work on 1 thread, means dramatic increases in performance, like Parallel Computing.

~~Mad Mod Mike, pimpin' the world 1 rig at a time
 

Bluefinger

Distinguished
Mar 10, 2006
531
0
18,980
That sounds like its going to be quite something. Practically going against what Intel have set out to do, but in the same way, will provide a decent performance boost. I will definitely be watching this space for more developments on this "Reverse Hyperthreading".
 

MadModMike

Distinguished
Feb 1, 2006
2,034
1
19,780
Not that article, there's an article that this guy goes into a great rant of how HT is to be implemented inside Conroe or some Intel chip, it's like 10 paragraphs of him saying "This is what Intel is doing" Here

~~Mad Mod Mike, pimpin' the world 1 rig at a time
 

ltcommander_data

Distinguished
Dec 16, 2004
997
0
18,980
This reverse Hyperthreading thing seems like a great idea, especially if no reprogramming is needed, allowing instant benefits from single-threaded programs on multi-core processors. They must have some interesting ways to get around the dependencies.
 

spud

Distinguished
Feb 17, 2001
3,406
0
20,780
its in german,mike :cry: nine sprechen ze! so how does this idea translate to performance?what kind of alterations are needed to use one thread for multiple cores?

Imagine a Quad-Core CPU working on a Single thread, the immense performance gains will be greater than a Quad-Core working on 4 threads, the big gains will be in Gaming with heavy calculations, also letting 4 CPU's work on 2 Threads is a possibility.

~~Mad Mod Mike, pimpin' the world 1 rig at a time

So what happens when one CPU runs into a branch stall?
 

K8MAN

Distinguished
Apr 1, 2005
839
0
18,980
its in german,mike :cry: nine sprechen ze! so how does this idea translate to performance?what kind of alterations are needed to use one thread for multiple cores?

Imagine a Quad-Core CPU working on a Single thread, the immense performance gains will be greater than a Quad-Core working on 4 threads, the big gains will be in Gaming with heavy calculations, also letting 4 CPU's work on 2 Threads is a possibility.

~~Mad Mod Mike, pimpin' the world 1 rig at a time

So what happens when one CPU runs into a branch stall?
The tech will probably only work efficiently with P4ish-type programs like encoding and well whatever else the p4 is good at. Also AMD has had 3 years to work on branch prediction so maybe they'll suprise us all :)
 

oenomel

Distinguished
Jan 23, 2006
160
6
18,685
I can't believe ActionMan didn't chime in with his keyboard.....I realize not his usual target....but seemed right up his alley...
 

gOJDO

Distinguished
Mar 16, 2006
2,309
1
19,780
what is a thread on a cpu?is that the pipeline?

Basically a "Thread" is part of the program broken up so that it can be done is sections, and 1 CPU w/o HyperThreading can work on 1 thread, so allowing 2 or more CPU's to work on 1 thread, means dramatic increases in performance, like Parallel Computing.

~~Mad Mod Mike, pimpin' the world 1 rig at a time
MIKE, 1 CPU can work on many threads, but not many CPUs on 1 thread!
Prallel Computing means many threads on two or more CPUs.
Multicpu or multicore as idea exist for many years, but the only reason why it wasn't realised earlier is becouse the limitation of the perofrmance of 1 core therefore limitng the performance of one procedural thread. That means if you need a thread to be done fast you need 1 fast core, not many slow. When parallel processing performance isn't increasing linear to the number of added cores. Depends on the kind of the running code, ex: 1 CPU at 2.2GHz will finish any SuperPI calculation faster than a multicore system with million of CPUs linked with whatever link(it might be a galium arsenide optic link with aprox 1TB/s bandwith for 128bit) at 2GHz. Parallel processing today is usefull only becouse we are in the era of multimedia, and multimeda means a SSIMD on a lot of data that can be be processed independently.
 

Legenic

Distinguished
Mar 9, 2006
148
0
18,680
MIKE, 1 CPU can work on many threads, but not many CPUs on 1 thread!
Prallel Computing means many threads on two or more CPUs.
Multicpu or multicore as idea exist for many years, but the only reason why it wasn't realised earlier is becouse the limitation of the perofrmance of 1 core therefore limitng the performance of one procedural thread. That means if you need a thread to be done fast you need 1 fast core, not many slow. When parallel processing performance isn't increasing linear to the number of added cores. Depends on the kind of the running code, ex: 1 CPU at 2.2GHz will finish any SuperPI calculation faster than a multicore system with million of CPUs linked with whatever link(it might be a galium arsenide optic link with aprox 1TB/s bandwith for 128bit) at 2GHz. Parallel processing today is usefull only becouse we are in the era of multimedia, and multimeda means a SSIMD on a lot of data that can be be processed independently.

what mike said was right, and what you said was basically also right, but I'm not sure why you said it.
 

johngoodwin

Distinguished
Dec 15, 2005
94
0
18,630
As a computer programmer who has done both single, and multi-threaded applications, I fail to understand how they would expect to execute in 2 or more threads a single process, and recombine it safely so it'll have the same effect as single threading, while still getting any significant benefit.

I have a feeling too many kooky things have been done in programs to make this a relatively unstable idea. (example, do xyz I/O operation, wait 10ms, continue, pray that I/O op is done, or another example: while file not exists, wait 10ms)

I personally avoid timed waits in my programs, but there have been times where you just do it, and move on.

Anyhow, I don't expect this idea to ever come to fruition. It would probably be easier to teach more programmers how to write multi-threaded applications. It's not all that difficult.

Just my two cents,

John
 

WINDSHEAR

Distinguished
Jan 25, 2006
626
0
18,980
MIKE, 1 CPU can work on many threads, but not many CPUs on 1 thread!
Prallel Computing means many threads on two or more CPUs.
Multicpu or multicore as idea exist for many years, but the only reason why it wasn't realised earlier is becouse the limitation of the perofrmance of 1 core therefore limitng the performance of one procedural thread. That means if you need a thread to be done fast you need 1 fast core, not many slow. When parallel processing performance isn't increasing linear to the number of added cores. Depends on the kind of the running code, ex: 1 CPU at 2.2GHz will finish any SuperPI calculation faster than a multicore system with million of CPUs linked with whatever link(it might be a galium arsenide optic link with aprox 1TB/s bandwith for 128bit) at 2GHz. Parallel processing today is usefull only becouse we are in the era of multimedia, and multimeda means a SSIMD on a lot of data that can be be processed independently.

what mike said was right, and what you said was basically also right, but I'm not sure why you said it.

uh, gOJDO was refuting at MMM said, and here you are saying both are right? that's an oxymoron, I'm afraid. You see, MMM is saying that this RHT (Reverse Hyper-Threading) makes it faster, gOJDO is saying it's slower, and I think gOJDO is right, it makes more sense. Also, there are some doubts about the feasibility of RHT.
 

spud

Distinguished
Feb 17, 2001
3,406
0
20,780
what is a thread on a cpu?is that the pipeline?

Basically a "Thread" is part of the program broken up so that it can be done is sections, and 1 CPU w/o HyperThreading can work on 1 thread, so allowing 2 or more CPU's to work on 1 thread, means dramatic increases in performance, like Parallel Computing.

~~Mad Mod Mike, pimpin' the world 1 rig at a time
MIKE, 1 CPU can work on many threads, but not many CPUs on 1 thread!
Prallel Computing means many threads on two or more CPUs.
Multicpu or multicore as idea exist for many years, but the only reason why it wasn't realised earlier is becouse the limitation of the perofrmance of 1 core therefore limitng the performance of one procedural thread. That means if you need a thread to be done fast you need 1 fast core, not many slow. When parallel processing performance isn't increasing linear to the number of added cores. Depends on the kind of the running code, ex: 1 CPU at 2.2GHz will finish any SuperPI calculation faster than a multicore system with million of CPUs linked with whatever link(it might be a galium arsenide optic link with aprox 1TB/s bandwith for 128bit) at 2GHz. Parallel processing today is usefull only becouse we are in the era of multimedia, and multimeda means a SSIMD on a lot of data that can be be processed independently.

Word.
 

nobly

Distinguished
Dec 21, 2005
854
0
18,980
As a computer programmer who has done both single, and multi-threaded applications, I fail to understand how they would expect to execute in 2 or more threads a single process, and recombine it safely so it'll have the same effect as single threading, while still getting any significant benefit.

I have a feeling too many kooky things have been done in programs to make this a relatively unstable idea. (example, do xyz I/O operation, wait 10ms, continue, pray that I/O op is done, or another example: while file not exists, wait 10ms)

I personally avoid timed waits in my programs, but there have been times where you just do it, and move on.

Anyhow, I don't expect this idea to ever come to fruition. It would probably be easier to teach more programmers how to write multi-threaded applications. It's not all that difficult.

Just my two cents,

John

As a programmer myself, I think you've hit the nail on the head.
I can see a 'background process' doing the work to determine how a single thread can be cut up into smaller bits and pieces to be executed in parallel, like loads and reads, but I think the overhead of that 'background process' would be high.

Shrug, I'll look into it when someone starts posting benchmarks on it. Until then, its not worth my time.
 

shabodah

Distinguished
Apr 10, 2006
747
0
18,980
Yeah, you and Mike are both right for the most part. Seeing this worries me a bit however. Being that programmers have had things easy until this current dual core era, and have not had to program efficiently, I almost don't want to see this as it would give them a reason to go back to their old (bloatful) ways. Having two cores working on one thread would be awesome, but having two cores work on one efficiently coded thread would be even better. Got to force their "bandaiding" to stop!
 

shinigamiX

Distinguished
Jan 8, 2006
1,107
0
19,280
Is it just me or does your logic dictate that slower, less efficient CPUs with older technology would be better for programming standards? Or am I totally missing the point here? I mean, efficient coding is good and all, but still...
 

Ycon

Distinguished
Feb 1, 2006
1,359
0
19,280
And how would Core 0 know what thread Core 1 is working on?
Sounds like it would need a "Master"-CPU to coordinate the cores.

However, development of multi-threaded software has already started even for home-users (for professionals and open-source its nothing new) so AMD is too late.

Oh, and erm... where does the shadow come from and what shadow?
 

shabodah

Distinguished
Apr 10, 2006
747
0
18,980
I think you are missing the point. My point is about efficiency. Because of how poorly software has been written for so many years, especially "Windows," software has started holding us back more than hardware. Running at 100% efficiency is almost never possible, but it makes more sense to be running a 2.0ghz CPU at 90%, than running a 3.2ghz at 40%. Because of how things are bandaided right now, due to developers depending on better hardware, half the software has to go there ridiculous translations which are much like translating from french to german, to spanish, to japanese, and then to english, after which there is still lots of code that does not serve a purpose. Strange bugs are going to occur in software, but properly written software will have very few, and will not need security patches every two weeks.