O front-end da GUI Java "excessivamente confundível" para nvidia-smi para aqueles (como eu) que não podem instalar o nvtop da NVIDIA (por exemplo, com erro nvtop : Depends: libnvidia-compute-418 but it is not going to be installed ).

Ele gerará um processo nvidia-smi , alavancando os --query-gpu=... --loop-ms=... parâmetros de parâmetros para analisar seus gráficos mais agradáveis e personalizáveis.
É configurável por meio de um arquivo nvtop.properties para gerar gráficos e mapear consultas GPU específicas para gráficos (até 2 consultas por gráfico: uma esquerda e outra à direita).
A liberação contém um frasco executável compatível com o Java 14 ou mais. Observe que o código em si tem apenas 5 arquivos e não usa recursos sofisticados acima do Java 8, para que possa ser facilmente recompilado para o Java 8.
O arquivo nvtop.properties contém toda a configuração.
| Propriedade | Descrição |
|---|---|
graph.duration | O tempo total gráfica, em segundos, da direita (medidas mais recentes) à esquerda (medidas mais antigas). |
graph.refresh | Acionar uma medida cada número de milissegundos. |
graph.ticks.time | Se> 0, exibir timestamp marchos no gráfico a cada número de segundos, com o texto de registro de data e hora correspondentes |
graph.ticks.time.format | O formato de tempo para exibir o registro de data e hora. Segue o formato Java SimpleDateFormat .Por exemplo, HH:mm:ss para exibir 14:33:31 ou HH:mma para exibir 2:33PM . |
graph.ticks.majors | O número de divisões principais no eixo y (por exemplo, 5 se dividirá em 5 seções, 20% cada).As linhas serão simples. |
graph.ticks.minors | Número de divisões menores no eixo y. Deve ser maior que os principais (por exemplo, 10 se dividirá em 10 seções, 10% cada).As linhas serão tracejadas. |
graph.background.panel | Cor de fundo da área externa de todos os gráficos (o fundo da janela basicamente). |
graph.title.font | A fonte para todos os títulos de gráficos, conforme o formato Java Font.decode() . |
graph.grid | Todos os gráficos estão posicionados em uma grade com essas linhas e colunas. O formato é <rows>,<columns> (por exemplo, 3,2 para exibir 3 linhas e 2 colunas). |
| Propriedade | Descrição |
|---|---|
graph.ticks.color | Linhas de carrapato padrão cor, conforme o formato Java Color.decode() .Por exemplo, #ff0000 é vermelho puro. |
graph.background | Cor de fundo para a área de gráfico. |
Os painéis gráficos são definidos por séries de graph.<n>.xxx Propriedades.
| Propriedade | Descrição |
|---|---|
graph.<n>.title | Título do gráfico, exibido na parte superior. |
graph.<n>.background | Cor de fundo para a área de gráfico. Substitui a propriedade graph.background padrão. |
graph.<n>.ticks.color | Tick Lines Color. Substitui a propriedade Padrão graph.ticks.color . |
Os painéis do gráfico podem exibir dois gráficos: esquerda e direita, que são configurados através do graph.<n>.<left|right>.xxx Propriedades. Um painel não precisa especificar a left ou right (daqui em diante chamado pos ), mas pelo menos um (obviamente).
| Propriedade | Descrição |
|---|---|
graph.<n>.<pos>.query | Consulta de GPU para gráfico (consulte "Consultas da GPU" abaixo). |
graph.<n>.<pos>.title | Nome da série. |
graph.<n>.<pos>.min | Valor mínimo para a série. |
graph.<n>.<pos>.max | Valor máximo para a série. |
graph.<n>.<pos>.unit | Unidade para o valor. |
graph.<n>.<pos>.color | Cor usada para desenhar a série. |
Então você pode configurar um tema sombrio (como acima) ou um leve:

Se nenhum arquivo nvtop.properties for encontrado no diretório de trabalho, um padrão será criado com um único gráfico mostrando o uso da GPU e da memória por 1 minuto, refrescante a cada segundo:

graph.refresh=1000
graph.duration=60
graph.1.title=System
graph.1.left.title=GPU
graph.1.left.query=utilization.gpu
graph.1.left.min=0
graph.1.left.max=100
graph.1.left.unit=%
graph.1.right.title=RAM
graph.1.right.query=memory.used
graph.1.right.min=0
graph.1.right.max=8192
graph.1.right.unit=MiB
Primeiro, execute a seguinte linha de comando para obter a lista de consultas disponíveis para o seu sistema (anote aos usuários do Windows, pode ser necessário adicionar diretório nvidia-smi.exe ao Windows %PATH% :
nvidia-smi --help-query-gpu
Isso mostrará a lista de consultas suportadas que você pode tentar representar graficamente. NB que nem todos eles realmente retornam valores, depende dos motoristas da NVIDIA, por isso é melhor testar a saída para garantir que você não tenha nenhum valores N/A para saber qual consulta funcionará e qual não será:
$ nvidia-smi --format=csv,noheader,nounits --loop-ms=1000 --query-gpu=timestamp,utilization.gpu,utilization.memory,memory.used,fan.speed
2021/09/06 15:31:25.590, 82, 14, 2890, [N/A]
2021/09/06 15:31:26.591, 64, 24, 2890, [N/A]
2021/09/06 15:31:27.592, 71, 24, 2890, [N/A]
(aqui fan.speed não é utilizável).