現在、GPUサーバーが計算にどのGPUが使用されているかを確認しようとしています。より良い点は、GPUが「無料」で新しいタスクを実行できるかどうかについて答えたいと思います。理想的には、定期的にポーリングを行い、フリーカードを確認したら、そのカードに対して私の仕事を行うことをお勧めします。
これを行うための既製の方法がある場合、どのようなアイデアがありますか?
nvidia-smi出力の解析はオプションですが、各GPUで実行されているプロセスを一覧表示する既存のコマンドライン引数はありますか?
答え1
詳しく調べてみると、現在実行中の計算プロセスのPIDのリストからこれを把握できるようです。
nvidia-smi --query-compute-apps=pid --format=csv,noheader -i 0
上記はGPU#0を照会します。次のステップは、これをループで実行することです。 GPUの数は次のように推論できます。
nvidia-smi -L | wc -l
それでは、Bashは空のGPUをスヌーピングするために前者の結果を繰り返しますか?これについて考えていますか?この問題を解決するより直接的な方法はありますか?