我知道这是迟了2年,但如果您正在寻找一个面向库的选项,Nvidia的NVML API可以完成所有这些。看看吧here!谢天谢地,文档做得非常好。我有我的C++应用程序在大约一个小时内查询我的GPU温度。
编辑 这里有一些代码来获得GPU温度。请注意,此代码对于单卡系统(按原样)起作用。
#include "nvml.h"
using namespace std;
Nvidia::Nvidia()
{
nvmlInit();
}
Nvidia::~Nvidia()
{
//dtor
}
unsigned int Nvidia::FetchTemp()
{
unsigned int DeviceCount;
nvmlReturn_t Rval=nvmlDeviceGetCount(&DeviceCount); //return type enum
if(Rval!=0)
{
//Card read error
return 0;
}
//Turn Count into index
DeviceCount--;
//Get Prereqs
nvmlDevice_t Device;
Rval=nvmlDeviceGetHandleByIndex(DeviceCount,&Device);
if(Rval!=0)
{
//Card read error
return 0;
}
nvmlTemperatureSensors_t TSensors=NVML_TEMPERATURE_GPU;
//Get Temperature
unsigned int Temp=0;
Rval=nvmlDeviceGetTemperature(Device,TSensors,&Temp);
if(Rval!=0)
{
//Card read error
return 0;
}
return Temp;
}
谢谢,nvidia-settings是很好的工具 – ShPavel 2010-03-04 12:23:47