これは2年遅れていることは知っていますが、ライブラリ指向のオプションを探している場合は、NvidiaのNVMLAPIがこれらすべてを実行します。こちらでチェックしてください!ありがたいことに、ドキュメントは本当によくできています。私はc++アプリにGPUの温度を約1時間でいじってポーリングさせました。
編集これは、GPU温度を取得するためのコードです。このコードは、1枚のカードシステムで(そのままで)機能することに注意してください。
#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;
}