Folding@Home Releases GPU Client
SB_SamuraiSam writes, "Today the Folding@Home Group at Stanford University released a client (download here) that allows participants to fold on their ATI 19xx series R580-core graphics cards. AnandTech reports, 'With help from ATI, the Folding@Home team has created a version of their client that can utilize ATI's X19xx GPUs with very impressive results. While we do not have the client in our hands quite yet, as it will not be released until Monday, the Folding@Home team is saying that the GPU-accelerated client is 20 to 40 times faster than their clients just using the CPU.'"
I don't have specifics for that chip, but I would guess 100-150 watts. In both performance-per-cycle and performance-per-watt, it far outstrips using a general-purpose CPU.
20x-40x the performance at 1x-3x the power usage is pretty good.
steve
Oh, you're not stuck, you're just unable to let go of the onion rings.
You wont damage your card. The GPU's cooling system is rated for keeping the GPU within its thermal design spec at full load, how long you run it doesnt matter as long as there is adequate ventilation. That applies to gaming too, so its not a problem. As to sppeding up its death, your card will become obsolete by the time that happens.
Since we're dealing with measurements (or at least simulated measurements) of the real world, the numbers are always going to be inaccurate. Even in fixed point, errors accumulate. They just accumulate in different ways.
One problem with floating point is that it risks being unrepeatable. If you don't carefully define the terms of rounding, you'll have two different machines arrive at different results on the same calculation. But as long as you pick a standard (e.g. IEEE 754), your results are repeatable. Not any more accurate, but repeatability can be important, too, when you're dealing with potentially chaotic systems.
Now, if the GPU hardware doesn't inherently support your rounding standard you'll have a hard time getting repeatable answers out of it. You can compensate but it's a pain in the nuts, and it undoes a lot of the advantage of having your math engine in hardware.
Precision is purely a matter of the number of bits you throw at the problem. Fixed point is not inherently more precise; in fact, if the numbers you're working with aren't in the middle of the range of your chosen fixed point it'll be wildly imprecise.
They may well want to use integer operations rather than floating point or fixed point. When you can redesign your operations for integer arithmetic, you get repeatable results and the operations are very, very fast. But integers can be very imprecise, for the same reason fixed-point operations are.
That's not necessarily true. It is a relatively new field of computer science, and thus there's not all that much info out there yet. But once you understand the basic concepts of general purpose GPU programming anyone can do it.
d ex.html
What's most likely is that the guys at Stanford started pushing the hardware to the limit, and in ways the driver developers might not have anticipated. Probably what they ran up against was bugs in the driver, and the help came from ATI in terms of ways to work around the bugs. Evidence backs this up from Folding@Home's GPU FAQ:
[You must use] Catalyst driver version 6.5 or version 6.10, but not any other versions: 6.6 and 6.7 will work, but at a major performance hit; 6.8 and 6.9 will not work at all.
Your next question might be, if that's true then why use ATI (who are known for poor driver quality)... it might simply be a matter of that's the hardware they had to test with, so that's what they needed to use.
At any rate, it's definitely possible to get started doing GPU programming without vendor support.
There's even some API's out there to help... The Brook C API (for doing multiprocessor programming) has a GPU version out called BrookGPU: http://graphics.stanford.edu/projects/brookgpu/in
There's even a fairly large community of people using Nvidia's own Cg library for doing general purpose stuff.
There's also GPUSort (source code available to look at), which is a high performance sorting example that uses the GPU to do the sorting, and it trounces the fastest CPUs: http://gamma.cs.unc.edu/GPUSORT/results.html
And last but not least there's the GPGPU site that is a great resource for all sorts of general purpose computing the GPUs: http://www.gpgpu.org/
The german newsticker heise.de cites 80 watts for a X1900 card while folding.
- SSE vectors are 128 bits -- that's two doubles, not eight. [There may be 8 sse registers, but that doesn't mean you can do 8 simultanous sse operations.]
- It's possible to extend precision using single-single "native pair" arithmetic. There's a paper by Dietz et al on GPGPU.org that discusses this.
This doesn't make GPUs capable of double-precision arithmetic, and doesn't mean they will replace CPUs. But it can be used expand the number of algorithms where the vast "arithmetic density advantage" of GPUs can be applied. Top-end CPUs can do 20-30 single-precision GFLOPS, GPUs have about 10x more GFLOPs in the fragment shader ALUs. That's alot of power if you can figure out how to make it work for your problem.Two problems:
1) There is no Linux GPU client (yet)
2) Many gamers who use Linux have gone nVidia due to driver support. There is no nVidia client (yet)
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
It still uses 100%. The the more GPU you have the more FPS you get.
unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
They're studying the folds of protiens. All protiens are made of chains of amino acids, but usually more than one chain, and they're folded and twisted in a precise way in order to perform their functions. Think of them as a cell's nanomachines. Some of them are so large and complicated that it takes quite a bit of CPU power to calculate how they will fold.
See also Reversible computing.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
You make a very good point.
A computer that does some task today, should -- assuming it wasn't designed to be flawed or have a fixed life expectancy from the very beginning -- still be capable of doing that task in ten years. And for the most part I think this is true; it will.
Most computers that are 10 years old still run fine today (ones that were well-made in the first place); the problem is more one of finding a purpose for them, and then finding software to run on them, then getting them to start. Actually, I would wager that lots of computers that are 20+ years old would still run fine today, depending on how they've been stored and taken care of in the interim.
The problem isn't that machines really "wear out" all that quickly; with some exceptions few do. It's more the relentless drive of increasing expectations that puts working equipment in the landfill. At least for home users; commercial users have their support contracts to worry about, so it's slightly more complicated.
Case in point: I have an Apple IIc in my closet right now, which I know for a fact works fine. I could take it out tomorrow, set it on my desk, put in Apple Write, fire it up and start typing away. Somewhere around I even have a dot-matrix serial printer that I could use to output from it. Everything that Apple advertised that computer as capable of doing, it is just as capable of doing today as it was twenty-one years ago. So why am I not using it? Why am I sitting here with a computer that's only four years old, when I have a perfectly functional computer from 1984 in my closet? It's not because I like spending money. It's because I want to do things that I can't do on an old computer. There are a lot of things that I consider necessities, or at least things that are nice enough to have that I'm willing to pay for them, that weren't possible or even considered more than a few years ago.
If you honestly think that what you can do with a computer today is all you're ever going to want to do -- that you won't see some neat feature on your friend's box in 2014 and decide that you need to have it -- then you're absolutely correct; the computer you have now is the last one you ought to ever have to buy. Realistically though, most people aren't like this; they know that the computer they have today isn't going to be something they're going to want in five or ten years, and they're not willing to pay for a machine that's built to last longer than that.
The things that people use home computers for has changed, and will continue to change, and the tasks that people want to use their computers for will drive the upgrade cycle far faster than the breakdown rate of the components does.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
In a CPU, when a node's value goes from 0->1 charge goes from the Vdd supply to various capacitances (gate capacitance, wire cap, a few other smaller sources) and then sits there. When the value goes 1->0, the capacitors discharge to ground. Flipping bits goes straight to heat (imagine taking water from the high side of a dam, putting it in a bucket, then later dumping it over the dam... you end up with heat).
My server
If you have a look around, the X1900XT actually uses about 110 watts peak, for most board suppliers. The X1900XTX only uses about 120 watts.
There's a few places that confirm this, here they show just the VGA card usage, here they show the total system power usage.