我需要为我的课程编写一些关于低级显卡控制的应用程序。例如 - 温度、工作 SM、管理对它们的访问等 OS linux、tesla c1060。
你能给我一些建议在哪里搜索这类信息吗?
CUDA 不提供这些功能。它必须与 dev\nvidia* 一起工作。或不?我从来没有写过这样的东西 - 欢迎任何建议。
谢谢。
UPD:nvidia-settings 很好,但不能提供我需要的所有东西。Mb 还有更多方法可以在 c\cuda 的 ptx 上实现吗?
我需要为我的课程编写一些关于低级显卡控制的应用程序。例如 - 温度、工作 SM、管理对它们的访问等 OS linux、tesla c1060。
你能给我一些建议在哪里搜索这类信息吗?
CUDA 不提供这些功能。它必须与 dev\nvidia* 一起工作。或不?我从来没有写过这样的东西 - 欢迎任何建议。
谢谢。
UPD:nvidia-settings 很好,但不能提供我需要的所有东西。Mb 还有更多方法可以在 c\cuda 的 ptx 上实现吗?
我知道这已经晚了 2 年,但是如果您正在寻找面向库的选项,Nvidia 的 NVML API 可以完成所有这些。看看这里!谢天谢地,文档做得很好。我让我的 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;
}
有几个选项浮现在脑海中,您可以使用 guru3d.com 的 RivaTuner v2.24c 和/或 CPU-ID 获取更多信息。但是,我刚刚注意到您使用的是 Linux,因此您应该能够安装最新的 NVidia 驱动程序并运行nvidia-settings -h
以查看查看温度和各种其他信息的选项。祝你好运!
如果您对它支持的功能感兴趣,您可以编写一个 DirectX 程序来查询卡的功能。