Underclocking

I’m looking at comparing the performance of an 8800 with other HPC solutions on the market. One of the big areas where the 8800 loses alot of ground is in the amount of power it uses. For example the clear speed advance runs with a clock at a quarter the speed of the 8800 but it also only uses 17Watts.

Is there any way to really underclock the 8800 (like half the speed)?
Will CUDA still work?
If this will work can someone tell me how to do it so I can recreate this in the lab and find out how the clock speed(and core voltage) affects the power usage.

Cheers,

Chris

I’m sure using some of the “tuner” programs (I haven’t used any in awhile) you can mess with the clock speed of the board, I’m doubting you’ll be able to get it to 1/2.

Also, and this is probably the more important factor, keep in mind that the power usage for transistors (of which there’s what 100 million or whatever in the gpu) is based on the SQUARE of the voltage, and linearly with frequency. The simplistic form would be something like: p=v^2*f

Which is to say, if you could lower the voltage you’d see much better “gains, (or loss)” in power usage than changing the frequency.

The number provided from NVIDIA is max power, other companies are providing average power, other just marketing numbers (like the delta between the device in use and the device idle, but the device idle consumes a fair amount of power).
You will be surprised by the real power consumption of other devices once you do real measurament (been there, done that …).

The GPU number includes all the memory consumption and the G80 is using fast GDDR3 memory that is power hungry.

I was doing some measurement of the power consumption of a Tesla Deskside yesterday and running VMD with 2 cards , it was using 250W while sustaining 500Gflops for that application. VMD has a very small memory footprint.

So at the end, look at the performance/watt for your application and do some real power measurement if you can.

Hi Chris,
Rather than trying to clock the 8800 so low, please consider trying one of the standard NVIDIA lower-clocked, fewer processor cards for your test. For example the 8600GTS (~$175) seems to draw around 60 Watts on some of my CUDA tests (and hits 70 GFLOPS on the same VMD test referenced above).

If you like, post your code and I’m happy to run it for you.

Also consider total system power utilization as well. A configuration such as the Tesla S870 only requires 1 CPU server to drive its 4x8800 GPUS.
-dh

Cheers,

Thats the kind of power consumption figures that I want to hear!

Chris

8600 is a bad solution. According to wikipedia, at least, the performance per watt is much worse. What’s needed is a card that packs as many transistors as the 8800 but runs at lower voltage.

Anyway, I think what you’re looking for, cmorrison, is the overclocking tool NiBiTor. It creates custom BIOS images and lets you set voltages not just frequencies. The voltage regulator on my 8600 is capable of four modes. Two of those are currently labeled as 1.2 and 1.32 (8600 is still new and the labels haven’t fully gotten updated yet. On a 8800 all modes are prob labeled. If not, then just take out a multimeter.)

Basically, video cards switch their voltages depending on their work. In 2D the card downclocks, in 3D it goes up. I’m not sure what mode CUDA uses, but it’s almost certainly the 3D one. A tool like NiBiTor can let you use the 2D (or lower?) voltage and probably greatly increase performance/watt. You’ll have to adjust frequency as well, of course.

Underclocking should not permanently damage your card, but it could become a pain in the ass reflashing the BIOS and also reliability testing.

To be honest, though, I haven’t tried this myself. I’d love to hear what kind of power consumption improvements this can yield.

Please note that (re)flashing the VBIOS with a VBIOS image that isn’t provided by the card vendor will violate the warranty, and could lead to unexpected behavior.

lol, it’s not unexpected if you expect it to crash. Warranty voiding is not really an issue because you can just flash it back and no one will know. These warnings are really relevant to overclockers, who can burn the chips. Underclocking is safe (but still potentially unstable). Still, I wouldn’t be surprised if under some conditions you can mess up the card and not be able to reflash it back. Maybe if the power goes out or something like this. Technically the firmware should still be resettable with jtag, but then you’ll have to go run to nvidia and they may not like you anymore.

Keep in mind, there may be other means to permanently force the card into 2D mode as well.

Still, remember that people wouldn’t be routinely doing this stuff to their $500 cards if it wasn’t at least marginally safe. If anyone is seriously set on doing this, spend time reading relevant message boards to get advice and avoid mistakes.

Just found this:
http://www.beyond3d.com/content/news/433

It’s a card with two vBIOS flash chips, and has a physical switch to select between them. This sounds really handy when experimenting with flashing, since it’s a foolproof way to undo any mistakes. Unfortunately, it’s only available on an 8600gt right now.

If you really manage to mess something up while flashing, you can usuallyboot using a (second) PCI graphics card, set that as primary, and re-flash.

The 8800 really does not underclock well. Even at 200/200 it doesn’t drop the power usage off much. Also, modifying the BIOS to change the voltage does not work.