 OmegaDisplaced OhioanPremium join:2002-07-30 Cheyenne, WY | Can someone explain why GPUs work better for BOINC? I've started to get back into distributed computing again (now that I finally have decent spare PCs). I've done some reading on it, and many people exclaim that GPUs are awesome for distributed computing - way better than CPUs. I don't completely understand why. I've read articles about why they are better but don't fully understand it. It just boggles my mind that a piece of hardware intended to produce video images can be so great at crunching raw data.
Can someone explain the why of this in layman's terms?
edit: mods, please do not move this to the distributed computing forums, they are not exactly burdened with an abundance of activity, and this forum has many people well versed in computer hardware knowledge. -- What smells like blue? |
|
 DarkLogixPremium join:2008-10-23 Baytown, TX kudos:3 | I'm not an expert on GPU computing but here goes
because rendering video on the fly takes alot of data being worked on at the same time they evolved a bit differantly than CPU's
they're not as flexable (or weren't at the start of Cuda/Open CL) but have many many more cores and when coded right can fly through tons of number crunching
Just think of the number of cores a highend i7 might be 6 cores (currently) plus hyper threading so lets just say 3.2GHz x 12 = 38.4Ghz
then on say a GTX580 with 512 cuda cores at 1.5Ghz = 768Ghz
so just by those numbers the CPU looks like crap of course the GPU is less flexable than a x86-64 cpu
also look at the number of transistors i7 Sandybridge-e 2,270,000,000 GTX580 3,000,000,000
and thats compairing a GPU thats over a year old to a brand new CPU |
|
|
|
 BlitzenZeusBurnt Out CynicPremium join:2000-01-13 kudos:2 Reviews:
·Frontier FiOS
| reply to Omega Tests have shown that kernels ran on a gpu can be over 100 times faster than when on a cpu. Also the gpu in a real gaming system is likely more powerful than the cpu, but a far more linear instruction set which is not directly compatible with x86 kernels.
I have a feeling gpu makers might take over a new computing market, but the base operating system will need to be rewritten to run on the new processor architecture. Intel tried to emulate the x86 on itanium, and that wasn't a success. At some point we need to move on. -- I distrust those people who know so well what god wants them to do because I notice it always coincides with their own desires- Susan B. Anthony Yesterday we obeyed kings, and bent out necks before emperors. But today we kneel only to the truth- Kahlil G. |
|
 pnjunctionTeksavvy ExtremePremium join:2008-01-24 Toronto, ON kudos:1 1 edit | reply to Omega A common encounter in the processing (and circuit design) world is that the more you customize something, the more efficient it becomes. CPUs are the most general processors, designed to load arbitrary code and run it. When you want to do something specific over and over with a CPU though, you end up with alot of overhead and waste.
This is the case with rendering graphics, ever seen how slow it goes in comparison if a CPU is used to crunch the graphics instead? Some benchmark programs do it as a CPU test and it is a slide show even with the crappiest possible picture quality.
If you look at raw processing power in terms of floating points operations the highest CPUs are about 100 GFLOPs right now while the 7970 clocks in at an insane 3800 GFLOPs. This is because it isn't bogged down by the other requirements that the CPU has and uses logic designed specifically to crunch numbers (and do limited other tasks).
Anyways I'm not a software guy but I imagine the idea is if you can tailor your software to the computing strengths of the GPU you can unleash some of that power.
This custom vs general issue comes up all of the time in the signal processing and circuit design world. Speaking of power when you are not chasing performance and want to perform a real-time task like video decoding, more efficient custom hardware burns much less electrical power than using CPU.
I can watch smooth 720p video on my phone without it even heating up because it has hardware decoding for it, meanwhile if I use a software player it will heat up like crazy and stutter. A 1 GHz CPU can't play 720p but the 200MHz GPU in the phone can, with the proper hardware and software support. |
|
 OmegaDisplaced OhioanPremium join:2002-07-30 Cheyenne, WY | reply to Omega These replies make the picture a lot clearer. Essentially GPUs have been custom designed and thus are able to operate quicker - provided the software is designed for the GPU. Since CPUs are general all purpose processors, they have to be jack of all trades, master of none while CPUs are the opposite.
Thanks! -- What smells like blue? |
|
 | reply to Omega said by Omega: ... in layman's terms? Parallel Processing |
|
 DarkLogixPremium join:2008-10-23 Baytown, TX kudos:3 | reply to BlitzenZeus I don't think GPU's will ever replace CPU's because we'll always need a genral use processor thats flexable enough to do it all, but then GPU's will likely be more and more leveraged in time
if you really want alot of GPU based power Nvidia makes some tesla cards that are basically quadro cards without a video output or DAC's and they even come in a quad setup thats rack mountable
I do look forward to when VMware finds a way to make use of GPU's for VMs |
|
 Reviews:
·Verizon Online DSL
1 edit | reply to Omega »en.bitcoin.it/wiki/Why_a_GPU_min···an_a_CPU quote: Short Answer
A CPU core can execute 4 32-bit instructions per clock (using a 128-bit SSE instruction) or 8 via AVX (256-Bit), whereas a GPU like the Radeon HD 5970 can execute 3200 32-bit instructions per clock (using its 3200 ALUs or shaders). This is a difference of 800 (or 400 in case of AVX) times more instructions per clock. As of 2011, the fastest CPUs have up to 6, 8, or 12 cores and a somewhat higher frequency clock (2000-3000 MHz vs. 725 MHz for the Radeon HD 5970), but one HD5970 is still more than five times faster than four 12-core CPUs at 2.3GHz (which would also set you back about $4700 rather than $350 for the HD5970).
quote: A GPU is a laborer
A GPU is very different. Yes, a GPU can do math, and can also do "this" and "that" based on specific conditions. However, GPU's have been designed so they are very good at doing video processing, and less executive work. Video processing is a lot of repetitive work, since it is constantly being told to do the same thing to large groups of pixels on the screen. In order to make this run efficiency, video processors are far heavier on the ability to do repetitive work, than the ability to rapidly switch tasks. GPU's have large numbers of ALU's, more so than CPU's. As a result, they can do large amounts of bulky mathematical labor in a greater quantity than CPU's.
/shrug |
|