Not really. GPUs aren't x86. And there are only certain tasks like encoding and 3d rendering that benefit from massive parallelism. Most things the cpu would do better in. The gpu is pretty specialized and can do its job well. But there is reason we don't use gpus for everything. When you have something specialized like a GPU your only tool is a hammer and every problem looks like a nail. Needless to say hammering screws doesn't work very well.
We need cpus because they are general processing units. It is much faster and much cheaper to have a processor that is generalized handle most things than it is to have a bunch of super specialized processors. Gpus exist because we have decided that graphics is important enough to warrant its own cpu. Now it is true that the architecture best for graphics can also have speed benefits in other things, but there is no way a gpu can replace a cpu.
You know, Intel would actually argue the other side that CPUs are better at graphics than gpus. Case in point Larrabee. essentially 80 Pentium 2s stuck together. They are banking that it will be easier to code video games on an x86 chip that is dedicated to graphics than on a specialized gpu with its own machine code.
The whole point of cuda is to make gpu's perform under x86 instructions.
No, they are not natively x86...but with cuda, yes they are. And theyre not just a little bit faster man, theyre loads faster.
Even a quad-core running smp (which takes advantage of all cores) at 4ghz cant keep up with a 8800 series card.
If you look at all those articles, youll see how many people are adding gpu's to their arsenal.
Still dont believe me that F@H is an x86 based app??
Look at the logfile below from one of my gpu's, take note where it says the info about the compiler:
Code:
[21:51:14] - Ask before connecting: No
[21:51:14] - User name: ricanflow (Team 12864)
[21:51:14] - User ID: 3AAB9C1551DA749B
[21:51:14] - Machine ID: 1
[21:51:14]
[21:51:14] Loaded queue successfully.
[21:51:14] Initialization complete
[21:51:14]
[21:51:14] + Processing work unit
[21:51:14] Core required: FahCore_11.exe
[21:51:14] Core found.
[21:51:14] Working on queue slot 08 [December 1 21:51:14 UTC]
[21:51:14] + Working ...
[21:51:15]
[21:51:15] *------------------------------*
[21:51:15] Folding@Home GPU Core - Beta
[21:51:15] Version 1.19 (Mon Nov 3 09:34:13 PST 2008)
[21:51:15]
[21:51:15] Compiler : Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
[21:51:15] Build host: amoeba
[21:51:15] Board Type: Nvidia
[21:51:15] Core :
[21:51:15] Preparing to commence simulation
[21:51:15] - Looking at optimizations...
[21:51:15] - Files status OK
[21:51:15] - Expanded 96785 -> 489240 (decompressed 505.4 percent)
[21:51:15] Called DecompressByteArray: compressed_data_size=96785 data_size=489240, decompressed_data_size=489240 diff=0
[21:51:15] - Digital signature verified
[21:51:15]
[21:51:15] Project: 5754 (Run 6, Clone 38, Gen 3)
[21:51:15]
[21:51:15] Assembly optimizations on if available.
[21:51:15] Entering M.D.
[21:51:21] Will resume from checkpoint file
[21:51:22] Working on Protein
[21:51:24] Client config found, loading data.
[21:51:24] Starting GUI Server
[21:51:24] Resuming from checkpoint
[21:51:24] Verified work/wudata_08.log
[21:51:24] Verified work/wudata_08.edr
[21:51:24] Verified work/wudata_08.xtc
[21:51:24] Completed 24%
[21:53:33] Completed 25%
Yes, we still need cpu's im not debating that, but modern day gpu's are incredibly faster.
Now the first generation GPU client wasnt x86 based, it actually ran off directx (hence why it was much slower, and unstable as heck) and it relied off acting as if it were playing a game. this caused a lot of troubles down the line. The gpu's also only had pixel pipelines, instead of shaders.
For example:
Pentium 4 @ 3ghz = 300ppd
X1650XT = 500ppd
PS3 = 900ppd
Q6600 @ 4ghz = 3500ppd
8800GTS 512 = 6000ppd