获取GPU温度

4
我很困惑。我想创建一个应用程序,根据我的AMD显卡的不同温度执行不同的事件。
我想要创建这样一个应用程序是因为我没有找到适用于GPU的应用程序,并且第二个原因是确保我不会因为达到巨大的温度而损坏我的显卡。
然而,我不知道那些与AMD / Intel / Nvidia无关的人如何编写任何类型的温度监控应用程序。
那么它是如何发生的?一些我不知道的API或其他什么东西吗?

1
你在说哪个平台?还是你在寻找一个跨平台的库? - Matti Virkkunen
2
如果您的GPU达到了不安全的温度,它应该会自动关闭。如果没有关闭,那么它的设计很糟糕... - Oliver Charlesworth
操作系统是Windows。它可能会关闭,但在这样做之前可能会受到损坏,因此我想创建事件,就像SpeedFan一样,但是针对GPU。 - dikidera
2个回答

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接