anderskm/gputil

A Python module for getting the GPU status from NVIDA GPUs using nvidia-smi programmically in Python

何を解決するか

GPUtilは、マシン上の利用可能なNVIDIA GPUをプログラムで識別・選択する問題を解決します。特に、深層学習タスクにおいて、すでに重い負荷がかかっているか、メモリが不足しているGPUにワークロードを割り当てないよう、リソースの競合やクラッシュを防ぐために非常に有用です。

動作方法

このモジュールはnvidia-smiコマンドラインツールをラップするPythonラッパーとして機能します。システム内のすべての利用可能なNVIDIA GPUを照会し、現在の状態(メモリ使用量、負荷など)を取得します。その後、ユーザーが定義した最大負荷およびメモリ使用量のしきい値に基づいて、GPUをフィルタリングし、どのデバイスが「利用可能」となるかを判断します。

対象ユーザー

TensorFlowやCaffeなどの深層学習ライブラリを使用する開発者や研究者で、複数のデバイス間でGPUリソースを動的に割り当てたい方におすすめです。

特徴

  • 柔軟な選択: GPUのID、負荷、メモリ使用量で並べ替えたり、ランダムに選択できます。
  • リソース監視: すべてのGPUの現在の状態を素早く出力するshowUtilization()関数を提供します。
  • GPUメタデータ: UUID、シリアル番号、ドライババージョン、ディスプレイ状態などの詳細なハードウェア情報を取得できます。
  • 統合例: CUDA_VISIBLE_DEVICESを使用したTensorFlowでのGPUマスクや、Caffeでのデバイス選択の具体的なパターンを含んでいます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト