2010-03-04 152 views
3

我需要为我的课程写几个关于低级视频卡控制的应用程序。 例如 - 温度,工作SM,管理对他们的访问等。OS linux,tesla c1060。NVidia视频卡 - 获取统计信息

你能给我几个建议在哪里搜索这种信息?

CUDA不提供这些功能。它必须是dev \ nvidia * probabaly的一些工作。或不?我从来没有写过这样的东西 - 任何建议都会受到欢迎。

谢谢。

UPD: nvidia-settings很不错,但并不能提供所有我需要的东西。 MB有更多的方法如何在c \ cuda的ptx上做到这一点?

回答

2

有几个选项值得思考,你可以使用guru3d.com的RivaTuner v2.24c和/或CPU-ID获取更多信息。但是,我注意到您正在使用Linux,因此您应该能够安装最新的NVidia驱动程序并运行nvidia-settings -h以查看查看温度和各种其他信息的选项。祝你好运!

+0

谢谢,nvidia-settings是很好的工具 – ShPavel 2010-03-04 12:23:47

0

如果您对支持哪些功能感兴趣,可以编写一个DirectX程序来查询该卡的功能。

2

我知道这是迟了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; 
}