GPU パフォーマンスのモニタリング

リソースの利用効率を高めるために、インスタンスの GPU 使用率を追跡できます。GPU の使用率がわかったら、マネージド インスタンス グループの設定などのタスクを実行して、それをニーズに基づくリソースの自動スケーリングに使用できます。

Stackdriver Monitoring を使用して GPU 指標を確認するには、次の手順を実行します。

  1. 各 VM インスタンスで、GPU 指標レポート スクリプトを設定します。このスクリプトは、次のタスクを実行します。

    • GPU 指標レポート エージェントをインストールします。このエージェントは、インスタンスで間隔を置いて実行され、収集した GPU データを Stackdriver Monitoring に送信します。
    • Stackdriver Monitoring で custom/gpu_utilization 指標フィールドを作成します。このフィールドには、Stackdriver Monitoring で分析可能な GPU 固有のデータが保存されます。
  2. Google Cloud Stackdriver Monitoring でログを表示します。

GPU 指標レポート スクリプトの設定

  1. 各 VM インスタンスで、次の要件を満たしていることを確認します。

  2. 各 VM インスタンスに GPU 指標エージェントをインストールします。指標エージェントのインストール手順は次のとおりです。

    1. GPU 指標レポート スクリプトをダウンロードします。

      git clone https://github.com/GoogleCloudPlatform/tensorflow-inference-tensorrt5-t4-gpu.git
    2. metrics_reporting フォルダに切り替えます。

      cd tensorflow-inference-tensorrt5-t4-gpu/metrics_reporting
    3. 指標エージェントのインストール環境を設定します。

      pip install -r ./requirements.txt
    4. 指標レポート スクリプトをルート ディレクトリに移動します。

      sudo cp report_gpu_metrics.py /root/
    5. GPU 指標エージェントを有効にします。

          cat <<-EOH > /lib/systemd/system/gpu_utilization_agent.service
          [Unit]
          Description=GPU Utilization Metric Agent
          [Service]
          PIDFile=/run/gpu_agent.pid
          ExecStart=/bin/bash --login -c '/usr/bin/python /root/report_gpu_metrics.py'
          User=root
          Group=root
          WorkingDirectory=/
          Restart=always
          [Install]
          WantedBy=multi-user.target
          EOH
          
    6. システム デーモンを再読み込みします。

      systemctl daemon-reload
    7. GPU モニタリング サービスを有効にします。

      systemctl --no-reload --now enable /lib/systemd/system/gpu_utilization_agent.service

Stackdriver Monitoring での指標の確認

  1. Google Cloud Console で [モニタリング] を選択するか、次のボタンを使用します。

    [モニタリング] に移動

  2. ナビゲーション パネルに [Metrics Explorer] が表示されている場合は、[Metrics Explorer] をクリックします。それ以外の場合は、[リソース] を選択して [Metrics Explorer] を選択します。

  3. gpu_utilization を検索します。

    Stackdriver Monitoring の最初のスクリーンショット

  4. GPU 使用率は次の出力のようになります。

    Stackdriver Monitoring の実行中のスクリーンショット

  5. (省略可)マネージド インスタンス グループを使用して自動スケーリングを設定します。使用を開始するには、チュートリアル TensorFlow 推論ワークロードのマルチゾーン クラスタの設定のセクションをご覧ください。

次のステップ