View a markdown version of this page

Erste Schritte mit EFA und NCCL für ML-Workloads auf Amazon EC2 - Amazon Elastic Compute Cloud

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.

Erste Schritte mit EFA und NCCL für ML-Workloads auf Amazon EC2

Die NVIDIA Collective Communications Library (NCCL) ist eine Bibliothek kollektiver Standardkommunikationsroutinen für mehrere GPUs über einen oder mehrere Knoten. Sie können NCCL zusammen mit EFA, Libfabric und MPI verwenden, um verschiedene Workloads für maschinelles Lernen zu unterstützen. Weitere Informationen finden Sie auf der NCCL-Website.

Voraussetzungen
  • Zu den unterstützten Instance-Typen gehören die Instance-Typen der EFA-supported P-Serie und der G-Serie. Weitere Informationen finden Sie unter Beschleunigte Computing-Instances von Amazon EC2.

  • Unterstützte Basis-AMIs: Amazon Linux 2023, Ubuntu 26.04, Ubuntu 24.04, Ubuntu 22.04, Debian 12 und RHEL 10.

  • EFA unterstützt nur NCCL 2.4.2 und höher.

Weitere Informationen zum Ausführen von Machine-Learning-Workloads mit EFA und NCCL mithilfe von an finden Sie unter Using EFA on the AWS Deep Learning AMIs DLAMI im Developer Guide. AWS Deep Learning AMIs

Schritt 1: Bereiten Sie eine Sicherheitsgruppe vor EFA-enabled

Ein EFA erfordert eine Sicherheitsgruppe, die allen ein- und ausgehenden Datenverkehr von und zur Sicherheitsgruppe zulässt. Mit dem folgenden Verfahren wird eine Sicherheitsgruppe erstellt, die den gesamten ein- und ausgehenden Datenverkehr der Gruppe sowie eingehenden SSH-Datenverkehr von jeder IPv4-Adresse zwecks SSH-Konnektivität zulässt.

Wichtig
  • Diese Sicherheitsgruppe dient nur zu Testzwecken. Für Produktionsumgebungen sollten Sie eine Regel für eingehenden SSH-Datenverkehr erstellen, die Datenverkehr nur von der IP-Adresse zulässt, von der aus Sie eine Verbindung herstellen, z. B. die IP-Adresse Ihres Computers oder einen Bereich von IP-Adressen im lokalen Netzwerk.

  • Die selbstreferenzierenden Regeln für eingehenden und ausgehenden Datenverkehr (die den gesamten Datenverkehr zur und von der Sicherheitsgruppe selbst zulassen) sind für das Funktionieren von EFA unerlässlich. Ohne diese Regeln wird der EFA-Verkehr zwischen Instances blockiert und die NCCL-Kommunikation schlägt fehl.

Weitere Szenarien finden Sie unter Sicherheitsgruppenregeln für verschiedene Anwendungsfälle.

Um eine Sicherheitsgruppe zu erstellen EFA-enabled
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Security Groups (Sicherheitsgruppen) und anschließend Create Security Group (Sicherheitsgruppe erstellen) aus.

  3. Führen Sie im Fenster Create Security Group Folgendes aus:

    1. Geben Sie für Security group name (Name der Sicherheitsgruppe) einen beschreibenden Namen für die Sicherheitsgruppe ein, wie etwa EFA-enabled security group.

    2. (Optional:) Geben Sie unter Description (Beschreibung) eine kurze Beschreibung der Sicherheitsgruppe ein.

    3. Wählen Sie für VPC die VPC aus, in der Sie Ihre EFA-enabled Instances starten möchten.

    4. Wählen Sie Sicherheitsgruppe erstellen aus.

  4. Wählen Sie die von Ihnen erstellte Sicherheitsgruppe aus und kopieren Sie dann auf der Registerkarte Details die Security group ID (Sicherheitsgruppen-ID).

  5. Bei noch ausgewählter Sicherheitsgruppe wählen Sie Actions (Aktionen), Edit inbound rules (Eingangsregeln bearbeiten) aus und gehen dann folgendermaßen vor:

    1. Wählen Sie Regel hinzufügen aus.

    2. Wählen Sie für Type (Typ) die Option All traffic (Gesamter Datenverkehr) aus.

    3. Wählen Sie bei Source type (Quellentyp) Custom (Benutzerdefiniert) aus und fügen Sie die Sicherheitsgruppen-ID, die Sie kopiert hatten, ins Feld ein.

    4. Wählen Sie Regel hinzufügen aus.

    5. Wählen Sie unter Typ die Option SSH aus.

    6. Wählen Sie im Feld Source type (Quelltyp) die Option Anywhere-IPv4 aus.

    7. Wählen Sie Regeln speichern aus.

  6. Bei noch ausgewählter Sicherheitsgruppe wählen Sie Actions (Aktionen), Edit outbound rules (Ausgangsregeln bearbeiten) aus und gehen dann folgendermaßen vor:

    1. Wählen Sie Regel hinzufügen aus.

    2. Wählen Sie für Type (Typ) die Option All traffic (Gesamter Datenverkehr) aus.

    3. Wählen Sie bei Destination type (Zieltyp) Custom (Benutzerdefiniert) aus und fügen Sie die Sicherheitsgruppen-ID, die Sie kopiert hatten, ins Feld ein.

    4. Wählen Sie Regeln speichern aus.

Schritt 2: Starten einer temporären Instance

Starten Sie eine temporäre Instance, die Sie verwenden können, um die EFA-Softwarekomponenten zu installieren und zu konfigurieren. Sie verwenden diese Instance, um ein EFA-enabled AMI zu erstellen, von dem aus Sie Ihre EFA-enabled Instances starten können.

So starten Sie eine temporäre Instance
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Instances und dann Instances starten aus, um den Launch Instance Wizard zu öffnen.

  3. (Optional) Geben Sie im Bereich Name and tags (Name und Tags) einen Namen für die Instance an, z. B. EFA-instance. Der Name wird der Instance als Ressourcen-Tag (Name=EFA-instance) zugewiesen.

  4. Wählen Sie im Bereich Anwendungs- und Betriebssystem-Images ein AMI für eines der unterstützten Betriebssysteme aus.

  5. Wählen Sie im Bereich Instance-Typ einen unterstützten Instance-Typ aus.

  6. Wählen Sie im Bereich Key pair (Schlüsselpaar) das Schlüsselpaar aus, das für die Instance verwendet werden soll.

  7. Wählen Sie im Bereich Network settings (Netzwerkeinstellungen) Edit (Bearbeiten) aus und führen Sie dann Folgendes aus:

    1. Wählen Sie unter Subnetz das Subnetz aus, in dem die Instance gestartet werden soll.

      Wichtig

      Sie müssen ein Subnetz auswählen. Wenn Sie kein Subnetz auswählen, können Sie die Instance nicht für EFA aktivieren.

    2. Wählen Sie bei Firewall (security groups) Firewall (Sicherheitsgruppen) Select existing security group (Vorhandene Sicherheitsgruppe auswählen) und dann die Sicherheitsgruppe aus, die Sie im vorherigen Schritt erstellt haben.

    3. Erweitern Sie den Abschnitt Erweiterte Netzwerkkonfiguration.

      Wählen Sie für Netzwerkschnittstelle 1 Netzwerkkartenindex = 0, Geräteindex = 0 und Schnittstellentyp = EFA mit ENA aus.

      (Optional) Wenn Sie einen Instance-Typ mit mehreren Karten verwenden, wählen Sie für jede weitere erforderliche Netzwerkschnittstelle die Option Netzwerkschnittstelle hinzufügen aus. Wählen Sie für Netzwerkkartenindex den nächsten unbenutzten Index aus, und wählen Sie dann Geräteindex = 1 und Schnittstellentyp = EFA mit ENA oder aus. EFA-only

  8. Konfigurieren Sie im Bereich Storage (Speicher) die Volumes nach Bedarf.

    Anmerkung

    Sie müssen zusätzliche 10 bis 20 GiB Speicherplatz für das NVIDIA CUDA Toolkit bereitstellen. Wenn Sie nicht genügend Speicherplatz bereitstellen, erhalten Sie eine insufficient disk space Fehlermeldung, wenn Sie versuchen, die NVIDIA-Treiber und das CUDA-Toolkit zu installieren.

  9. Wählen Sie im Bereich Summary (Zusammenfassung) rechts Launch instance (Instance starten) aus.

Schritt 3: Installieren Sie die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN

Amazon Linux 2023
Um die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN zu installieren
  1. Um sicherzustellen, dass alle Ihre Softwarepakete aktuell sind, führen Sie ein schnelles Softwareupdate auf Ihrer Instance aus.

    $ sudo dnf upgrade -y && sudo reboot

    Stellen Sie nach dem Neustart der Instance erneut eine Verbindung dazu her.

  2. Installieren Sie die Dienstprogramme, die für die Installation der NVIDIA-GPU-Treiber und des NVIDIA CUDA Toolkits erforderlich sind.

    $ sudo dnf groupinstall 'Development Tools' -y && sudo dnf install -y dkms kernel-devel-$(uname -r) kernel-headers-$(uname -r)
  3. Deaktivieren Sie die nouveau-Open-Source-Treiber.

    1. Installieren Sie die erforderlichen Dienstprogramme und das Kernel-Header-Paket für Ihre derzeit ausgeführte Kernel-Version.

      $ sudo yum install -y wget kernel-devel-$(uname -r) kernel-headers-$(uname -r)
    2. nouveauZur Datei mit der /etc/modprobe.d/blacklist.conf Ablehnungsliste hinzufügen.

      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    3. An die grub Datei GRUB_CMDLINE_LINUX="rdblacklist=nouveau" anhängen und die GRUB-Konfiguration neu erstellen.

      $ echo 'GRUB_CMDLINE_LINUX="rdblacklist=nouveau"' | sudo tee -a /etc/default/grub \ && sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  4. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  5. Fügen Sie das CUDA-Netzwerk-Repository hinzu.

    $ sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
  6. Laden Sie den NVIDIA-GPU-Treiber herunter und installieren Sie ihn.

    $ wget https://us.download.nvidia.com/tesla/580.167.08/NVIDIA-Linux-x86_64-580.167.08.run \ && sudo sh NVIDIA-Linux-x86_64-580.167.08.run -m kernel-open --no-drm --disable-nouveau --dkms --silent
  7. Installieren Sie das NVIDIA CUDA Toolkit und cuDNN.

    $ sudo dnf install -y cuda-toolkit-13-0 libcudnn9-cuda-13 libcudnn9-devel-cuda-13
  8. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  9. (Instanzen mit NVSwitch, z. B. P-series Multi-GPU-Instances) Installieren und starten Sie den NVIDIA Fabric Manager. G-series Instanzen verwenden NVSwitch nicht und benötigen keinen Fabric Manager.

    $ sudo dnf install -y https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/nvidia-fabricmanager-580.167.08-1.el8.x86_64.rpm \ && sudo systemctl enable nvidia-fabricmanager && sudo systemctl start nvidia-fabricmanager
  10. Stellen Sie sicher, dass die CUDA-Pfade bei jedem Start der Instance festgelegt werden.

    • Fügen Sie für Bash-Shells die folgenden Anweisungen zu /home/username/.bashrc und /home/username/.bash_profile hinzu.

      export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
    • Fügen Sie für tcsh-Shells die folgenden Anweisungen zu /home/username/.cshrc hinzu.

      setenv PATH=/usr/local/cuda/bin:$PATH setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
  11. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die NVIDIA-GPU-Treiber funktionieren.

    $ nvidia-smi -q | head

    Der Befehl sollte Informationen zu den NVIDIA-GPUs, NVIDIA-GPU-Treibern und dem NVIDIA CUDA Toolkit zurückgeben.

Ubuntu 26.04, Ubuntu 24.04, and Ubuntu 22.04
Um die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN zu installieren
  1. Um sicherzustellen, dass alle Ihre Softwarepakete aktuell sind, führen Sie ein schnelles Softwareupdate auf Ihrer Instance aus.

    $ sudo apt-get update && sudo apt-get upgrade -y
  2. Installieren Sie die Dienstprogramme, die für die Installation der NVIDIA-GPU-Treiber und des NVIDIA CUDA Toolkits erforderlich sind.

    $ sudo apt-get update && sudo apt-get install build-essential -y
  3. Um den NVIDIA-GPU-Treiber verwenden zu können, müssen Sie zuerst die nouveau Open-Source-Treiber deaktivieren.

    1. Installieren Sie die erforderlichen Dienstprogramme und das Kernel-Header-Paket für Ihre derzeit ausgeführte Kernel-Version.

      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
    2. Zur Datei nouveau mit der /etc/modprobe.d/blacklist.conf Ablehnungsliste hinzufügen.

      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    3. Öffnen Sie /etc/default/grub mit dem bevorzugten Texteditor und fügen Sie Folgendes hinzu.

      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
    4. Erstellen Sie die GRUB-Konfiguration neu.

      $ sudo update-grub
  4. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  5. Fügen Sie das CUDA-Repository hinzu und installieren Sie die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN.

    • Ubuntu 26.04

      $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb \ && sudo dpkg -i cuda-keyring_1.1-1_all.deb \ && sudo add-apt-repository -y 'deb [trusted=yes] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64 /' \ && sudo apt-get update
      $ sudo apt-get install -y nvidia-open cuda-toolkit-13-3 libcudnn9-cuda-13 libcudnn9-dev-cuda-13
    • Ubuntu 24.04

      $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb \ && sudo dpkg -i cuda-keyring_1.1-1_all.deb \ && sudo add-apt-repository -y 'deb [trusted=yes] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64 /' \ && sudo apt-get update
      $ sudo apt-get install -y nvidia-open-580 cuda-toolkit-13-0 libcudnn9-cuda-13 libcudnn9-dev-cuda-13
    • Ubuntu 22.04

      $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \ && sudo dpkg -i cuda-keyring_1.1-1_all.deb \ && sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" \ && sudo apt-get update
      $ sudo apt-get install -y nvidia-open-580 cuda-toolkit-13-0 libcudnn9-cuda-13 libcudnn9-dev-cuda-13
  6. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  7. (Instanzen mit NVSwitch, z. B. P-series Multi-GPU-Instances) Installieren und starten Sie den NVIDIA Fabric Manager. G-series Instanzen verwenden NVSwitch nicht und benötigen keinen Fabric Manager.

    • Ubuntu 26.04

      $ sudo apt-get install -y nvidia-fabricmanager \ && sudo systemctl enable nvidia-fabricmanager && sudo systemctl start nvidia-fabricmanager
    • Ubuntu 24.04 und Ubuntu 22.04

      $ sudo apt-get install -y nvidia-fabricmanager-580 \ && sudo systemctl enable nvidia-fabricmanager && sudo systemctl start nvidia-fabricmanager
  8. Stellen Sie sicher, dass die CUDA-Pfade bei jedem Start der Instance festgelegt werden.

    • Fügen Sie für Bash-Shells die folgenden Anweisungen zu /home/username/.bashrc und /home/username/.bash_profile hinzu.

      export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
    • Fügen Sie für tcsh-Shells die folgenden Anweisungen zu /home/username/.cshrc hinzu.

      setenv PATH=/usr/local/cuda/bin:$PATH setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
  9. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die NVIDIA-GPU-Treiber funktionieren.

    $ nvidia-smi -q | head

    Der Befehl sollte Informationen zu den NVIDIA-GPUs, NVIDIA-GPU-Treibern und dem NVIDIA CUDA Toolkit zurückgeben.

Debian 12
Um die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN zu installieren
  1. Installieren Sie die Dienstprogramme, die für die Installation der NVIDIA-GPU-Treiber und des NVIDIA CUDA Toolkits erforderlich sind.

    $ sudo apt-get install -y build-essential gcc make linux-headers-$(uname -r) dkms
  2. Deaktivieren Sie die nouveau-Open-Source-Treiber.

    $ sudo sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="rdblacklist=nouveau"/' /etc/default/grub && sudo update-grub
  3. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  4. Fügen Sie das CUDA-Repository hinzu und installieren Sie die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN.

    $ wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb \ && sudo dpkg -i cuda-keyring_1.1-1_all.deb \ && sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "deb https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /" \ && sudo apt-get update
    $ sudo apt-get install -y nvidia-open cuda-toolkit-13-0 libcudnn9-cuda-13 libcudnn9-dev-cuda-13
  5. Konfigurieren Sie das NVIDIA UVM-Kernelmodul.

    $ uvm_ko=$(find /lib/modules/$(uname -r) -name 'nvidia*uvm*.ko*' 2>/dev/null | head -1) && if [ -n "$uvm_ko" ]; then real=$(basename "$uvm_ko"); real=${real%.ko*}; echo "$real" | sudo tee /etc/modules-load.d/nvidia-uvm.conf; if [ "$real" != "nvidia-uvm" ]; then echo "alias nvidia-uvm $real" | sudo tee /etc/modprobe.d/nvidia-uvm.conf; fi; sudo modprobe "$real" || true; fi && sudo modprobe nvidia
  6. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  7. (Instanzen mit NVSwitch, z. B. Instanzen mit P-series mehreren GPUs) Installieren und starten Sie den NVIDIA Fabric Manager. G-series Instanzen verwenden NVSwitch nicht und benötigen keinen Fabric Manager.

    1. Ermitteln Sie die Version des NVIDIA-Kernelmoduls.

      $ cat /proc/driver/nvidia/version | grep "Kernel Module"

      Es folgt eine Beispielausgabe.

      NVRM version: NVIDIA UNIX x86_64 Kernel Module 610.43.02 ...

      Im vorherigen Beispiel wurde die Hauptversion 610 des Kernelmoduls installiert.

    2. Installieren Sie den NVIDIA Fabric Manager mit der im vorherigen Schritt identifizierten Hauptversion.

      $ sudo apt-get install -y nvidia-fabricmanager-major_version_number \ && sudo systemctl enable nvidia-fabricmanager && sudo systemctl start nvidia-fabricmanager
  8. Stellen Sie sicher, dass die CUDA-Pfade bei jedem Start der Instance festgelegt werden.

    • Fügen Sie für Bash-Shells die folgenden Anweisungen zu /home/username/.bashrc und /home/username/.bash_profile hinzu.

      export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
    • Fügen Sie für tcsh-Shells die folgenden Anweisungen zu /home/username/.cshrc hinzu.

      setenv PATH=/usr/local/cuda/bin:$PATH setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
  9. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die NVIDIA-GPU-Treiber funktionieren.

    $ nvidia-smi -q | head

    Der Befehl sollte Informationen zu den NVIDIA-GPUs, NVIDIA-GPU-Treibern und dem NVIDIA CUDA Toolkit zurückgeben.

RHEL 10
Um die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN zu installieren
  1. Um sicherzustellen, dass alle Ihre Softwarepakete aktuell sind, führen Sie ein schnelles Softwareupdate auf Ihrer Instance aus.

    $ sudo dnf upgrade -y && sudo reboot

    Stellen Sie nach dem Neustart der Instance erneut eine Verbindung dazu her.

  2. Installieren Sie die Dienstprogramme, die für die Installation der NVIDIA-GPU-Treiber und des NVIDIA CUDA Toolkits erforderlich sind.

    $ sudo dnf groupinstall 'Development Tools' -y \ && sudo dnf install -y dkms kernel-devel-$(uname -r) \ && sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
  3. Deaktivieren Sie die nouveau-Open-Source-Treiber.

    1. nouveauZur Datei mit der /etc/modprobe.d/blacklist.conf Ablehnungsliste hinzufügen.

      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    2. An die grub Datei GRUB_CMDLINE_LINUX="rdblacklist=nouveau" anhängen und die GRUB-Konfiguration neu erstellen.

      $ echo 'GRUB_CMDLINE_LINUX="rdblacklist=nouveau"' | sudo tee -a /etc/default/grub \ && sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  4. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  5. Fügen Sie das CUDA-Repository hinzu und installieren Sie die NVIDIA-GPU-Treiber, das NVIDIA CUDA Toolkit und cuDNN.

    $ sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel10/x86_64/cuda-rhel10.repo \ && sudo dnf install -y nvidia-open-580.167.08 cuda-toolkit-13-0 libcudnn9-cuda-13 libcudnn9-devel-cuda-13
  6. Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.

  7. (Instanzen mit NVSwitch, z. B. P-series Multi-GPU-Instances) Installieren und starten Sie den NVIDIA Fabric Manager. G-series Instanzen verwenden NVSwitch nicht und benötigen keinen Fabric Manager.

    $ sudo dnf install -y https://developer.download.nvidia.com/compute/cuda/repos/rhel10/x86_64/nvidia-fabricmanager-580.167.08-1.x86_64.rpm \ && sudo systemctl enable nvidia-fabricmanager && sudo systemctl start nvidia-fabricmanager
  8. Stellen Sie sicher, dass die CUDA-Pfade bei jedem Start der Instance festgelegt werden.

    • Fügen Sie für Bash-Shells die folgenden Anweisungen zu /home/username/.bashrc und /home/username/.bash_profile hinzu.

      export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
    • Fügen Sie für tcsh-Shells die folgenden Anweisungen zu /home/username/.cshrc hinzu.

      setenv PATH=/usr/local/cuda/bin:$PATH setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
  9. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die NVIDIA-GPU-Treiber funktionieren.

    $ nvidia-smi -q | head

    Der Befehl sollte Informationen zu den NVIDIA-GPUs, NVIDIA-GPU-Treibern und dem NVIDIA CUDA Toolkit zurückgeben.

Schritt 4: Installieren der GDRCopy

Installieren Sie GDRCopy, um die Leistung von Libfabric zu verbessern. Weitere Informationen zu GDRCopy finden Sie im GDRCopy-Repository.

Amazon Linux 2023
So installieren Sie GDRCopy
  1. Installieren Sie die erforderlichen Abhängigkeiten.

    $ sudo yum -y install dkms rpm-build make check check-devel
  2. Laden Sie das GDRCopy-Paket herunter und extrahieren Sie es.

    $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.5.2.tar.gz \ && tar xf v2.5.2.tar.gz && cd gdrcopy-2.5.2/packages
  3. Erstellen Sie die GDRCopy RPM-Pakete.

    $ CUDA=/usr/local/cuda ./build-rpm-packages.sh
  4. Installieren Sie die GDRCopy RPM-Pakete.

    $ sudo rpm -Uvh gdrcopy-kmod-2.5.2*dkms*.rpm \ && sudo rpm -Uvh gdrcopy-2.5.2*.rpm \ && sudo rpm -Uvh gdrcopy-devel-2.5.2*.rpm
Ubuntu 26.04, Ubuntu 24.04, and Ubuntu 22.04
So installieren Sie GDRCopy
  1. Installieren Sie die erforderlichen Abhängigkeiten.

    $ sudo apt-get install -y build-essential devscripts debhelper fakeroot pkg-config dkms
    Anmerkung

    Installieren Sie unter Ubuntu 22.04 außerdem die folgenden zusätzlichen Abhängigkeiten:

    $ sudo apt-get install -y check libsubunit-dev
  2. Laden Sie das GdrCopy-Paket herunter, extrahieren Sie es und erstellen Sie die Pakete.

    $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.5.2.tar.gz \ && tar xf v2.5.2.tar.gz \ && cd gdrcopy-2.5.2/packages \ && CUDA=/usr/local/cuda ./build-deb-packages.sh
  3. Installieren Sie die GDRCopy DEB-Pakete.

    $ sudo dpkg -i gdrdrv-dkms_2.5.2-1_amd64.*.deb \ && sudo dpkg -i libgdrapi_2.5.2-1_amd64.*.deb \ && sudo dpkg -i gdrcopy-tests_2.5.2-1_amd64.*.deb \ && sudo dpkg -i gdrcopy_2.5.2-1_amd64.*.deb
Debian 12
So installieren Sie GDRCopy
  1. Installieren Sie die erforderlichen Abhängigkeiten.

    $ sudo apt-get install -y build-essential devscripts debhelper fakeroot pkg-config dkms
  2. Laden Sie das GDRCopy-Paket herunter und extrahieren Sie es.

    $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.5.2.tar.gz \ && tar xf v2.5.2.tar.gz && cd gdrcopy-2.5.2/packages
  3. Wenden Sie die Patches der Debian-Version an und bauen Sie die Pakete.

    $ sed -i 's/(2.5.2)/(2.5.2-1)/g' debian-lib/changelog \ && sed -i 's/(2.5.2)/(2.5.2-1)/g' debian-tests/changelog \ && sed -i 's/(2.5.2)/(2.5.2-1)/g' dkms/debian/changelog \ && sed -i 's/(2.5.2)/(2.5.2-1)/g' debian-meta/changelog \ && sed -i 's/FULL_VERSION="${VERSION}"/FULL_VERSION="${VERSION}-${DEBIAN_VERSION}"/g' build-deb-packages.sh
    $ CUDA=/usr/local/cuda ./build-deb-packages.sh
  4. Installieren Sie die GDRCopy DEB-Pakete.

    $ sudo dpkg -i gdrdrv-dkms_2.5.2*.deb \ && sudo dpkg -i libgdrapi_2.5.2*.deb \ && sudo dpkg -i gdrcopy-tests_2.5.2*.deb \ && sudo dpkg -i gdrcopy_2.5.2*.deb
RHEL 10
So installieren Sie GDRCopy
  1. Installieren Sie die erforderlichen Abhängigkeiten.

    $ sudo yum -y install dkms rpm-build make check check-devel
  2. Laden Sie das GDRCopy-Paket herunter und extrahieren Sie es.

    $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.5.2.tar.gz \ && tar xf v2.5.2.tar.gz && cd gdrcopy-2.5.2/packages
  3. Erstellen Sie die GDRCopy RPM-Pakete.

    $ CUDA=/usr/local/cuda ./build-rpm-packages.sh
  4. Installieren Sie die GDRCopy RPM-Pakete.

    $ sudo rpm -Uvh gdrcopy-kmod-2.5.2*dkms*.rpm \ && sudo rpm -Uvh gdrcopy-2.5.2*.rpm \ && sudo rpm -Uvh gdrcopy-devel-2.5.2*.rpm

Schritt 5: Installieren der EFA-Software

Installieren Sie den EFA-enabled Kernel, die EFA-Treiber, Libfabric, das aws-ofi-nccl-Plugin und den Open MPI-Stack, die für die Unterstützung von EFA auf Ihrer Instance erforderlich sind.

So installieren Sie die EFA-Software
  1. Stellen Sie eine Verbindung zu der Instance her, die Sie gestartet haben. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer Linux-Instance mit SSH.

  2. Laden Sie die EFA-Software-Installationsdateien herunter. Die Softwareinstallationsdateien werden als komprimierte Tarball () -Datei geliefert. .tar.gz Laden Sie die neueste stabile Version mit dem folgenden Befehl herunter.

    $ curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.50.0.tar.gz

    Sie erhalten die neueste Version auch, indem Sie anstelle der Versionsnummer im vorangegangenen Befehl latest eingeben.

  3. (Optional) Überprüfen Sie die Authentizität und Integrität der EFA-Tarball-Datei (.tar.gz).

    Diese Vorgehensweise wird empfohlen, um die Identität des Software-Publishers zu überprüfen und sicherzustellen, dass die Datei seit ihrer Veröffentlichung nicht verändert oder beschädigt wurde. Wenn Sie die Tarball-Datei nicht überprüfen möchten, überspringen Sie diesen Schritt.

    Anmerkung

    Wenn Sie die Tarball-Datei lieber mit einer MD5- oder SHA256-Prüfsumme überprüfen möchten, finden Sie Informationen unter Überprüfen des EFA-Installationsprogramms mithilfe einer Prüfsumme.

    1. Laden Sie den öffentlichen GPG-Schlüssel herunter und importieren Sie ihn in Ihren Schlüsselbund.

      $ wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.key

      Der Befehl sollte einen Schlüsselwert zurückgeben. Notieren Sie sich den Schlüsselwert. Sie benötigen ihn im nächsten Schritt.

    2. Überprüfen Sie den Fingerabdruck des GPG-Schlüssels. Führen Sie den folgenden Befehl aus und geben den Schlüsselwert aus dem vorherigen Schritt an.

      $ gpg --fingerprint key_value

      Der Befehl sollte einen Fingerabdruck zurückgeben, der mit 4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC identisch ist. Wenn der Fingerabdruck nicht übereinstimmt, führen Sie das EFA-Installationsskript nicht aus und wenden Sie sich an den Support.

    3. Laden Sie die Signaturdatei herunter und überprüfen Sie die Signatur der EFA-Tarball-Datei.

      $ wget https://efa-installer.amazonaws.com/aws-efa-installer-1.50.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.50.0.tar.gz.sig

      Das folgende Beispiel zeigt eine Ausgabe.

      gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC gpg: Good signature from "Amazon EC2 EFA <ec2-efa-maintainers@amazon.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC

      Wenn das Ergebnis Good signature enthält und der Fingerabdruck mit dem Fingerabdruck übereinstimmt, der im vorherigen Schritt zurückgegeben wurde, fahren Sie mit dem nächsten Schritt fort. Wenn nicht, führen Sie das EFA-Installationsskript nicht aus und wenden Sie sich an den Support.

  4. Extrahieren Sie die Daten aus der komprimierten .tar.gz-Datei und wechseln Sie in das extrahierte Verzeichnis.

    $ tar -xf aws-efa-installer-1.50.0.tar.gz && cd aws-efa-installer
  5. (Optional) Überprüfen Sie einzelne Paketsignaturen während der Installation.

    Ab dem EFA-Installationsprogramm 1.48.0 enthält das Installationsprogramm GPG-signed einzelne RPM- und DEB-Pakete. Verwenden Sie das Flag, um die Echtheit und Integrität jedes einzelnen Pakets während der Installation zu überprüfen. --check-signatures Wenn Sie dieses Flag aktivieren, überprüft das Installationsprogramm zuerst alle Paketsignaturen und fährt erst mit der Installation fort, wenn jedes Paket die Überprüfung bestanden hat. Wenn ein Paket die Überprüfung nicht besteht, wird das Installationsprogramm sofort beendet, ohne dass etwas installiert wird.

    1. Laden Sie den öffentlichen GPG-Schlüssel herunter.

      $ wget https://efa-installer.amazonaws.com/aws-efa-installer.key
    2. Exportieren Sie den Schlüsselpfad. Fügen Sie dann im nächsten Schritt den Installationsbefehl --check-signatures hinzu und verwenden Sie sudo -E instead of, sudo um die Umgebungsvariable beizubehalten.

      $ export EFA_INSTALLER_KEY=$(pwd)/aws-efa-installer.key

    Auf RPM-based Systemen (Amazon Linux 2023, RHEL, Rocky Linux und SUSE) überprüft das Installationsprogramm jedes RPM mithilfe von. rpm --checksig Auf DEB-based Systemen (Ubuntu, Debian) verifiziert das Installationsprogramm jedes DEB mithilfe der GPG-Signaturüberprüfung. Wenn die Überprüfung eines Pakets fehlschlägt, wird die Installation sofort abgebrochen.

    Anmerkung

    Die --check-signatures Flagge ist optional. Ohne sie führt das Installationsprogramm keine individuelle Signaturüberprüfung durch.

  6. Führen Sie das EFA-Software-Installationsskript aus.

    Anmerkung

    Wenn Sie den vorherigen optionalen Schritt zur Einrichtung der Paketsignaturüberprüfung abgeschlossen haben, fügen Sie den Befehl --check-signatures an den Installationsbefehl an und verwenden Sie sudo -E stattdessen. sudo Beispiel: sudo -E ./efa_installer.sh -y --mpi=openmpi5 --check-signatures.

    Anmerkung

    Ab EFA 1.30.0 sind sowohl Open MPI 4.1 als auch Open MPI 5 standardmäßig installiert. Sofern Sie Open MPI 4.1 nicht benötigen, installieren Sie nur Open MPI 5. Mit dem folgenden Befehl wird nur Open MPI 5 installiert. Wenn Sie Open MPI 4.1 und Open MPI 5 installieren möchten, entfernen Sie das Programm. --mpi=openmpi5

    $ sudo ./efa_installer.sh -y --mpi=openmpi5

    Libfabric ist im /opt/amazon/efa-Verzeichnis installiert. Das Plug-In aws-ofi-nccl ist im /opt/amazon/ofi-nccl-Verzeichnis installiert. Open MPI ist im /opt/amazon/openmpi-Verzeichnis installiert.

  7. Wenn das EFA-Installationsprogramm Sie auffordert, die Instance neu zu starten, tun Sie dies und stellen Sie dann erneut eine Verbindung mit der Instance her. Melden Sie sich andernfalls von der Instance ab und wieder an, um die Installation abzuschließen.

  8. Vergewissern Sie sich, dass die EFA-Software erfolgreich installiert wurde.

    $ fi_info -p efa -t FI_EP_RDM

    Der Befehl muss Informationen zu den Libfabric-EFA-Schnittstellen zurückgeben.

Schritt 6: Installieren der NCCL

Installieren Sie die NCCL Weitere Informationen zur NCCL finden Sie im NCCL-Repository.

So installieren Sie die NCCL
  1. Navigieren Sie zum Verzeichnis /opt.

    $ cd /opt
  2. Klonen Sie das offizielle NCCL-Repository in die Instance und navigieren Sie zum lokal geklonten Repository.

    $ sudo git clone https://github.com/NVIDIA/nccl.git -b v2.30.4-1 && cd nccl
  3. Erstellen und installieren Sie die NCCL und geben Sie das CUDA-Installationsverzeichnis an.

    $ sudo make -j src.build CUDA_HOME=/usr/local/cuda-13

Schritt 7: Installieren der NCCL-Tests

Installieren Sie die NCCL-Tests. Mit den NCCL-Tests können Sie bestätigen, dass die NCCL richtig installiert wurde und wie erwartet funktioniert. Weitere Informationen zu den NCCL-Tests finden Sie unter nccl-tests repository.

So installieren Sie die NCCL-Tests
  1. Navigieren Sie zum Stammverzeichnis.

    $ cd $HOME
  2. Klonen Sie das offizielle nccl-tests-Repository in die Instance und navigieren Sie zum lokal geklonten Repository.

    $ git clone https://github.com/NVIDIA/nccl-tests.git && cd nccl-tests
  3. Fügen Sie das libfabric-Verzeichnis in die Variable LD_LIBRARY_PATH ein.

    • Amazon Linux 2023

      $ export LD_LIBRARY_PATH=/opt/amazon/efa/lib64:$LD_LIBRARY_PATH
    • Ubuntu und Debian

      $ export LD_LIBRARY_PATH=/opt/amazon/efa/lib:$LD_LIBRARY_PATH
    • REGEL 10

      $ export LD_LIBRARY_PATH=/opt/amazon/efa/lib64:$LD_LIBRARY_PATH
  4. Installieren Sie die NCCL-Tests und geben Sie die Installationsverzeichnisse für MPI, NCCL und CUDA an.

    $ make MPI=1 MPI_HOME=/opt/amazon/openmpi NCCL_HOME=/opt/nccl/build CUDA_HOME=/usr/local/cuda-13

Schritt 8: Testen der EFA- und NCCL-Konfiguration

Führen Sie einen Test durch, um sicherzustellen, dass Ihre temporäre Instance richtig für EFA und NCCL konfiguriert ist.

So testen Sie EFA- und NCCL-Konfiguration
  1. Erstellen Sie eine Host-Datei, die die Hosts angibt, auf denen die Tests ausgeführt werden sollen. Der folgende Befehl erstellt eine Host-Datei namens my-hosts, die eine Referenz auf die Instance selbst enthält.

    IMDSv2
    [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/local-ipv4 >> my-hosts
    IMDSv1
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-ipv4 >> my-hosts
  2. Führen Sie den NCCL-Test aus. Der folgende Befehl geht davon aus, dass Sie 8 GPUs pro Instanz haben. Passen Sie die -N Werte -n und entsprechend Ihrem Instance-Typ an.

    $ /opt/amazon/openmpi/bin/mpirun \ -x FI_EFA_USE_DEVICE_RDMA=1 \ -x LD_LIBRARY_PATH=/opt/nccl/build/lib:/usr/local/cuda/lib64:/opt/amazon/efa/lib:/opt/amazon/openmpi/lib:/opt/amazon/ofi-nccl/lib:$LD_LIBRARY_PATH \ -x NCCL_DEBUG=INFO \ --hostfile my-hosts -n 8 -N 8 \ --mca pml ^cm --mca btl tcp,self --mca btl_tcp_if_exclude lo,docker0 --bind-to none \ $HOME/nccl-tests/build/all_reduce_perf -b 8 -e 1G -f 2 -g 1 -c 1 -n 100
  3. Sie können bestätigen, dass EFA als zugrunde liegender Anbieter für NCCL aktiv ist, wenn das NCCL_DEBUG-Protokoll gedruckt wird.

    ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Selected Provider is efa*

    Die folgenden zusätzlichen Informationen werden angezeigt, wenn Sie eine p4d.24xlarge-Instance verwenden.

    ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Running on P4d platform, Setting NCCL_TOPO_FILE environment variable to /home/ec2-user/install/plugin/share/aws-ofi-nccl/xml/p4d-24xl-topo.xml

Schritt 9: Installieren der Machine-Learning-Anwendungen

Installieren Sie die Machine-Learning-Anwendungen auf der temporären Instance. Der Installationsvorgang variiert je nach Machine-Learning-Anwendung. Weitere Informationen zur Installation von Software auf Ihrer Linux-Instance finden Sie unter Manage OS updates im Amazon Linux 2023 User Guide.

Anmerkung

In der Dokumentation Ihrer Machine-Learning-Anwendung finden Sie Installationsanleitungen.

Schritt 10: Erstellen Sie eine EFA und ein AMI NCCL-enabled

Nachdem Sie die erforderlichen Softwarekomponenten installiert haben, erstellen Sie ein AMI, das Sie wiederverwenden können, um Ihre EFA-enabled Instances zu starten.

So erstellen Sie ein AMI aus Ihrer temporären Instance:
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Instances aus.

  3. Wählen Sie die temporäre Instance aus, die Sie erstellt haben, und wählen Sie anschließend Actions (Aktionen), Image und Create Image (Image erstellen) aus.

  4. Gehen Sie bei Create Image (Image erstellen) wie folgt vor:

    1. Geben Sie unter Image name (Image-Name) einen beschreibenden Namen für das AMI ein.

    2. (Optional:) Geben Sie bei Image description (Image-Beschreibung) eine kurze Beschreibung des Zwecks des AMI ein.

    3. Wählen Sie Create Image (Image erstellen) aus.

  5. Wählen Sie im Navigationsbereich die Option AMIs.

  6. Suchen Sie das AMI, das Sie erstellt haben, in der Liste. Warten Sie, bis der Status von pending zu available wechselt, bevor Sie mit dem nächsten Schritt fortfahren.

Schritt 11: Beenden der temporären Instance

An diesem Punkt benötigen Sie die temporäre Instance, die Sie gestartet haben, nicht mehr. Sie können die Instance beenden, damit keine weiteren Kosten dafür anfallen.

So beenden Sie die temporäre Instance:
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Instances aus.

  3. Wählen Sie die temporäre instance aus, die Sie erstellt haben, und wählen Sie anschließend Actions (Aktionen), Instance state (Instance-Zustand) und Terminate instance (Instance beenden) aus.

  4. Wählen Sie Terminate (Kündigen) aus, wenn Sie zur Bestätigung aufgefordert werden.

Schritt 12: Starten Sie EFA und NCCL-enabled Instances in einer Cluster-Placement-Gruppe

Starten Sie Ihre EFA und Ihre NCCL-enabled Instances mithilfe des EFA-enabled AMI und der EFA-enabled Sicherheitsgruppe, die Sie zuvor erstellt haben, in einer Cluster-Placement-Gruppe.

Anmerkung
  • Es ist keine absolute Voraussetzung, Ihre EFA-enabled Instances in einer Cluster-Placement-Gruppe zu starten. Wir empfehlen jedoch, Ihre EFA-enabled Instances in einer Cluster-Placement-Gruppe auszuführen, da dadurch die Instances in einer Gruppe mit niedriger Latenz in einer einzigen Availability Zone gestartet werden.

  • Um die Verfügbarkeit von Kapazitäten sicherzustellen, wenn Sie die Instances Ihres Clusters skalieren, können Sie eine Kapazitätsreservierung für Ihre Cluster-Placement-Gruppe erstellen. Weitere Informationen finden Sie unter Verwenden Sie Kapazitätsreservierungen für Vermittlungsgruppen.

New console
So starten Sie eine temporäre Instance
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Instances und dann Instances starten aus, um den Launch Instance Wizard zu öffnen.

  3. (Optional) Geben Sie im Bereich Name and tags (Name und Tags) einen Namen für die Instance an, z. B. EFA-instance. Der Name wird der Instance als Ressourcen-Tag (Name=EFA-instance) zugewiesen.

  4. Wählen Sie im Bereich Application and OS Images (Anwendungs- und Betriebssystem-Images) My AMIs (Meine AMIs) und dann das AMI aus, das Sie im vorherigen Schritt erstellt haben.

  5. Wählen Sie im Bereich Instance type (Instance-Typ) entweder p3dn.24xlarge oder p4d.24xlarge aus.

  6. Wählen Sie im Bereich Key pair (Schlüsselpaar) das Schlüsselpaar aus, das für die Instance verwendet werden soll.

  7. Wählen Sie im Bereich Network settings (Netzwerkeinstellungen) Edit (Bearbeiten) aus und führen Sie dann Folgendes aus:

    1. Wählen Sie unter Subnetz das Subnetz aus, in dem die Instance gestartet werden soll. Wenn Sie kein Subnetz auswählen, können Sie die Instance nicht für EFA aktivieren.

    2. Wählen Sie bei Firewall (security groups) Firewall (Sicherheitsgruppen) Select existing security group (Vorhandene Sicherheitsgruppe auswählen) und dann die Sicherheitsgruppe aus, die Sie im vorherigen Schritt erstellt haben.

    3. Erweitern Sie den Abschnitt Erweiterte Netzwerkkonfiguration.

      Wählen Sie für Netzwerkschnittstelle 1 Netzwerkkartenindex = 0, Geräteindex = 0 und Schnittstellentyp = EFA mit ENA aus.

      (Optional) Wenn Sie einen Instance-Typ mit mehreren Karten wie p4d.24xlarge oder p5.48xlarge verwenden, wählen Sie für jede weitere erforderliche Netzwerkschnittstelle die Option Netzwerkschnittstelle hinzufügen aus. Wählen Sie für Netzwerkkartenindex den nächsten unbenutzten Index aus, und wählen Sie dann Geräteindex = 1 und Schnittstellentyp = EFA mit ENA oder aus. EFA-only

  8. (Optional) Konfigurieren Sie im Bereich Storage (Speicher) die Volumes nach Bedarf.

  9. Wählen Sie im Bereich Advanced details (Erweiterte Details) bei Placement group name (Placement-Gruppen-Name) die Cluster-Placement-Gruppe aus, in der die Instance gestartet werden soll. Wenn Sie eine neue Cluster-Placement-Gruppe erstellen müssen, wählen Sie Create new placement group (Neue Placement-Gruppe erstellen).

  10. Geben Sie im Bereich Zusammenfassung auf der rechten Seite für Anzahl der Instances die Anzahl der Instances ein, die Sie starten möchten, und wählen Sie dann Launch EFA-enabled Instance aus.

Old console
Um Ihre EFA und NCCL-enabled Instances in einer Cluster-Placement-Gruppe zu starten
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Launch Instance aus.

  3. Wählen Sie auf der Seite Choose an AMI (AMI auswählen) die Option My AMIs (Meine AMIs), suchen Sie das AMI, das Sie zuvor erstellt haben, und wählen Sie anschließend Select (Auswählen) aus.

  4. Wählen Sie auf der Seite Choose an Instance Type (Instance-Typ auswählen) die Option p3dn.24xlarge und dann Next: Configure Instance Details (Weiter: Instance-Details konfigurieren) aus.

  5. Führen Sie auf der Seite Configure Instance Details (Instance-Details konfigurieren) die folgenden Schritte aus:

    1. Geben Sie für Anzahl der Instances die Anzahl der EFA und NCCL-enabled Instances ein, die Sie starten möchten.

    2. Wählen Sie für Network (Netzwerk) und Subnet (Subnetz) die VPC und das Subnetz an, in das Sie die Instances starten möchten.

    3. Wählen Sie für Placement group (Placement-Gruppe) die Option Add instance to placement group (Instance der Placement-Gruppe hinzufügen) aus.

    4. Wählen Sie bei Placement group name (Name der Placement-Gruppe) die Option Add to a new placement group (Zu neuer Placement-Gruppe hinzufügen) aus und geben Sie dann einen beschreibenden Namen für die Placement-Gruppe ein. Wählen Sie dann bei Placement group strategy (Strategie für Placement-Gruppe) cluster aus.

    5. Wählen Sie für EFA Enable (Aktivieren) aus.

    6. Wählen Sie im Abschnitt Network Interfaces (Netzwerkschnittstellen für das Gerät eth0 die Option New network interface (Neue Netzwerkschnittstelle) aus. Sie können zudem optional eine primäre IPv4-Adresse und eine oder mehrere sekundäre IPv4-Adressen eingeben. Wenn Sie die Instance in einem Subnetz starten, dem ein IPv6-CIDR-Block zugeordnet ist, können Sie optional eine primäre IPv6-Adresse und eine oder mehrere sekundäre IPv6-Adressen angeben.

    7. Wählen Sie Next: Add Storage aus.

  6. Geben Sie auf der Seite Add Storage (Speicher hinzufügen) die Volumes an, die an die Instances angefügt werden sollen, ergänzend zu den Volumes, die vom AMI angegeben werden (z. B. der Root-Gerät-Volume). Wählen Sie dann Next: Add Tags (Weiter: Tags (Markierungen) hinzufügen) aus.

  7. Geben Sie auf der Seite Add Tags (Tags (Markierungen) hinzufügen) Tags (Markierungen) für die Instances an, z. B. einen benutzerfreundlichen Namen, und wählen Sie anschließend Next: Configure Security Group (Weiter: Sicherheitsgruppe konfigurieren).

  8. Wählen Sie auf der Seite Configure Security Group (Sicherheitsgruppe konfigurieren) bei Assign a security group (Sicherheitsgruppe zuweisen) die Option Select an existing security group (Vorhandene Sicherheitsgruppe auswählen) und dann die Sicherheitsgruppe aus, die Sie zuvor erstellt haben.

  9. Klicken Sie auf Review and Launch.

  10. Überprüfen Sie auf der Seite Review Instance Launch (Instance-Start überprüfen) Ihre Einstellungen und wählen Sie anschließend Launch (Starten) aus, um ein Schlüsselpaar auszuwählen und Ihre Instance zu starten.

Schritt 13: Aktivieren von passwortlosem SSH

Anmerkung

Der Standard-SSH-Benutzer variiert je nach Betriebssystem: ubuntu für Ubuntu, admin für Debian, ec2-user für Amazon Linux und RHEL.

Damit Ihre Anwendungen auf allen Instances in Ihrem Cluster ausgeführt werden können, müssen Sie passwortlosen SSH-Zugriff vom Führungsknoten auf die Mitgliedsknoten aktivieren. Der Führungsknoten ist die Instance, von der aus Sie die Anwendungen ausführen. Die verbleibenden Instances im Cluster sind die Mitgliedsknoten.

So aktivieren Sie passwortloses SSH zwischen den Instances im Cluster:
  1. Wählen Sie eine Instance im Cluster als Führungsknoten aus und stellen Sie eine Verbindung zu ihr her.

  2. Deaktivieren Sie strictHostKeyChecking und aktivieren Sie ForwardAgent für den Führungsknoten. Öffnen Sie ~/.ssh/config mit dem bevorzugten Texteditor und fügen Sie Folgendes hinzu.

    Host * ForwardAgent yes Host * StrictHostKeyChecking no
  3. Generieren Sie ein RSA-Schlüsselpaar.

    $ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa

    Das Schlüsselpaar wird im $HOME/.ssh/-Verzeichnis erstellt.

  4. Ändern Sie die Berechtigungen des privaten Schlüssels auf dem Führungsknoten.

    $ chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/config
  5. Öffnen Sie ~/.ssh/id_rsa.pub mit Ihrem bevorzugten Texteditor und kopieren Sie den Schlüssel.

  6. Gehen Sie für jeden Mitgliedsknoten im Cluster wie folgt vor:

    1. Stellen Sie eine Verbindung mit der Instance her.

    2. Öffnen Sie ~/.ssh/authorized_keys mit Ihrem bevorzugten Texteditor und fügen Sie den öffentlichen Schlüssel hinzu, den Sie zuvor kopiert haben.

  7. Um zu testen, ob das passwortlose SSH wie erwartet funktioniert, stellen Sie eine Verbindung zum Leaderknoten her und führen Sie den folgenden Befehl aus.

    $ ssh member_node_private_ip

    Sie sollten eine Verbindung zum Mitgliedsknoten herstellen können, ohne zur Eingabe eines Schlüssels oder Passworts aufgefordert zu werden.