获得GPU温度

时间:2011-05-01 13:20:37

标签: c++ api temperature

我真的很困惑。我想创建一个应用程序,在我的显卡的不同温度下执行不同的事件,这是AMD的。

我想制作这样的应用程序的原因是因为,对于GPU我还没有找到一个,第二个是确保我永远不会因为达到巨大的温度而炒我的卡。

但是我不知道人们(没有连接到amd / intel / nvidia)如何编写应用程序来监控任何类型的温度。

那怎么回事?一些我不知道或不知道的API?

2 个答案:

答案 0 :(得分:6)

经过一段谷歌搜索后,我发现了这个:

  

我认为这确实是特定于供应商的,它可能涉及直接与主板或视频驱动程序连接,并知道哪个IOCTL代表请求温度的代码。为此目的,我反向设计了一次主板驱动程序。它并不像听起来那么难,下载制造商的主板/ BIOS实用程序并尝试挂钩当应用程序需要向用户显示温度时调用的函数。然后在Windows中调用DeviceIoControl(),或在linux中调用ioctl(),看看输入/输出是什么。

这可能是您最好的选择。我在这里找到了这个信息:
http://www.gamedev.net/topic/557599-get-gpucpu-temperature/

编辑:
也发现了这个:
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

希望它有所帮助。

答案 1 :(得分:1)

您可以使用现有的GPU温度监控程序之一,例如GPU-Z,将其配置为连续监控,并读取日志条目。

RivaTuner是另一个GPU监控程序,它有一个共享内存接口,允许其他程序实时获取数据,但是nVidia是专注的。只要您的操作不是“降低GPU时钟速度”,它就可以与ATI卡一起使用。