Le frontage Java GUI "trop configurable" à nvidia-smi pour ceux (comme moi) qui ne peuvent pas installer NVIDIA's nvtop (par exemple avec l'erreur nvtop : Depends: libnvidia-compute-418 but it is not going to be installed ).

Il engendrera un processus nvidia-smi , en tirant parti du --query-gpu=... et --loop-ms=... paramètres pour analyser son ouput à des graphiques plus agréables et personnalisables.
Il est configurable via un fichier nvtop.properties pour engendrer des graphiques et mapper des requêtes GPU spécifiques aux graphiques (jusqu'à 2 requêtes par graphique: une gauche et une droite).
La version contient un pot à courir compatible avec Java 14 et plus. Notez que le code lui-même ne fait que 5 fichiers et n'utilise pas de fonctionnalités sophistiquées au-dessus de Java 8, il pourrait donc être facilement recompilé pour Java 8.
Le fichier nvtop.properties contient toute la configuration.
| Propriété | Description |
|---|---|
graph.duration | Le temps graphique total, en quelques secondes, de droite (mesures les plus récentes) à gauche (mesures les plus anciennes). |
graph.refresh | Déclenchez une mesure chaque nombre de millisecondes. |
graph.ticks.time | Si> 0, afficher l'horodatage des tiques sur le graphique chaque nombre de secondes, avec un texte horodat |
graph.ticks.time.format | Le format de temps pour afficher l'horodatage. Il suit le format Java SimpleDateFormat .EG HH:mm:ss Afficher 14:33:31 ou HH:mma pour afficher 2:33PM . |
graph.ticks.majors | Nombre de divisions principales sur l'axe Y (par exemple 5 se divisera en 5 sections, 20% chacune).Les lignes seront simples. |
graph.ticks.minors | Nombre de divisions mineures sur l'axe Y. Devrait être supérieur aux majors (par exemple, 10 se divisera en 10 sections, 10% chacune).Les lignes seront anéanties. |
graph.background.panel | Couleur d'arrière-plan de la zone extérieure de tous les graphiques (l'arrière-plan de la fenêtre essentiellement). |
graph.title.font | La police pour tous les titres de graphiques, selon Java Font.decode() . |
graph.grid | Tous les graphiques sont positionnés sur une grille avec autant de lignes et de colonnes. Le format est <rows>,<columns> (par exemple 3,2 pour afficher 3 lignes et 2 colonnes). |
| Propriété | Description |
|---|---|
graph.ticks.color | Couleur des lignes de tick par défaut, selon Java Color.decode() .Par exemple, #ff0000 est du rouge pur. |
graph.background | Couleur d'arrière-plan pour la zone graphique. |
Les panneaux graphiques sont définis par des séries de propriétés graph.<n>.xxx .
| Propriété | Description |
|---|---|
graph.<n>.title | Titre du graphique, affiché sur le dessus. |
graph.<n>.background | Couleur d'arrière-plan pour la zone graphique. Remplace la propriété graph.background par défaut. |
graph.<n>.ticks.color | Cochez la couleur des lignes. Remplace la propriété graph.ticks.color par défaut. |
Les panneaux de graphique peuvent afficher deux graphiques: gauche et droite, qui sont configurés via le graph.<n>.<left|right>.xxx Propriétés. Un panneau n'a pas besoin de spécifier à la fois left ou right (ci-après référé en tant que pos ), mais au moins un (évidemment).
| Propriété | Description |
|---|---|
graph.<n>.<pos>.query | GPU Query to Graph (voir "GPU Queries" ci-dessous). |
graph.<n>.<pos>.title | Nom de la série. |
graph.<n>.<pos>.min | Valeur minimale pour la série. |
graph.<n>.<pos>.max | Valeur maximale pour la série. |
graph.<n>.<pos>.unit | Unité pour la valeur. |
graph.<n>.<pos>.color | Couleur utilisée pour dessiner la série. |
Ainsi, vous pouvez configurer soit un thème sombre (comme ci-dessus) ou un léger:

Si aucun fichier nvtop.properties ne se trouve dans le répertoire de travail, un par défaut sera créé avec un seul graphique montrant l'utilisation du GPU et de la mémoire pendant 1 minute, rafraîchissant chaque seconde:

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
Tout d'abord, exécutez la ligne de commande suivante pour obtenir la liste des requêtes disponibles pour votre système (note aux utilisateurs de Windows, vous devrez peut-être ajouter le répertoire nvidia-smi.exe à Windows %PATH% :
nvidia-smi --help-query-gpu
Cela vous montrera la liste des requêtes prises en charge que vous pouvez essayer de graphiquement. NB que tous ne renvoient pas les valeurs, cela dépend des pilotes NVIDIA, il est donc préférable de tester la sortie pour vous assurer que vous n'avez pas de valeurs N/A afin que vous sachiez quelle requête fonctionnera et ce qui ne fonctionnera pas:
$ 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]
(ici fan.speed n'est pas utilisable).