What is General Purpose Computing on a GPU

MetalSluggX

Limp Gawd
Joined
Jan 30, 2003
Messages
245
I read this really interesting quote, and how fast things move im curious if this is full of hot air or what may possibly occur in the future.

While feuding with Intel over a Nehalem licensing agreement, Nvidia CEO Jen-Hsun Huang said the "the CPU has run its course and the soul of the PC is shifting quickly to the GPU," a notion which refers to general purpose computing on the GPU (GPGPU). He went on to call the CPU a "decaying" business.

I'm really curious what your take is on this.
 
I think Nvidia likes to come out and say things like that because they haven't been able to capitalize on the i7 architecture yet. They like to get their panties in a bundle even though 85% of pc users are not enthusiasts and won't use GPGPU. Seems Nvidia is doing some self rationalization with words like that.
 
I think he's looking for discussion, not information...
title of thread..."What is General Purpose Computing on a GPU" . googling it would give him plenty of links to info and discussions since he doesnt seem to anything about it. ;)
 
you missed this part though

I'm really curious what your take is on this.
no I actually didnt and thats why after my google link I said that I personally hadnt paid that much attention to it. in other words I had no take on it and he should have used google to get some basic info and find out more if he was really curious about it. other than that of course it can be discussed since thats what the forums are for. ;)
 
it's a logical move, the gpu is a fairly specialized processor where as the cpu is a general purpose processor. Anything 3D, or image manipulation would work well on a gpu =)
 
I discovered google because of this post guys. Why bother using a forum now?
well I bet it answered your questions now didnt it? lol. the forums are still for the discussions and I am actually surprised more people havent responded to this thread. maybe most people are like me and just havent really even paid much attention to GPGPU.
 
It has it's uses, but mostly for video editing (encoding/transcoding) and professional medical apps.

For a general user, it's not that great unless Badaboom (transcoder) is used, but even that is limited in what it can do and it costs $$$ (not that this is a bad thing).
 
it wont affect Joe Pc User at all. GPGPU will speed up most specialized, intense processes, and already does for many things
 
GPUs are about massively parallelisable number crunching. Few applications require a lot of floating-point math, and some of those that do will be inherently sequential. CPUs are still far better suited in a typical system.
 
GPUs are about massively parallelisable number crunching. Few applications require a lot of floating-point math, and some of those that do will be inherently sequential. CPUs are still far better suited in a typical system.

But you realize that Intel and AMD are in the same boat with CPUs? With Intel trying to go all crazy parallel with CPUs, if there isn't enough work in the average PC for NVIDIAs parallel GPU there sure as hell isn't enough for a bunch of CPU cores either.

On the parallel front, they will all live or die together.

The reason Jen Hsun makes the statements (often misunderstood btw) is that a few years back CPUs were ramping up clocks to make the latest greatest CPUs. Then they hit a thermal wall in engineering, where it was getting impossible to cool the chips with air cooling as they continue to ramp up clocks. So they couldnt increase clocks anymore.

As a result of this they started going "wider" (instead of taller, which would be making a faster single core processor) by offering more cores at the same clocks as last gen, since they couldn't just double clocks anymore. With 2 or 4 cores, if your application has enough work to do that's independent of other work, you can do different work on different cores/threads. However serious problems arise when you try to split up a task that is inherently serial into something that is parallel.. it can be done, but it is hard to scale to a gazillion cores like Intel and AMD would like to. It's not that the hardware couldn't do it.. it's a logic problem.. it's insanely difficult to get the performance out of more then 4 threads or so, and it definitely isn't an automatic speed-up.

It gets exponentially harder the more cores you add, which is why the theory exists that it's not sustainable to develop for more and more cores, for many developers. Not to mention some applications simply can't benefit much (if at all) from being massively parallelized in any capacity (GPU or CPU) because they simply run fast as it is, and won't really have enough work to justify multiple threads. One more thing to keep in mind is that multi-threaded applications face a whole new set of pitfalls vs. single threaded applications, with regard to deadlocks and non-thread-safe behaviors.

Lastly, the main evidence supporting Jen Hsun's claim is that CPU ASPs (average selling price) have been in decline the last couple years, arguably because Core 2 Duo became "good enough" for average PC users daily use. Sure some still need monster Core i7 rigs for crunching data for Folding (something that is actually faster on the GPU right now anyway) or some Maya or 3D Studio Max work, but most people just surf the web and do basic stuff like listen to music.. tasks that 2-4 cores are plenty enough power for.

This is also proven by the success of netbooks.. basically Intel shot themselves in the foot by saying "Hey remember how you used to have to buy at least a cheap laptop processor to surf the web? Well now those of you who don't wanna do much more than surfing can buy an even cheaper processor that comes in a netbook."
 
it wont affect Joe Pc User at all. GPGPU will speed up most specialized, intense processes, and already does for many things

I'm glad I saw this thread and this post.
I've got an old 8600 that's gasping and wheezing it's way to the graveyard.
I think I pretty much fall into the Joe PC User catagory.
Not much gaming, some office work, music, watching videos.
Is it worth it for me to get a GTS 250 or 260-216 or the equivalent ATI card?
Or what?
Thanks.
Enjoy the weekend.
Hugger
 
It has it's uses, but mostly for video editing (encoding/transcoding) and professional medical apps.

For a general user, it's not that great unless Badaboom (transcoder) is used, but even that is limited in what it can do and it costs $$$ (not that this is a bad thing).

And for oil and gas prospecting...Actually, for any general scientific calculations, a GPU is far better than any CPU. And as far as NVIDIA is concerned, that's why they have the Tesla platform, which was born when G80 was released, but grew leaps and bounds with GT200 chips.
 
I'm glad I saw this thread and this post.
I've got an old 8600 that's gasping and wheezing it's way to the graveyard.
I think I pretty much fall into the Joe PC User catagory.
Not much gaming, some office work, music, watching videos.
Is it worth it for me to get a GTS 250 or 260-216 or the equivalent ATI card?
Or what?
Thanks.
Enjoy the weekend.
Hugger

For those tasks you really don't need a fancy GPU. If you don't game much, don't do video encoding/transcoding and don't do any kind of work in a 3D application (like CAD tools), a simple GTS 250 or HD 4850 is more than enough. You can actually save a few bucks and get a 9800 GT or HD 4770 instead, which aren't too far off (performance wise) from the GTS 250 and HD 4850 respectively.
 
Nvidia has been calling thier GPU's 'General Purpose Processors' ever since buying ageia. They were already thinking PhysX then, and wanted to get us used to the idea that our GPU's could do more than calculate Graphics.

It was smart for Nvidia to design such a General Purpose Highly Parallel Engined card, to be the thing that run's the updated Ageia software.

Given the right software, we know the card makes an excellent GPU.

Given the right software, we know the card can be responsible for only calculating ageia PhysX too.

Given the right software, we know the card can split it's resources, and calculates both graphics and PhysX data at the same time.


General Purpose Processors rule. ;)
 
But you realize that Intel and AMD are in the same boat with CPUs? With Intel trying to go all crazy parallel with CPUs, if there isn't enough work in the average PC for NVIDIAs parallel GPU there sure as hell isn't enough for a bunch of CPU cores either.

On the parallel front, they will all live or die together.

The reason Jen Hsun makes the statements (often misunderstood btw) is that a few years back CPUs were ramping up clocks to make the latest greatest CPUs. Then they hit a thermal wall in engineering, where it was getting impossible to cool the chips with air cooling as they continue to ramp up clocks. So they couldnt increase clocks anymore.

As a result of this they started going "wider" (instead of taller, which would be making a faster single core processor) by offering more cores at the same clocks as last gen, since they couldn't just double clocks anymore. With 2 or 4 cores, if your application has enough work to do that's independent of other work, you can do different work on different cores/threads. However serious problems arise when you try to split up a task that is inherently serial into something that is parallel.. it can be done, but it is hard to scale to a gazillion cores like Intel and AMD would like to. It's not that the hardware couldn't do it.. it's a logic problem.. it's insanely difficult to get the performance out of more then 4 threads or so, and it definitely isn't an automatic speed-up.

It gets exponentially harder the more cores you add, which is why the theory exists that it's not sustainable to develop for more and more cores, for many developers. Not to mention some applications simply can't benefit much (if at all) from being massively parallelized in any capacity (GPU or CPU) because they simply run fast as it is, and won't really have enough work to justify multiple threads. One more thing to keep in mind is that multi-threaded applications face a whole new set of pitfalls vs. single threaded applications, with regard to deadlocks and non-thread-safe behaviors.

Lastly, the main evidence supporting Jen Hsun's claim is that CPU ASPs (average selling price) have been in decline the last couple years, arguably because Core 2 Duo became "good enough" for average PC users daily use. Sure some still need monster Core i7 rigs for crunching data for Folding (something that is actually faster on the GPU right now anyway) or some Maya or 3D Studio Max work, but most people just surf the web and do basic stuff like listen to music.. tasks that 2-4 cores are plenty enough power for.

This is also proven by the success of netbooks.. basically Intel shot themselves in the foot by saying "Hey remember how you used to have to buy at least a cheap laptop processor to surf the web? Well now those of you who don't wanna do much more than surfing can buy an even cheaper processor that comes in a netbook."

The real reason is that a lot of programmers have problems trying to split stuff up into multiple jobs. It just isn't the way they were taught.

But for those who can grasp the concept and work with it, you can get HUGE performance gains even when having to deal with extra overhead.. depending on what you are doing.

Go here and download the newest version without multithreading and the newest version with multithreading:
http://sourceforge.net/projects/fastestprimes/

When using the multithreading version, experiment with low thread counts, medium thread count, and high thread counts. even going up to say.. 1024 threads or higher.

Also experiment with different size work units.

And if you are running a 64-bit version of Windows, try out the x64 release also.

This program was originally written to be single threaded... and IF it was using actual locks instead of how it is programmed, it would be slower than the single threaded version.

The trick is to break stuff up so you don't have to use locks - if at all possible.


And while I agree that some things are just not worth it to make multithreaded, there is a huge amount of stuff out there that could immensely benefit from it.
 
The real reason is that a lot of programmers have problems trying to split stuff up into multiple jobs. It just isn't the way they were taught.

But for those who can grasp the concept and work with it, you can get HUGE performance gains even when having to deal with extra overhead.. depending on what you are doing.

Go here and download the newest version without multithreading and the newest version with multithreading:
http://sourceforge.net/projects/fastestprimes/

When using the multithreading version, experiment with low thread counts, medium thread count, and high thread counts. even going up to say.. 1024 threads or higher.

Also experiment with different size work units.

And if you are running a 64-bit version of Windows, try out the x64 release also.

This program was originally written to be single threaded... and IF it was using actual locks instead of how it is programmed, it would be slower than the single threaded version.

The trick is to break stuff up so you don't have to use locks - if at all possible.


And while I agree that some things are just not worth it to make multithreaded, there is a huge amount of stuff out there that could immensely benefit from it.


I'm sorry but I think you are wrong. If you ask any programmer on the planet what their ideal processor is, they'd answer an infinitely fast singlethreaded processor. No one wants to have to deal with multiple cores. Especially given that working with 2 or 4 is okay, but beyond that it's extremely difficult to be efficient.

Cache conflicts, dead locks, syncing, are among the many issues. Now Intel and AMD have made great strides to eliminate these, but it's still not like you can go and code your game for 8-16 cores extremely easily today. That's why most devs don't do it... they're not lazy.. they're frustrated.

And I think your explanation for why they went multi-core is wrong.. they absolutely went that direction because they had to (due to laws of physics) not because they wanted to. Don't you think they'd have loved to just keep ramping clocks while simltaneously making more efficient micro-architectures? We'd be at 32GHz right now if it were possible with the current manufacturing processes.
 
And for oil and gas prospecting...Actually, for any general scientific calculations, a GPU is far better than any CPU. And as far as NVIDIA is concerned, that's why they have the Tesla platform, which was born when G80 was released, but grew leaps and bounds with GT200 chips.

...and I have a G80, in my sig! :D
...and a GTS250, so yeah, for video editing, for me, it is a must!

But for joe pc user, yeah, the functions are getting there, but are still very limited.
 
Back
Top