XuehaiPan/nvitop
An interactive NVIDIA-GPU process viewer and beyond, the one-stop solution for GPU process management.
nvitop – インタラクティブなNVIDIA GPUプロセスビューアー
概要
- 純Python製でクロスプラットフォームのコマンドラインツールで、NVIDIA GPUとそれを使用しているプロセスに関する詳細で色豊かな情報を表示します。
nvidia-smiのように一度だけ実行することも、インタラクティブなコントロールを備えたライブの「モニター」モードで動作し続けることもできます。
AI/MLにとって重要な理由
- ディープラーニングのワークロードはNVIDIA GPU上で実行されます。どのジョブがどのGPUを使用しているか、そのメモリ使用量や利用率、そして暴走プロセスを強制終了またはシグナル送信できることは、共有クラスタや単一マシンのワークステーションを管理する研究者やエンジニアにとって不可欠です。
主な機能
- リッチな出力 –
nvidia-smiよりも多くのフィールド(例:プロセスツリー、環境変数)を色付きのボックス描画で表示。 - モニターモード – ライブ更新ビューで、棒グラフ、履歴グラフ、プロセスの並べ替え/フィルタリング、マウス/キーボード操作に対応。
- プロセス制御 – 選択したプロセスにUIから直接SIGINT/TERM/KILLを送信可能(管理者は
sudo nvitopで実行)。 - CUDA可視デバイスセレクター – 同梱の
nviselツールで実験用のCUDA_VISIBLE_DEVICESを設定。 - クロスプラットフォーム – LinuxとWindowsで動作(後者では
windows-cursesを使用)。 - 高速かつ効率的 –
nvidia-ml-pyバインディングを介してNVIDIA Management Library(NVML)と通信し、cachetoolsでクエリをキャッシュし、バックグラウンドスレッドでデータを収集。 - 統合可能 – カスタムモニタリングスクリプトやダッシュボードを構築するための低レベルPython API(
Device、Process、Host)を提供。 - エクスポーターとGrafanaサポート – 別の
nvitop-exporterでメトリクスをPrometheus/Grafanaにプッシュ可能。
インストール
# 推奨:uvxまたはpipxで隔離環境で実行
uvx nvitop # または
pipx run nvitop
# またはPyPI / conda-forgeからインストール
pip install -U nvitop
conda install -c conda-forge nvitop
GitHubリポジトリから直接インストールすることもできます:pip install git+https://github.com/XuehaiPan/nvitop.git
基本的な使い方
- 一度だけのクエリ(
nvidia-smiと同じ):nvitop -1 - GPU 0と1のみ表示:
nvitop -1 -o 0 1 - ライブモニター(デフォルト):
nvitop - モニターレイアウトの切り替え:
-m auto|full|compact(またはUI内でa、f、cキーを押す) - コンピュートコンテキストを持つプロセスにフィルタリング:
-c - ASCII文字のみ使用(プレーンなターミナル用):
-U - 読み取り専用モード(kill/terminateショートカットなし):
--readonly
インタラクティブコントロール(モニターモード)
| キー | アクション |
|---|---|
Ctrl-C / T / K |
選択したプロセスを中断/終了/強制終了 |
t |
ツリービュー画面を開く(シグナル送信に推奨) |
Enter |
ライブグラフ付きのプロセス単位メトリクス画面を開く |
h |
ヘルプ画面を表示 |
q |
終了 |
| 矢印キー / マウス | 行をナビゲート |
CUDA可視デバイスセレクター
- 付属のCLI
nviselを実行して、新しいプロセスにどのGPUを表示するかを対話的に選択し、実験のセットアップを簡素化します。
モニターを超えて
- このパッケージには、GPU統計をPrometheusに公開できるリソースメトリクスコレクター(
nvitop-exporter)が含まれており、Grafanaダッシュボードを可能にします(READMEのスクリーンショットを参照)。 - 低レベルPython APIにより、開発者は独自のツールやノートブックにGPUステータスチェックを埋め込むことができます。
要件
- Python 3.8以上
- NVMLライブラリを含むNVIDIAドライバ(ドライバまたはCUDAツールキットに同梱)
nvidia-ml-py、psutil、Unixではcurses(Windowsではwindows-cursesパッケージが必要)。
ドキュメントとサポート
- 完全なAPIドキュメント:https://nvitop.readthedocs.io
- PyPIページ、conda-forgeパッケージ、GitHubのIssueでバグ報告。
nvitopは、NVIDIA GPU上でAI/MLワークロードを実行しているすべての人にとって実用的なユーティリティであり、標準のnvidia-smiツールよりも豊かでインタラクティブなGPUの健全性とプロセス使用状況のビューを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト