Is there an easy way to read GPU temperature?

May be it’s not that CUDA question but it’s really related to CUDA computations.

As I want to monitor GPU temperature while running CUDA kernels and stop them if things goes bad (GPU overheated or fan stopped, for example). For ATI’s GPUs there is a SDK called ADL which provide easy way to read such information (temperature, fan speed, min/max rpm, etc). Is there something similar for nVidia’s GPUs? The only thing I’ve found so way is “NvCplGetThermalSettings” @ nvcpl.dll but doesn’t looks like it works under Vista 64.

Under Linux you can use the command: “nvidia-settings” which provide some useful informations.
I think that should be something similar under Windows (maybe nvidia-ntune if you have an nvidia motherboard).

Cheers,

luca

http://developer.nvidia.com/object/nvapi.html

i dont know cuda but gpu-z monitors temperatures, rivatuner is much more advanced and you can create fan profiles to match temperatures and you can display a screen overlay as well.

Thanks, Simon, that’s exactly I was looking for.

Actually I’ve started with RivaTuner and RTHMSharedMemory sample. But it’s way too advanced – RT required unsigned driver installed for Vista64 and can’t work with 4770 & Catalyst 9.9. There probably more problems with such tools while I only need to read GPU(s) temperature, nothing more. So I’m happy now with ADL & nvapi.

Under Linux ‘nvidia-smi -lso’ (or ‘-lsa’) will give you Product Name, Serial, PCI ID and Temperature for each NVIDIA card installed in your system.

[codebox]paehler@nvidia> nvidia-smi -lso

GPU 0:

Product Name		: GeForce GTX 260

Serial			: 1797460877020

PCI ID			: 5e210de

Temperature		: 48 C

GPU 1:

Product Name		: GeForce GTX 260

Serial			: 697966022924

PCI ID			: 5e210de

Temperature		: 51 C

[/codebox]