NVIDIAのnvtopをインストールできない人(私のような)のために、「過度に構成可能な」GUI Java Frontendへのnvidia-smiへのフロントエンド(emror nvtop : Depends: libnvidia-compute-418 but it is not going to be installed )。

nvidia-smiプロセスを生成し、 --query-gpu=...および--loop-ms=...パラメーターを活用して、より良いカスタマイズ可能なグラフにそのouputを解析します。
nvtop.propertiesファイルを介してグラフを生成し、特定のGPUクエリをグラフにマッピングするように構成できます(グラフごとに最大2つのクエリ:1つの左と右)。
このリリースには、Java 14以降と互換性のある実行可能な瓶が含まれています。コード自体はわずか5つのファイルであり、Java 8の上の派手な機能を使用していないため、Java 8のために簡単に再コンパイルされる可能性があることに注意してください。
nvtop.propertiesファイルには、構成全体が含まれています。
| 財産 | 説明 |
|---|---|
graph.duration | 総グラフ化された時間は、秒で、右(最新の測定値)から左(最古の測定)まで。 |
graph.refresh | ミリ秒ごとに測定値をトリガーします。 |
graph.ticks.time | > 0の場合、対応するタイムスタンプテキストで、秒数ごとにグラフにタイムスタンプを表示する |
graph.ticks.time.format | タイムスタンプを表示する時間形式。 Java SimpleDateFormat形式に従います。例 HH:mm:ssは14:33:31またはHH:mma 2:33PM表示します。 |
graph.ticks.majors | Y軸上の主要部門の数(例えば5 5つのセクションに分割され、それぞれ20%)。線は平易になります。 |
graph.ticks.minors | y軸上の小さな分裂の数。専攻よりも大きくなければなりません(例: 10 10セクション、それぞれ10%に分割されます)。ラインは打ち砕かれます。 |
graph.background.panel | すべてのグラフの外部エリアの背景色(基本的にウィンドウの背景)。 |
graph.title.font | Java Font.decode()形式に従って、すべてのグラフタイトルのフォント。 |
graph.grid | すべてのグラフは、この多くの行と列を備えたグリッド上に配置されます。フォーマットは<rows>,<columns> (例:3列と2列を表示する3,2 )です。 |
| 財産 | 説明 |
|---|---|
graph.ticks.color | java Color.decode()形式に従って、デフォルトのティックラインの色。たとえば、 #ff0000は純粋な赤です。 |
graph.background | グラフ領域の背景色。 |
グラフパネルは、一連のgraph.<n>.xxxプロパティ。
| 財産 | 説明 |
|---|---|
graph.<n>.title | 上に表示されるグラフタイトル。 |
graph.<n>.background | グラフ領域の背景色。デフォルトのgraph.backgroundプロパティ。 |
graph.<n>.ticks.color | ラインの色。デフォルトのグラフをオーバーライドしますgraph.ticks.colorプロパティ。 |
グラフパネルはgraph.<n>.<left|right>.xxxプロパティ。パネルは、 leftまたはrightの両方を指定する必要はありません(以下、 posと呼ばれます)が、少なくとも1つ(明らかに)。
| 財産 | 説明 |
|---|---|
graph.<n>.<pos>.query | GPUクエリへのグラフ(以下の「GPUクエリ」を参照)。 |
graph.<n>.<pos>.title | シリーズの名前。 |
graph.<n>.<pos>.min | シリーズの最小値。 |
graph.<n>.<pos>.max | シリーズの最大値。 |
graph.<n>.<pos>.unit | 値のユニット。 |
graph.<n>.<pos>.color | シリーズを描くために使用される色。 |
そのため、暗いテーマ(上記のように)または明るいテーマのいずれかを構成できます。

nvtop.propertiesファイルがワーキングディレクトリにある場合、デフォルトのファイルは、GPUとメモリの使用量を1分間表示する単一のグラフで作成され、毎秒更新されます。

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
まず、次のコマンドラインを実行して、システムの使用可能なクエリのリストを取得します(Windowsユーザーに注意して、 nvidia-smi.exeディレクトリをWindows %PATH%に追加する必要がある場合があります。
nvidia-smi --help-query-gpu
これにより、グラフを試すことができるサポートされているクエリのリストが表示されます。それらのすべてが実際に値を返すわけではなく、それはnvidiaドライバーに依存するため、出力をテストしてN/A値がないことを確認する方が良いので、どのクエリが機能し、どのクエリが機能しないかがわかります。
$ 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]
(ここでは、 fan.speedは使用できません)。