我知道這是遲了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