获取NVIDIA显卡的温度

NVIDIA显卡在硬件上有温度传感器,可以感知显卡的运行环境。温度数据的获取,一般是通过调用NVIDIA的SDK的相关函数即可。SDK的下载的网址(https://developer.nvidia.com/nvapi),里面有一些sample code可以参考。获取温度的函数是NvAPI_GPU_GetThermalSettings。参考代码如下:

int main()
     {
        NvAPI_Status ret = NVAPI_OK;
        ret = NvAPI_Initialize();

        if(ret != NVAPI_OK)
        {
            printf("NvAPI_Initialize() failed = 0x%x", ret);
            return 1; // Initialization failed
        }

        NvPhysicalGpuHandle hPhysicalGpu[NVAPI_MAX_PHYSICAL_GPUS];

        for (NvU32 PhysicalGpuIndex = 0; PhysicalGpuIndex < NVAPI_MAX_PHYSICAL_GPUS; PhysicalGpuIndex++)
        {
            hPhysicalGpu[PhysicalGpuIndex]=0;
        }

         ret = NvAPI_EnumPhysicalGPUs(hPhysicalGpu, &physicalGpuCount);
        if(ret != NVAPI_OK)
        {
            printf("Cannot enumerate GPUs in the system...\n");
            getchar();
            exit(1);
        }

        NV_GPU_THERMAL_SETTINGS currentTemp;//获取温度的数据结构
        currentTemp.version = NV_GPU_THERMAL_SETTINGS_VER;//一定要设置,不然调用获取温度函数时候会出错
        for(NvU32 GpuIndex = 0; GpuIndex < physicalGpuCount; GpuIndex++)
        {
            ret = NvAPI_GPU_GetThermalSettings(hPhysicalGpu[PhysicalGpuIndex], NVAPI_THERMAL_TARGET_ALL,¤tTemp);//获取温度
            if(ret == NVAPI_OK)
            {
                printf("current temperature=%d\n",currentTemp.sensor[0].currentTemp);
            }

        }

        return 0;
     }


转载于:https://www.cnblogs.com/mao0504/p/5619104.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值