cat /dev/brain/rand > /srv/tumblr

Jul 01 2011

Controlling GPU temperatures

I’ve recently taken possession of two ATI 6990 graphics cards for the purposes of GPU computation. A few days ago, Paris had a “heat wave” where the temperature reached around 37°. As my apartment does not have any airconditioning, I was worried for the life of my GPUs, especially as they’re overclocked.

My solution was to run the fans at 100% and to hack up a quick program to monitor the core temperatures and adjust the clock speeds down accordingly. This is done using proportional feedback control. As changing the clock speeds flushes the pipeline, I introduced hysteresis around the target temperature. Furthermore, current loads are also monitored, and clock speeds are only incremented if the load is above a threshold. This is to prevent turning up the clock speeds while idle and then burning the GPUs as soon as they’re loaded. The clock speed range is also limited.

It seems to work ok, but the code is quite hacky and I haven’t tested it with any other cards. Moreover, the P constant for the controller was not really tuned that carefully. Use at own risk. Amazingly, it’s written for linux not plan 9.

7 notes

  1. jbedo posted this
Page 1 of 1