View a markdown version of this page

Überwachen Sie GPUs mit CloudWatch - AWS Deep Learning AMIs

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überwachen Sie GPUs mit CloudWatch

Wenn Sie Ihre DLAMI mit einem GPU verwenden, stellen Sie möglicherweise fest, dass Sie auf der Suche nach Möglichkeiten zur Nachverfolgung der Nutzung während der Schulung oder Inferenz sind. Dies kann nützlich sein, um Ihre Datenpipeline zu optimieren und Ihr Deep Learning-Netzwerk zu verfeinern.

Es gibt zwei Möglichkeiten, GPU-Metriken zu konfigurieren mit CloudWatch:

Konfigurieren Sie Metriken mit dem AWS CloudWatch Agent (empfohlen)

Integrieren Sie Ihr DLAMI in den Unified CloudWatch Agent, um GPU-Metriken zu konfigurieren und die Nutzung von GPU-Coprozessen in Amazon EC2-beschleunigten Instances zu überwachen.

Es gibt vier Möglichkeiten, GPU-Metriken mit Ihrem DLAMI zu konfigurieren:

Informationen zu Updates und Sicherheitspatches finden Sie unter Sicherheits-Patches für AWS CloudWatch Agent

Voraussetzungen

Zunächst müssen Sie die IAM-Berechtigungen für Amazon EC2-Instances konfigurieren, die es Ihrer Instance ermöglichen, Metriken per Push an diese zu übertragen. CloudWatch Eine ausführliche Anleitung finden Sie unter IAM-Rollen und -Benutzer zur Verwendung mit dem Agenten erstellen. CloudWatch

Konfigurieren Sie minimale GPU-Metriken

Konfigurieren Sie mithilfe des dlami-cloudwatch-agent@minimal systemd Dienstes minimale GPU-Metriken. Dieser Dienst konfiguriert die folgenden Metriken:

  • utilization_gpu

  • utilization_memory

Sie finden den systemd Service für minimale vorkonfigurierte GPU-Metriken an der folgenden Stelle:

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

Aktivieren und starten Sie den systemd Dienst mit den folgenden Befehlen:

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

Konfigurieren Sie teilweise GPU-Metriken

Konfigurieren Sie teilweise GPU-Metriken mithilfe des dlami-cloudwatch-agent@partial systemd Dienstes. Dieser Dienst konfiguriert die folgenden Metriken:

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

Den systemd Service für teilweise vorkonfigurierte GPU-Metriken finden Sie am folgenden Ort:

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

Aktivieren und starten Sie den systemd Dienst mit den folgenden Befehlen:

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

Konfigurieren Sie alle verfügbaren GPU-Metriken

Konfigurieren Sie alle verfügbaren GPU-Metriken mithilfe des dlami-cloudwatch-agent@all systemd Dienstes. Dieser Dienst konfiguriert die folgenden Metriken:

  • 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

Sie finden den systemd Service für alle verfügbaren vorkonfigurierten GPU-Metriken am folgenden Ort:

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

Aktivieren und starten Sie den systemd Dienst mit den folgenden Befehlen:

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

Konfigurieren Sie benutzerdefinierte GPU-Metriken

Wenn die vorkonfigurierten Metriken Ihre Anforderungen nicht erfüllen, können Sie eine benutzerdefinierte CloudWatch Agentenkonfigurationsdatei erstellen.

Erstellen Sie eine benutzerdefinierte Konfigurationsdatei

Informationen zum Erstellen einer benutzerdefinierten Konfigurationsdatei finden Sie in den detaillierten Schritten unter CloudWatch Agentenkonfigurationsdatei manuell erstellen oder bearbeiten.

Gehen Sie für dieses Beispiel davon aus, dass sich die Schemadefinition unter befindet/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json.

Konfigurieren Sie Metriken mit Ihrer benutzerdefinierten Datei

Führen Sie den folgenden Befehl aus, um den CloudWatch Agenten gemäß Ihrer benutzerdefinierten Datei zu konfigurieren:

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

Sicherheits-Patches für AWS CloudWatch Agent

Neu veröffentlichte DLAMIs sind mit den neuesten verfügbaren AWS CloudWatch Agenten-Sicherheitspatches konfiguriert. Lesen Sie die folgenden Abschnitte, um Ihr aktuelles DLAMI je nach Betriebssystem Ihrer Wahl mit den neuesten Sicherheitspatches zu aktualisieren.

Amazon Linux 2

Verwenden Sieyum, um die neuesten AWS CloudWatch Agenten-Sicherheitspatches für ein Amazon Linux 2-DLAMI zu erhalten.

sudo yum update

Ubuntu

Um die neuesten AWS CloudWatch Sicherheitspatches für ein DLAMI mit Ubuntu zu erhalten, müssen Sie den AWS CloudWatch Agenten mithilfe eines Amazon S3-Downloadlinks erneut installieren.

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

Weitere Informationen zur Installation des AWS CloudWatch Agenten mithilfe von Amazon S3-Download-Links finden Sie unter Installation und Ausführung des CloudWatch Agenten auf Ihren Servern.

Konfigurieren Sie Messobjekte mit dem vorinstallierten Skript gpumon.py

Das Dienstprogramm gpumon.py ist auf Ihrem DLAMI vorinstalliert. Es ist in die Nutzung pro GPU integriert CloudWatch und unterstützt deren Überwachung: GPU-Speicher, GPU-Temperatur und GPU-Leistung. Das Skript sendet die überwachten Daten regelmäßig an CloudWatch. Sie können den Granularitätsgrad für die Daten, an die gesendet werden, konfigurieren, CloudWatch indem Sie einige Einstellungen im Skript ändern. Bevor Sie das Skript starten, müssen Sie es jedoch einrichten, um die CloudWatch Metriken zu empfangen.

Wie richte ich das GPU-Monitoring ein und führe es aus mit CloudWatch
  1. Erstellen Sie einen IAM-Benutzer oder ändern Sie einen vorhandenen, sodass eine Richtlinie für die Veröffentlichung der Metrik festgelegt ist. CloudWatch Wenn Sie einen neuen Benutzer erstellen, notieren Sie sich die Anmeldeinformationen, da Sie diese im nächsten Schritt benötigen.

    Die IAM-Richtlinie, nach der gesucht werden soll, lautet „cloudwatch:“. PutMetricData Die Richtlinie, die hinzugefügt wird, lautet wie folgt:

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

    Weitere Informationen zum Erstellen eines IAM-Benutzers und zum Hinzufügen von Richtlinien für CloudWatch finden Sie in der Dokumentation. CloudWatch

  2. Führen Sie auf Ihrem DLAMI den Befehl AWS configure aus und geben Sie die IAM-Benutzeranmeldeinformationen an.

    $ aws configure
  3. Möglicherweise müssen Sie einige Änderungen am gpumon-Dienstprogramm vornehmen, bevor Sie es ausführen können. Sie finden das gpumon-Hilfsprogramm und die README-Datei an der Stelle, die im folgenden Codeblock definiert ist. Weitere Informationen zum gpumon.py Skript finden Sie unter dem Amazon S3-Speicherort des Skripts.

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

    Optionen:

    • Ändern Sie die Region in gpumon.py, wenn sich Ihre Instance NICHT in us-east-1 befindet.

    • Ändern Sie andere Parameter wie den CloudWatch namespace oder den Berichtszeitraum mitstore_reso.

  4. Derzeit unterstützt das Skript nur Python 3. Aktivieren Sie die Python-3-Umgebung Ihres bevorzugten Frameworks oder aktivieren Sie die allgemeine Python-3-Umgebung von DLAMI.

    $ source activate python3
  5. Führen Sie das gpumon-Dienstprogramm im Hintergrund aus.

    (python3)$ python gpumon.py &
  6. Öffnen Sie Ihren Browser mit https://console.aws.amazon.com/cloudwatch/ und wählen Sie dann die Metrik. Es wird einen Namespace '' haben. DeepLearningTrain

    Tipp

    Sie können den Namespace durch Modifizierung von gpumon.py ändern. Sie können auch das Berichtsintervall durch Anpassung von store_reso ändern.

Im Folgenden finden Sie ein CloudWatch Beispieldiagramm, das über eine Ausführung von gpumon.py berichtet, die einen Trainingsauftrag auf einer p2.8xlarge-Instance überwacht.

GPU-Überwachung aktiviert CloudWatch

Möglicherweise sind diese weiteren Themen zur GPU-Überwachung und -Optimierung für Sie interessant: