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.
Netzwerk
Ziehen Sie eine höhere Netzwerkbandbreite oder einen Elastic Fabric-Adapter für Anwendungen mit hoher Kommunikation zwischen Knoten in Betracht
Für verteilte Trainingsworkloads auf Amazon EKS mit hohen Kommunikationsanforderungen zwischen den Knoten sollten Sie Instances mit höherer Netzwerkbandbreite oder Elastic Fabric Adapter (EFA) auswählen. Eine unzureichende Netzwerkleistung kann zu Engpässen bei der Datenübertragung führen und Aufgaben des maschinellen Lernens wie verteiltes Training mit mehreren GPUs verlangsamen. Beachten Sie, dass bei Inferenz-Workloads in der Regel keine hohe Kommunikation zwischen den Knoten stattfindet.
Beispiel
Verwenden Sie zum Beispiel Karpenter:
apiVersion: v1 kind: Pod metadata: name: ml-workload spec: nodeSelector: karpenter.k8s.aws/instance-network-bandwidth: "100000" # 100 Gbps in Mbps node.kubernetes.io/instance-type: p5.48xlarge # EFA-enabled instance containers: - name: training-job image: `763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:2.6.0-gpu-py312-cu124-ubuntu22.04-ec2-v1.6` resources: limits: vpc.amazonaws.com/efa: 1 # Requires EFA device plugin
Stellen Sie sicher, dass Tools wie MPI und NCCL in Ihrem Container-Image installiert sind, um EFA für Schulungsaufgaben nutzen zu können.
Erhöhen Sie die Anzahl der verfügbaren IP-Adressen, um schnellere Pod-Startzeiten zu ermöglichen
In EKS benötigt jeder Pod eine IP-Adresse aus dem VPC-CIDR-Block. Wenn Ihr Cluster mit mehr Knoten und Pods skaliert wird, riskieren Sie eine Erschöpfung der IP-Adressen oder eine langsamere Leistung. Durch die Aktivierung der Präfix-Delegierung können diese Probleme jedoch behoben werden, indem IP-Bereiche vorab zugewiesen und EC2 API-Aufrufe reduziert werden, was zu schnelleren Pod-Startzeiten und verbesserter Skalierbarkeit führt.
Wenn Sie die Präfix-Delegierung nach der Erstellung Ihres Clusters aktivieren, kann das VPC Container Network Interface (CNI) Netzwerkschnittstellen auf Instances IP-Präfixe (/28, jeweils 16 IP-Adressen) zuweisen. EC2 Das bedeutet, dass jeder Knoten mehr Pods unterstützen kann, wodurch das Risiko von IP-Knappheit reduziert wird. Auf einer c5.4xlarge
Instance können Sie beispielsweise bis zu 110 Pods mit Präfix-Delegierung unterstützen.
Während die Präfix-Delegierung für die Optimierung der IP-Nutzung in Umgebungen mit vielen kleinen Pods entscheidend ist, verwenden AI/ML Workloads oft weniger, größere Pods (z. B. ein Pod pro GPU). Durch die Aktivierung der Präfix-Delegierung kann die VPC-CNI vorab ein Präfix für einen schnelleren Pod-Start zuweisen, indem ein warmer Pool aufrechterhalten wird. Das bedeutet, dass IP-Adressen jederzeit verfügbar sind, was den Zeitaufwand für die Pod-Initialisierung im Vergleich zur On-Demand-Zuweisung im Modus ohne Präfix reduziert. In solchen Fällen bieten die IP-Einsparungen durch die Aktivierung der Präfix-Delegierung Leistungsvorteile für AI/ML Workloads. Durch die Reduzierung der Anzahl der EC2 API-Aufrufe, die für die IP-Adresskonfiguration und die Vorabzuweisung von IP-Bereichen erforderlich sind, ermöglicht die Verwendung der Präfix-Delegierung schnellere Pod-Startzeiten, was besonders für die schnelle Skalierung von Workloads von Vorteil ist. AI/ML
So aktivieren Sie die Präfix-Delegierung:
kubectl set env daemonset/aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
Sorgen Sie für eine angemessene Planung der VPC-Subnetze, um eine Überlastung der IP-Adressen zu vermeiden, insbesondere bei großen Bereitstellungen, und verwalten Sie CIDR-Blöcke, um Überschneidungen zwischen den einzelnen Bereichen zu vermeiden. VPCs Weitere Informationen finden Sie unter Optimieren der IP-Adressnutzung und Zuweisen von mehr IP-Adressen zu Amazon EKS-Knoten mit Präfixen.