GPUs によるモニタリング CloudWatch - AWS Deep Learning AMIs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GPUs によるモニタリング CloudWatch

DLAMI で を使用するとGPU、トレーニングまたは推論中にその使用状況を追跡する方法を探している場合があります。これは、データパイプラインの最適化や深層学習ネットワークのチューニングに役立ちます。

でGPUメトリクスを設定するには、次の 2 つの方法があります CloudWatch。

を使用してメトリクスを設定する AWS CloudWatch エージェント (推奨)

統合 CloudWatch エージェントDLAMIと統合してGPUメトリクスを設定し、Amazon EC2 高速インスタンスでのGPUコプロセスの使用状況をモニタリングします。

GPUメトリクスを設定するには、次の 4 つの方法がありますDLAMI。

更新とセキュリティパッチの詳細については、「のセキュリティパッチ適用 AWS CloudWatch エージェント」を参照してください。

前提条件

開始するには、EC2インスタンスがメトリクスを にプッシュできるようにする Amazon インスタンスのIAMアクセス許可を設定する必要があります CloudWatch。詳細な手順については、 CloudWatch 「 エージェントで使用するIAMロールとユーザーを作成する」を参照してください。

最小GPUメトリクスを設定する

dlami-cloudwatch-agent@minimal systemd サービスを使用して最小限のGPUメトリクスを設定します。このサービスは以下のメトリクスを設定します。

  • utilization_gpu

  • utilization_memory

事前設定された最小限のGPUメトリクスのsystemdサービスは、次の場所にあります。

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-minimal.json

以下のコマンドで systemd サービスを有効にして起動します。

sudo systemctl enable dlami-cloudwatch-agent@minimal sudo systemctl start dlami-cloudwatch-agent@minimal

部分的なGPUメトリクスを設定する

dlami-cloudwatch-agent@partial systemd サービスを使用して部分的なGPUメトリクスを設定します。このサービスは以下のメトリクスを設定します。

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

事前設定済みのメトリクスの一部については、次の場所GPUにあるsystemdサービスを参照してください。

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-partial.json

以下のコマンドで systemd サービスを有効にして起動します。

sudo systemctl enable dlami-cloudwatch-agent@partial sudo systemctl start dlami-cloudwatch-agent@partial

使用可能なすべてのGPUメトリクスを設定する

dlami-cloudwatch-agent@all systemd サービスを使用して、使用可能なすべてのGPUメトリクスを設定します。このサービスは以下のメトリクスを設定します。

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

  • temperature_gpu

  • power_draw

  • fan_speed

  • pcie_link_gen_current

  • pcie_link_width_current

  • encoder_stats_session_count

  • encoder_stats_average_fps

  • encoder_stats_average_latency

  • clocks_current_graphics

  • clocks_current_sm

  • clocks_current_memory

  • clocks_current_video

使用可能なすべての事前設定済みGPUメトリクスのsystemdサービスは、次の場所にあります。

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-all.json

以下のコマンドで systemd サービスを有効にして起動します。

sudo systemctl enable dlami-cloudwatch-agent@all sudo systemctl start dlami-cloudwatch-agent@all

カスタムGPUメトリクスを設定する

事前設定されたメトリクスが要件を満たさない場合は、カスタム CloudWatch エージェント設定ファイルを作成できます。

カスタム設定を作成する

カスタム設定ファイルを作成するには、 CloudWatch 「エージェント設定ファイル を手動で作成または編集する」の詳細なステップを参照してください。

この例では、スキーマ定義が /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json にあると仮定します。

カスタムファイルを使用してメトリクスを設定する

次のコマンドを実行して、カスタムファイルに従って CloudWatch エージェントを設定します。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -s -c \ file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

のセキュリティパッチ適用 AWS CloudWatch エージェント

新しくリリースされた DLAMIsは、利用可能な最新の で設定されます。 AWS CloudWatch エージェントセキュリティパッチ。選択したオペレーティングシステムに応じて、現在の を最新のセキュリティパッチDLAMIで更新するには、以下のセクションを参照してください。

Amazon Linux 2

yum を使用して最新の を取得する AWS CloudWatch Amazon Linux 2 の エージェントセキュリティパッチDLAMI。

sudo yum update

Ubuntu

最新の を取得するには AWS CloudWatch Ubuntu DLAMI を使用する のセキュリティパッチは、 を再インストールする必要があります。 AWS CloudWatch Amazon S3 ダウンロードリンクを使用する エージェント。

wget https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

のインストールの詳細については、「」を参照してください。 AWS CloudWatch Amazon S3 ダウンロードリンクを使用する エージェントについては、「サーバーへの CloudWatch エージェントのインストールと実行」を参照してください。

プリインストールされた gpumon.py スクリプトを使用してメトリクスを設定する

gpumon.py というユーティリティが にプリインストールされていますDLAMI。と統合 CloudWatch され、GPUメモリ、GPU温度、GPU電力などの使用量ごとのGPUモニタリングをサポートします。このスクリプトは、モニタリング対象データを に定期的に送信します CloudWatch。スクリプトのいくつかの設定を変更 CloudWatch することで、 に送信されるデータの粒度を設定できます。ただし、スクリプトを開始する前に、メトリクスを受信する CloudWatch ように を設定する必要があります。

でGPUモニタリングをセットアップして実行する方法 CloudWatch
  1. ユーザーを作成するか、既存のIAMユーザーを変更して、メトリクスを に発行するためのポリシーを設定します CloudWatch。新しいユーザーを作成する場合、認証情報をメモしてください。次のステップで必要になります。

    検索するIAMポリシーは「cloudwatch:PutMetricData」です。追加されるポリシーは次のようになります。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
    ヒント

    IAM ユーザーの作成と のポリシーの追加の詳細については CloudWatch、「」の CloudWatch ドキュメントを参照してください。

  2. でDLAMI、 を実行します。 AWS IAM ユーザー認証情報を設定して指定します。

    $ aws configure
  3. 実行する前に、gpumon ユーティリティにいくつかの変更が必要になる場合があります。gpumon ユーティリティ と はREADME、次のコードブロックで定義されている場所に配置できます。gpumon.py スクリプトの詳細については、スクリプトの Amazon S3 の場所を参照してください。

    Folder: ~/tools/GPUCloudWatchMonitor Files: ~/tools/GPUCloudWatchMonitor/gpumon.py ~/tools/GPUCloudWatchMonitor/README

    オプション:

    • インスタンスが us-east-1 にある場合は、gpumon.py NOTでリージョンを変更します。

    • namespace やレポート期間などの他のパラメータを で変更します CloudWatchstore_reso

  4. 現在、スクリプトでは Python 3 のみがサポートされています。任意のフレームワークの Python 3 環境をアクティブ化するか、DLAMI一般的な Python 3 環境をアクティブ化します。

    $ source activate python3
  5. gpumon ユーティリティをバックグラウンドで実行します。

    (python3)$ python gpumon.py &
  6. ブラウザを開き、 https://console.aws.amazon.com/cloudwatch/ メトリクスを選択します。名前空間DeepLearningTrain「」があります。

    ヒント

    gpumon.py を変更することで名前空間を変更できます。store_reso を調整することで、レポートの間隔を調整することもできます。

以下は、p2.8xlarge インスタンスでトレーニングジョブをモニタリングする gpumon.py の実行に関する CloudWatch グラフレポートの例です。

GPU でのモニタリング CloudWatch

GPU モニタリングと最適化に関する他のトピックに興味があるかもしれません。