簡體   English   中英

在 C# 中讀取 GPU 溫度

[英]Read GPU temperature in C#

我想創建一個程序來監控我的 GPU 溫度 (AMD ATI HD),如果溫度低於 50C,請給我發送電子郵件。

我知道如何發送電子郵件 - 我只是不知道如何獲得溫度:/

任何幫助都會很棒!

運行 Visual Studio - 適用於 Windows 窗體(或 Java 也適用!)

安迪

II 建議你看看這里的 OpenHardwareMonitor 項目

Open Hardware Monitor 是一款免費的開源軟件,可監控計算機的溫度傳感器、風扇速度、電壓、負載和時鍾速度。

Open Hardware Monitor 支持當今主板上的大多數硬件監控芯片。 CPU溫度可以通過讀取Intel和AMD處理器的核心溫度傳感器來監測。 可以顯示 ATI 和 Nvidia 顯卡的傳感器以及 SMART 硬盤驅動器溫度。 監控值可以顯示在主窗口、可自定義的桌面小工具或系統托盤中。 Open Hardware Monitor 軟件無需安裝即可在 32 位和 64 位 Microsoft Windows XP / Vista / 7 和任何基於 x86 的 Linux 操作系統上運行。

它們是開源的,您應該能夠查看它們的代碼並在那里查看。

查看 AMD 顯示庫中的 Overdrive API。 他們有一個 C# 示例,但您必須自己將鈎子添加到溫度庫中。

AMD 顯示庫

具體: ADL2_Overdrive6_Temperature_Get (ADL_CONTEXT_HANDLE context, int iAdapterIndex, int *lpTemperature)

對於 NVIDIA 用戶...

我嘗試了 Open Hardware Monitor,它工作正常,但有時它會在拉 GPU 溫度時導致 CPU 使用率高時進入一種狀態(如果我只拉 CPU 溫度,這個問題就會消失)。

我最終使用這個 NuGet 包直接從 NVAPI 中提取溫度。

https://github.com/falahati/NvAPIWrapper

一些示例代碼看起來像...

PhysicalGPU[] gpus = PhysicalGPU.GetPhysicalGPUs();
foreach (PhysicalGPU gpu in gpus)
{
    Console.WriteLine(gpu.FullName);
    foreach (GPUThermalSensor sensor in gpu.ThermalInformation.ThermalSensors)
    {
        Console.WriteLine(sensor.CurrentTemperature);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM