Ler Temperatura Placa de Video NVIDIA

26 de janeiro de 2021 Off Por Marcelo Martins

Falaremos neste artigo, como obter a temperatura da placa de Vídeo (GPU) NVIDIA.

Abordaremos o procedimento mais simples de integração, e leitura das informações da placa de vídeo, integrando com Lazarus.

A placa de vídeo, hoje é requisito obrigatório para qualquer computador realmente robusto.

Placas de vídeo com grande capacidade, por vezes precisam ser monitoradas para evitar super aquecimento .

Atualmente projetos de CASEMOD não seriam realmente case mode, se não lerem estas informações.

Pensando nisso a NVIDIA, lançou um conjunto de ferramentas que auxiliam o desenvolvedor na obtenção de forma fácil e assertiva, na leitura das informações da GPU.

O NVIDIA System Management Interface é um utilitário, baseado no NVML (NVIDIA MANAGEMENT Library) que gerencia e monitora dispositivos NVIDIA.

Este utilitário tambem administra por pesquisas por estado de dispositivo GPU , atribuindo privilegios , permitindo administradores modificares o estado da GPU.

NVIDIA-smi é embarcado com o driver para linux do NVIDIA GPU , e windows 64bits (WIN7/2008).

O NVIDIA-smi pode fornecer informações em formato XML ou em arquivo texto simples.

Para maiores informações consulte a documentação:

nvidia-smi documentation.

O fragmento acima é uma tradução livre do site:

https://developer.nvidia.com/nvidia-system-management-interface

Integração com LAZARUS

O Componente TProcess , permite a integração de comandos através da console.

Segue o fragmento de código para analise.

function GetGPUTemperature: string;
var
cmd : TProcess;
AStringList: TStringList;
begin
cmd := TProcess.Create(nil);
// Cria o objeto TStringList.
AStringList := TStringList.Create;
cmd.CommandLine:='nvidia-smi -i 0 --format=csv,noheader --query-gpu=temperature.gpu';

cmd.Options := cmd.Options + [poWaitOnExit, poUsePipes];
cmd.Execute;
AStringList.LoadFromStream(cmd.Output);
result := trim(AStringList.Text);
AStringList.Free;
cmd.Free;
end;

Download

Documentação da API

https://docs.nvidia.com/deploy/nvml-api/index.html

Documentação nvidia-smi

http://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf

Download do CUDA Toolkit 3.2

https://developer.nvidia.com/cuda-toolkit-32-downloads

Caminho no pc após instalação:

C:\Program Files\NVIDIA Corporation\NVSMI