4

I am really puzzled here. I want to create an application that does different events upon different temperatures of my graphics card which is an AMD one.

The reason i want to make such an applications is because, for a GPU i haven't found one, and the second is to ensure i never fry my card by reaching enormous temps.

However i have no idea how people(not connected to amd/intel/nvidia) write applications to monitor temperatures of any kind.

So how does it happen? Some APIs i don't know or something?

3
  • 1
    Which platform are you talking about? Or are you looking for a cross-platform library? Commented May 1, 2011 at 13:21
  • 2
    Your GPU should automatically shut down if it reaches an unsafe temperature. If it doesn't, then it's badly designed... Commented May 1, 2011 at 13:21
  • OS is Windows. It may shutdown, but it may get damaged before it does so, so that is why i want to make events, just like SpeedFan, but for the GPU
    – dikidera
    Commented May 1, 2011 at 13:24

2 Answers 2

6

After a little bit of googling, i found this:

I think this is really vendor specific, it will probably involve interfacing directly with the motherboard or video driver and knowing which IOCTL represents the code for requesting the temperature. I reverse engineered a motherboard driver once for this purpose. It's not as hard as it sounds, download a manufacturer motherboard/BIOS utility and try to hook the function that gets called when that app needs to display the temperature to the user. Then watch for a call to DeviceIoControl() in Windows, or ioctl() in linux and see what the inputs / outputs are.

This may be your best bet. I found this information here:
http://www.gamedev.net/topic/557599-get-gpucpu-temperature/

Edit:
Also found this:
http://msdn.microsoft.com/en-us/library/aa389762%28v=VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa394493%28VS.85%29.aspx

Hope it helps.

1

You could use one of the existing GPU temperature monitoring programs, such as GPU-Z, configure it for continuous monitoring, and read the log entries.

RivaTuner is another GPU monitoring program, which has a shared memory interface allowing other programs to get the data in real-time, but is nVidia focused. As long as your action isn't "reduce the GPU clock speed" it'll probably work well enough with ATI cards.

Not the answer you're looking for? Browse other questions tagged or ask your own question.