Überwachen Sie GPUs mit CloudWatch - Deep-Learning-AMI

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:

Metriken mit dem AWS CloudWatch Agenten konfigurieren (empfohlen)

Integrieren Sie Ihr DLAMI in den Unified CloudWatch Agent, um GPU-Metriken zu konfigurieren und die Nutzung von GPU-Koprozessen in Amazon EC2 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 Sicherheitspatches für den Agenten AWS CloudWatch

Voraussetzungen

Zu Beginn müssen Sie IAM-Berechtigungen für Amazon EC2 EC2-Instances konfigurieren, an die Ihre Instance Metriken weiterleiten kann. CloudWatch Ausführliche Schritte finden Sie unter IAM-Rollen und -Benutzer für die Verwendung mit dem Agenten erstellen. CloudWatch

Konfigurieren Sie minimale GPU-Metriken

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

  • utilization_gpu

  • utilization_memory

Sie finden den systemd Dienst 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 partielle GPU-Metriken

Konfigurieren Sie partielle 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

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

/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 Dienst für alle verfügbaren vorkonfigurierten GPU-Metriken an der folgenden Stelle:

/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 Ihren Anforderungen nicht entsprechen, 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 Manuelles Erstellen oder Bearbeiten der CloudWatch Agentenkonfigurationsdatei.

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 entsprechend 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

Sicherheitspatches für den Agenten AWS CloudWatch

Neu veröffentlichte DLAMIs sind mit den neuesten verfügbaren AWS CloudWatch Agenten-Sicherheitspatches konfiguriert. In den folgenden Abschnitten erfahren Sie, wie Sie Ihr aktuelles DLAMI je nach Betriebssystem Ihrer Wahl mit den neuesten Sicherheitspatches aktualisieren können.

Amazon Linux 2

Wird verwendetyum, 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, muss der AWS CloudWatch Agent über einen Amazon S3 S3-Download-Link neu installiert werden.

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 S3-Download-Links finden Sie unter Installation und Ausführung des CloudWatch Agenten auf Ihren Servern.

Konfigurieren Sie Metriken mit dem vorinstallierten Skript gpumon.py

Das Dienstprogramm gpumon.py ist auf Ihrem DLAMI vorinstalliert. Es lässt sich in die Nutzung pro GPU integrieren 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 die Granularität für Daten, an die gesendet werden, konfigurieren, CloudWatch indem Sie einige Einstellungen im Skript ändern. Bevor Sie das Skript starten, müssen Sie jedoch einrichten, um die Metriken CloudWatch zu empfangen.

Wie richte ich die GPU-Überwachung ein und führe sie aus CloudWatch
  1. Erstellen Sie einen IAM-Benutzer oder ändern Sie einen vorhandenen Benutzer, um eine Richtlinie für die Veröffentlichung der Metrik festzulegen 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: PutMetric Data“. Die Richtlinie, die hinzugefügt wird, lautet wie folgt:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
  2. Führen Sie auf Ihrem DLAMI AWS configure aus und geben Sie die IAM-Benutzeranmeldedaten 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 dem im folgenden Codeblock definierten Speicherort. Weitere Informationen zum gpumon.py Skript finden Sie im Amazon S3 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 in Ihrem Browser https://console.aws.amazon.com/cloudwatch/ und wählen Sie Metrik aus. Es wird einen Namespace 'DeepLearningTrain' haben.

    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 einen Lauf von gpumon.py berichtet, der einen Trainingsjob auf der p2.8xlarge-Instance überwacht.

GPU-Überwachung aktiviert CloudWatch

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