GUI Java "demasiado configable" frontend Java a nvidia-smi para aquellos (como yo) que no pueden instalar nvtop de NVIDIA (por ejemplo, con error nvtop : Depends: libnvidia-compute-418 but it is not going to be installed ).

Generará un proceso nvidia-smi , aprovechando los parámetros --query-gpu=... y --loop-ms=... para analizar su salida a gráficos más bonitos y personalizables.
Es configurable a través de un archivo nvtop.properties para generar gráficos y asigna consultas de GPU específicas a gráficos (hasta 2 consultas por gráfico: una izquierda y otra derecha).
El lanzamiento contiene un frasco ejecutable compatible con Java 14 y arriba. Tenga en cuenta que el código en sí es solo 5 archivos y no usa funciones elegantes por encima de Java 8, por lo que podría recompensarse fácilmente para Java 8.
El archivo nvtop.properties contiene toda la configuración.
| Propiedad | Descripción |
|---|---|
graph.duration | El tiempo gráfico total, en segundos, de la derecha (medidas más recientes) a la izquierda (medidas más antiguas). |
graph.refresh | Activar una medida cada número de milisegundo. |
graph.ticks.time | Si> 0, la marca de tiempo de visualización marca el gráfico cada número de segundos, con el texto de la marca de tiempo correspondiente |
graph.ticks.time.format | El formato de tiempo para mostrar la marca de tiempo. Sigue el formato Java SimpleDateFormat .Por ejemplo, HH:mm:ss para mostrar 14:33:31 o HH:mma para mostrar 2:33PM . |
graph.ticks.majors | Número de divisiones principales en el eje Y (por ejemplo, 5 se dividirá en 5 secciones, 20% cada una).Las líneas serán simples. |
graph.ticks.minors | Número de divisiones menores en el eje y. Debe ser mayor que las especialidades (por ejemplo, 10 se dividirá en 10 secciones, 10% cada una).Las líneas estarán discontinuas. |
graph.background.panel | Color de fondo del área exterior de todos los gráficos (la ventana de fondo básicamente). |
graph.title.font | La fuente para todos los títulos de gráficos, según el formato Java Font.decode() . |
graph.grid | Todos los gráficos se colocan en una cuadrícula con tantas filas y columnas. El formato es <rows>,<columns> (por ejemplo, 3,2 para mostrar 3 filas y 2 columnas). |
| Propiedad | Descripción |
|---|---|
graph.ticks.color | Color de líneas de marca predeterminada, según el formato Java Color.decode() .Por ejemplo, #ff0000 es rojo puro. |
graph.background | Color de fondo para el área gráfica. |
Los paneles de gráficos se definen mediante una serie de graph.<n>.xxx Propiedades.
| Propiedad | Descripción |
|---|---|
graph.<n>.title | Título del gráfico, que se muestra en la parte superior. |
graph.<n>.background | Color de fondo para el área gráfica. Anula el graph.background predeterminado. Propiedad Background. |
graph.<n>.ticks.color | Color de líneas de tic. Anula la propiedad predeterminada graph.ticks.color . |
Los paneles de gráficos pueden mostrar dos gráficos: izquierda y derecha, que se configuran a través del graph.<n>.<left|right>.xxx Propiedades. Un panel no necesita especificar tanto left como right (en adelante, referido como pos ), pero al menos uno (obviamente).
| Propiedad | Descripción |
|---|---|
graph.<n>.<pos>.query | Consulta de GPU para gráficos (ver "consultas de GPU" a continuación). |
graph.<n>.<pos>.title | Nombre de la serie. |
graph.<n>.<pos>.min | Valor mínimo para la serie. |
graph.<n>.<pos>.max | Valor máximo para la serie. |
graph.<n>.<pos>.unit | Unidad para el valor. |
graph.<n>.<pos>.color | Color utilizado para dibujar la serie. |
Entonces puede configurar un tema oscuro (como arriba) o uno ligero:

Si no se encuentra ningún archivo nvtop.properties en el directorio de trabajo, se creará uno predeterminado con un solo gráfico que muestra el uso de GPU y memoria durante 1 minuto, actualizando 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
Primero, ejecute la siguiente línea de comandos para obtener la lista de consultas disponibles para su sistema (nota a los usuarios de Windows, es posible que deba agregar el directorio nvidia-smi.exe a Windows %PATH% :
nvidia-smi --help-query-gpu
Eso le mostrará la lista de consultas compatibles que puede intentar graficar. NB que no todos ellos devuelven valores, depende de los controladores NVIDIA, por lo que es mejor probar la salida para asegurarse de que no tenga ningún valor N/A para que sepa qué consulta funcionará y cuál no:
$ 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]
(Aquí fan.speed no se puede usar).