NVIDIA VideoCards - Obtendo estatística
-
24-09-2019 - |
Pergunta
Preciso escrever poucos aplicativos sobre o controle de videocard de nível baixo para o meu curso. Por exemplo - temperatura, trabalhando SM's, gerenciando o acesso a eles, etc. OS Linux, Tesla C1060.
Você poderia me dar alguns conselhos onde pesquisar esse tipo de informação?
O CUDA não fornece esses recursos. Deve ser algum trabalho com probabalia dev nvidia*. ou não? Eu nunca escrevi algo assim - qualquer conselho seria bem -vindo.
Obrigado.
UPD: NVIDIA Settings é bom, mas não fornece tudo o que eu preciso. MB Há mais algumas maneiras de fazer isso no PTX de C cuda?
Solução
Algumas opções surgem à mente, você pode usar o Rivatuner v2.24c do guru3d.com e/ou CPU-ID para obter mais informações. No entanto, acabei de notar que você está usando o Linux para poder instalar os drivers NVIDIA mais recentes e executar nvidia-settings -h
Para ver as opções para visualizar a temperatura e várias outras informações. Boa sorte!
Outras dicas
Eu sei que isso está com 2 anos de atraso, mas se você está procurando uma opção de opção orientada para a biblioteca, a API da NVML da NVIDIA faz tudo isso. Confira aqui! Felizmente, a documentação é muito bem feita. Eu tinha meu aplicativo C ++ pesquisando a temperatura da minha GPU em cerca de uma hora mexendo com ele.
Editar aqui está algum código para obter a temperatura da GPU. Observe que esse código funciona (como está) para um sistema de um cartão.
#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;
}
Você pode escrever um programa DirectX para consultar os recursos do cartão, se estiver interessado em quais funções ele suporta.