监测1070显卡温度和负载的c源代码

255 阅读1分钟

1.png

小例子: 用nvdia的开发接口,获取到显卡的温度及负载状态。

对于NVIDIA显卡,你可以使用NVAPI(NVIDIA System Management Interface)来获取显卡信息,包括温度和负载。以下是一个修改后的代码示例,使用NVAPI库来获取NVIDIA显卡信息。

首先,你需要下载并安装NVIDIA GPU SDK,其中包含了NVAPI。然后,将NVAPI库的头文件和库文件添加到你的项目中。
#include <windows.h>
#include <stdio.h>
#include "nvapi.h"

NvAPI_Status InitializeNvAPI()
{
    NvAPI_Status status = NvAPI_Initialize();
    if (status != NVAPI_OK)
    {
        printf("Failed to initialize NVAPI. Error code = 0x%x\n", status);
    }
    return status;
}

void GetGPUInfo()
{
    if (InitializeNvAPI() != NVAPI_OK)
    {
        return;
    }

    NvPhysicalGpuHandle gpuHandle;
    NvAPI_Status status = NvAPI_EnumPhysicalGPUs(&gpuHandle, 1);
    if (status != NVAPI_OK)
    {
        printf("Failed to enumerate GPUs. Error code = 0x%x\n", status);
        NvAPI_Unload();
        return;
    }

    NvU32 temperature;
    status = NvAPI_GPU_GetTemperature(gpuHandle, NVAPI_THERMAL_TARGET_GPU, &temperature);
    if (status == NVAPI_OK)
    {
        printf("GPU Temperature: %u degrees Celsius\n", temperature);
    }
    else
    {
        printf("Failed to get GPU temperature. Error code = 0x%x\n", status);
    }

    NvUUsage usage;
    status = NvAPI_GPU_GetUsages(gpuHandle, &usage);
    if (status == NVAPI_OK)
    {
        printf("GPU Load: %u%%\n", usage);
    }
    else
    {
        printf("Failed to get GPU load. Error code = 0x%x\n", status);
    }

    NvAPI_Unload();
}

int main()
{
    GetGPUInfo();
    return 0;
}


请注意,这个代码示例使用了NVIDIA的NVAPI库,其中包含了获取显卡信息的函数。在程序的开始,需要调用NvAPI_Initialize()来初始化NVAPI。此外,确保将NVAPI的头文件和库文件正确添加到你的项目中。 建议使用Microsoft Visual Studio编译即可,这个程序很简单。