GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
GPU – do you?
Jon Sonntag (Collatz) helps you find out – Part 1
What's all the fuss about GPU (video card) computing, and is it worth the effort? Do you still use exclusively your CPU for Distributed Computing and BOINC? Did you consider using your video card or do you already have some experience in GPU computing and consider doing upgrades? Is your old video card still helpful for computing? Jon Sonntag, project developer and administrator of Collatz Conjecture, helps you find out.
Secrets of performance: like a group of high school girls going to the bathtub
Hi Jon, Collatz has been one of the first projects focusing strongly on GPU computing. Now, if I was just starting BOINC with a decent computer having a medium or low end GPU, would you advise me to do GPU computing on it?
Absolutely. Even the slowest GPU can match the speed of a CPU. While Collatz was begun with GPU computing in mind, there are applications for CPUs as well.
http://img267.imageshack.us/img267/9...aporxv1102.jpg
PCB view on one of the most successful GPU computing video cards, the Radeon HD 5870.
Source: PC Games Hardware
How is it possible that a small GPU can outperform almost any brand new high end CPU?
GPUs calculate the colors for every pixel on the screen. They also calculate how to smooth the edges images, fade from one color to another, etc. To do that, GPUs have hundreds or even thousands of very small processors. GPUs can't do all the things a CPU can do such as communicate with memory, hard drives, the motherboard, etc. Like a group of high school girls going to the bathroom, GPU processors all have to do the same thing at the same time, otherwise known as parallel processing.
If one GPU processor needs to do something different, all the other processors have to wait until it is done. Lastly, the calculations can't be too complicated or take too long to complete. So, not every problem to be solved fits those criteria. For the ones that do, they benefit from having hundreds of GPU processors instead of only a few CPU cores to do the calculations.
For CPUs still Moore's law is valid that says computing power doubles every second year. For years now GPUs seemed growing way beyond this. How is this possible?
It all depends upon how you look at it. My AMD 4000+ has a faster clock speed than my Intel i7 950. But, my i7 can run 8 workunits at a time because it has 4 hyperthreaded cores. GPU processors haven't really increased that much in clock speed. The manufacturers have just packed more processors into the same amount of space. For example, a Radeon HD 3870 X2 runs at 825 MHz, has 1332 stream processors and has 1 teraFLOP of computing power. Since it is 4 years old, double the teraFLOPS twice and you have 4 teraFLOPS expected from a top of the line GPU today. Do we? Yes. A Radeon HD 7970 runs at 1Ghz (20% faster) but uses 2048 stream processors and generates 4.3 TeraFLOPS of computing power.
Note: I used a 3870 X2 in the example because it is about the same physical size as the dual slot HD 7970. The best part is that the 7970 requires 50W LESS power to run -- if you can afford the price tag.
http://imageshack.us/a/img41/2656/nvidia8400gs.jpg
One of the very first CUDA-capable video cards: a Geforce 8400 GS
Present and future: Tom Cruise and Dustin Hoffman in 'Rain Man'
Do you expect GPU computing to become more important over the next years?
For problems that can be solved using parallel processing, absolutely. In the past, it was very difficult to write software for GPUs. NVIDIA's CUDA toolkit made it easier. AMD's Brook+ never fully matured and AMD's CAL was too much like assembly language and difficult to learn. Now that BOINC supports OpenCL on GPUs, projects can write applications that will run on NVIDIA or AMD on OS X, Linux, and Windows with just minor changes.
How do you rate the quality and diversity of projects offering GPU computing today?
GPU computing has caught on the last couple years, but it has a way to go. At last count, only 25% of BOINC projects support GPUs and several only support either NVIDIA or AMD but not both. The good news is that the projects are spread across multiple areas from space science to protein structure prediction. The quality varies. PrimeGrid's applications are always rock solid while others such as Donate have severe stability issues for some people.
POEM needs 6 CPU cores to keep a single HD 6970 at 88% load and yet they consider that to be a GPU application. I guess they failed mathematics. There are several others which are also more of a CPU hybrid than GPU application. I think we will see more CPU/GPU hybrid applications as the OpenCL framework matures and as more developers learn to use it. Hopefully, those who have written some of the hybrid applications will improve them to where they are truly GPU applications.
http://imageshack.us/a/img803/4188/radeonhd2400.jpg
Early ATI Stream card: an ASUS Radeon 2400 pro
Source: ozone3d.net
But there are projects who don't offer GPU apps. Couldn't they work much faster if they did?
Most would gain some benefit, but many of the algorithms are too complex or contain too many conditional operations or loops of an unknown size to run really well on a GPU. Einstein and POEM's applications are examples of what doesn't work as well. While they can do GPU calculations, they don't fully utilize the GPU and require a 100% of a CPU core in addition. I would consider those CPU applications that use part of a GPU. They do work faster though, so there is benefit to the project to offload some of the computations to the GPU.
I like to think of utilizing a PC's CPU and GPU resources much like how a business utilizes its employee resources. The database administrator should handle all the database tasks and the network administrator should handle the networking tasks. If there are lots of database tasks to do and no networking tasks, the network administrator may be able to help with the database tasks but won't be as fast or efficient as the database administrator.
Likewise, GPUs have certain types of computations at which they excel while CPUs have other types of computations at which they excel. If your GPU isn't being used at all, using 40% of it to help with a CPU task is of benefit. But, if you have both types of computations on which to work, I prefer to have the GPU work on computations where it excels and have the CPU work on computations where it excels. Otherwise, it is a waste of resources.
http://imageshack.us/a/img259/1400/rainmane.jpg
GPU vs CPU: who is better... Well, at what?
Will we all be just using our GPUs one day?
No. At least not in their present form. If you remember the movie Rain Man starring Tom Cruise and Dustin Hoffman, a GPU would be like Dustin Hoffman's character Raymond in that movie, an autistic savant, which can do one thing really really well. A CPU is more like Tom Cruise's character Charlie who is, compared to his brother, a jack of all trades. GPUs can't read data from hard drives, do multiple tasks at once, etc.
Companies are creating OpenCL computing devices for specific types of computations and as OpenCL matures, you will see a greater number of computations being offloaded to the GPU, but they won't ever replace a CPU.
Jon, thank you for taking your time and helping find out. I think you may have inspired some long-term crunchers to try what they can do on their GPU, no matter if old or brand new.
This was the first part of the interview with Jon Sonntag. In the second part we will talk about old video cards, laptops and the true reason behind his nickname Slicker. And finally Jon will give you a number of helpful tips on how to get started. The complete interview with Jon Sonntag will be available as blog and as pdf download.
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Thank you for your efforts Matt, I think it is an excellent article..>:/:-bd
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Nicely done. Let's post this as an article and perhaps add it to our next blast. F$, have at it. :o
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Quote:
Originally Posted by
Mike029
Nicely done. Let's post this as an article and perhaps add it to our next blast. F$, have at it. :o
+++1. It will be done!
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Thank you for the feedback. :)
I am about to release part 2 of the interview in a new thread in here. During the next week I will finally try merging both threads into one blog and add a download link to the complete interview with Jon as pdf file.
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Let me know if you want the pdf hosted here on the site
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Quote:
Originally Posted by
Bok
Let me know if you want the pdf hosted here on the site
Hey BOK, that reminds me. Does the directory containing the Team Badges have public access rights? Also, does the html file for them need editing? If so I will make the changes.
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
Quote:
Originally Posted by
Bok
Let me know if you want the pdf hosted here on the site
Thanks for the offer, Bok. :cool: I thought of using gdocs, but I think it would be great to have it right here.
Re: GPU – do you? Jon Sonntag (Collatz) helps you find out – #1
It's owned by the setiusa userid if that's what you mean.