Unterstützung für die Verbesserung dieser Seite beitragen
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.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
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.
Neuron-Geräte auf Amazon EKS verwalten
AWS Trainium und AWS Inferentia sind speziell entwickelte Chips für maschinelles Lernen, die von entwickelt wurden. AWS Amazon EKS unterstützt zwei Mechanismen für die Verwaltung von Neuron-Geräten in EKS-Clustern: den Neuron DRA-Treiber und das Neuron Kubernetes-Geräte-Plugin.
Es wird empfohlen, den Neuron DRA-Treiber für neue Bereitstellungen auf EKS-Clustern zu verwenden, auf denen Kubernetes Version 1.34 oder höher ausgeführt wird. Der Neuron DRA-Treiber ermöglicht eine topologieorientierte Zuordnung, die Planung von Teilmengen verbundener Geräte, die logische Konfiguration NeuronCore (LNC) und die Zuweisung mehrerer Knoten, ohne dass benutzerdefinierte Scheduler-Erweiterungen erforderlich sind. UltraServer Das Neuron-Geräte-Plugin wird weiterhin unterstützt.
Neuron DRA-Treiber im Vergleich zum Neuron-Geräte-Plugin
| Feature | Neuron DRA-Treiber | Neuron-Geräte-Plugin |
|---|---|---|
|
Mindestversion von Kubernetes |
1.34 |
Alle von EKS unterstützten Kubernetes-Versionen |
|
Automatischer Modus von Karpenter und EKS |
Nicht unterstützt |
Unterstützt |
|
EKS-optimierte AMI-Unterstützung |
AL2023 |
AL2023, Bottlerocket |
|
Werbung für Geräte |
Umfangreiche Attribute über |
Ganzzahlzahl und erweiterte |
|
Untergruppen verbundener Geräte |
Ordnen Sie mithilfe von Topologiebeschränkungen Teilmengen von 1, 4, 8 oder 16 verbundenen Neuron-Geräten zu |
Erfordert die Neuron Scheduler-Erweiterung |
|
LNC-Konfiguration |
Logische NeuronCore Konfiguration pro Workload (LNC=1 oder LNC=2) über Parameter |
Erfordert eine Vorkonfiguration in EC2-Startvorlagen |
|
Attributbasierte Auswahl |
Filtern Sie Geräte mithilfe von CEL-Ausdrücken nach Instanztyp, Treiberversion und anderen Attributen |
Nicht unterstützt |
Installieren Sie den Neuron DRA-Treiber
Der Neuron DRA-Treiber bewirbt Neuron-Geräte als ResourceSlice Objekte mit dem Namen. DeviceClass neuron.aws.com Der Treiber läuft als DaemonSet und erkennt automatisch Neuron-Geräte und ihre Topologieattribute.
Detaillierte Informationen zum Neuron DRA-Treiber finden Sie in der Neuron DRA-Dokumentation.
Die Verwendung des Neuron DRA-Treibers mit Bottlerocket wird derzeit nicht unterstützt.
Voraussetzungen
-
Ein Amazon EKS-Cluster, auf dem Kubernetes Version 1.34 oder höher ausgeführt wird.
-
Knoten mit den Instance-Typen AWS Trainium oder Inferentia2.
-
Weitere Informationen finden Sie in den Anweisungen zur Einrichtung von Helm.
-
kubectlkonfiguriert für die Kommunikation mit Ihrem Cluster, weitere Informationen finden Sie unterInstallieren oder Aktualisieren von kubectl.
Verfahren
Wichtig
Installieren Sie den Neuron DRA-Treiber nicht auf Knoten, auf denen das Neuron-Geräte-Plugin ausgeführt wird. Die beiden Mechanismen können nicht auf demselben Knoten koexistieren. Updates finden Sie unter Upstream Kubernetes KEP-5004
-
Installieren Sie den Neuron DRA-Treiber mit Helm.
helm upgrade --install neuron-helm-chart oci://public.ecr.aws/neuron/neuron-helm-chart \ --namespace neuron-dra-driver \ --create-namespace \ --set "devicePlugin.enabled=false" \ --set "npd.enabled=false" \ --set "draDriver.enabled=true"Der Treiber wird standardmäßig als DaemonSet im
neuron-dra-driverNamespace mit dem bereitgestellt.DeviceClassneuron.aws.com -
Stellen Sie sicher, dass der DRA-Treiber ausgeführt DaemonSet wird.
kubectl get ds -n neuron-dra-driver neuron-dra-driver-kubelet-pluginNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE neuron-dra-driver-kubelet-plugin 1 1 1 1 1 <none> 60s -
Stellen Sie sicher, dass der erstellt
DeviceClasswurde.kubectl get deviceclass neuron.aws.comNAME AGE neuron.aws.com 60s -
Vergewissern Sie sich, dass
ResourceSliceObjekte für Ihre Knoten angekündigt wurden.kubectl get resourceslice
Informationen zu den verfügbaren ResourceSlice Objektattributen finden Sie in der Neuron DRA-Dokumentation
Neuron-Geräte in einem Pod anfordern
Um Neuron-Geräte mithilfe des DRA-Treibers anzufordern, erstellen Sie einen, der auf den verweistResourceClaimTemplate, neuron.aws.com DeviceClass und referenzieren Sie ihn in Ihrer Pod-Spezifikation.
Im folgenden Beispiel werden alle Neuron-Geräte auf einer trn2.48xlarge Instanz angefordert:
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: all-neurons spec: spec: devices: requests: - name: neurons exactly: deviceClassName: neuron.aws.com selectors: - cel: expression: "device.attributes['neuron.aws.com'].instanceType == 'trn2.48xlarge'" allocationMode: All --- apiVersion: v1 kind: Pod metadata: name: neuron-workload spec: containers: - name: app ... resources: claims: - name: neurons resourceClaims: - name: neurons resourceClaimTemplateName: all-neurons
Ordnen Sie Teilmengen verbundener Geräte zu
Der Neuron DRA-Treiber kann Teilmengen verbundener Neuron-Geräte zuweisen, ohne dass die Neuron Scheduler-Erweiterung erforderlich ist.matchAttribute Einschränkung mit einer Topologiegruppen-ID, um sicherzustellen, dass Geräte angeschlossen sind.
Im folgenden Beispiel werden 4 verbundene Neuron-Geräte angefordert:
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: 1x4-connected-neurons spec: spec: devices: requests: - name: neurons exactly: deviceClassName: neuron.aws.com allocationMode: ExactCount count: 4 selectors: - cel: expression: "device.attributes['neuron.aws.com'].instanceType == 'trn2.48xlarge'" constraints: - requests: ["neurons"] matchAttribute: "resource.aws.com/devicegroup4_id"
Die unterstützten matchAttribute Werte für verbundene Teilmengen sindresource.aws.com/devicegroup1_id, resource.aws.com/devicegroup4_idresource.aws.com/devicegroup8_id, und. resource.aws.com/devicegroup16_id
Logisch NeuronCores (LNC) konfigurieren
Der Neuron DRA-Treiber ermöglicht die logische NeuronCore Konfiguration pro Workload über Parameter. ResourceClaimTemplate Dadurch entfällt die Notwendigkeit, LNC in EC2-Startvorlagen vorzukonfigurieren.
Im folgenden Beispiel werden alle Neuron-Geräte angefordert, bei denen LNC auf 1 gesetzt ist:
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: all-neurons-lnc-1 spec: spec: devices: requests: - name: neurons exactly: deviceClassName: neuron.aws.com selectors: - cel: expression: "device.attributes['neuron.aws.com'].instanceType == 'trn2.48xlarge'" allocationMode: All config: - requests: ["neurons"] opaque: driver: neuron.aws.com parameters: apiVersion: neuron.aws.com/v1 kind: NeuronConfig logicalNeuronCore: 1
Installieren Sie das Neuron Kubernetes-Geräte-Plugin
Das Neuron Kubernetes-Geräte-Plugin bewirbt Neuron-Geräte als und als erweiterte Ressourcen. aws.amazon.com/neuron NeuronCores aws.amazon.com/neuroncore Sie fordern Neuron-Geräte in Container-Ressourcenanfragen und Grenzwerten an.
Voraussetzungen
-
Ein Amazon EKS-Cluster.
-
Knoten mit installierten Komponenten auf Host-Ebene für AWS Trainium- oder Inferentia-Instances. AWS Diese sind enthalten, wenn Sie EKS Accelerated oder EKS AL2023 Bottlerocket verwenden. AMIs AMIs
-
Weitere Informationen finden Sie in den Anweisungen zur Einrichtung von Helm.
-
kubectlkonfiguriert für die Kommunikation mit Ihrem Cluster, weitere Informationen finden Sie unterInstallieren oder Aktualisieren von kubectl.
Verfahren
-
Installieren Sie das Neuron Kubernetes-Geräte-Plugin mit Helm.
helm upgrade --install neuron-helm-chart oci://public.ecr.aws/neuron/neuron-helm-chart \ --set "npd.enabled=false" -
Stellen Sie sicher, dass das Neuron-Geräte-Plugin läuft. DaemonSet
kubectl get ds -n kube-system neuron-device-pluginNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE neuron-device-plugin 1 1 1 1 1 <none> 60s -
Stellen Sie sicher, dass Ihre Knoten über zuweisbare Neuron-Geräte verfügen.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,NeuronDevice:.status.allocatable.aws\.amazon\.com/neuron,NeuronCore:.status.allocatable.aws\.amazon\.com/neuroncore"NAME NeuronDevice NeuronCore ip-192-168-47-173.us-west-2.compute.internal 1 2
Verifizieren Sie Neuron-Geräte mit einem Test-Pod
Sie können überprüfen, ob auf Neuron-Geräte zugegriffen werden kann, indem Sie das neuron-ls Tool in einem Test-Pod ausführen.
-
Erstellen Sie eine Datei mit dem Namen
neuron-ls.yamlund dem folgenden Inhalt. Dieses Manifest startet einen Neuron Monitor-Container, in dem das neuron-lsTool installiert ist.apiVersion: v1 kind: Pod metadata: name: neuron-ls spec: restartPolicy: Never containers: - name: neuron-container image: public.ecr.aws/g4h4h0b5/neuron-monitor:1.0.0 command: ["/bin/sh"] args: ["-c", "neuron-ls"] resources: limits: aws.amazon.com/neuron: 1 tolerations: - key: "aws.amazon.com/neuron" operator: "Exists" effect: "NoSchedule" -
Das Manifest anwenden.
kubectl apply -f neuron-ls.yaml -
Nachdem der Pod fertig ausgeführt wurde, sehen Sie sich seine Protokolle an.
kubectl logs neuron-lsEine Beispielausgabe sieht wie folgt aus.
instance-type: inf2.xlarge instance-id: ... +--------+--------+--------+---------+ | NEURON | NEURON | NEURON | PCI | | DEVICE | CORES | MEMORY | BDF | +--------+--------+--------+---------+ | 0 | 2 | 32 GB | 00:1f.0 | +--------+--------+--------+---------+
Anmerkung
Wenn Sie das Neuron-Geräte-Plug-In verwenden, erfordert eine zusammenhängende Gerätezuweisung auf Instanzen mit mehreren Neuron-Geräten (z. B.trn2.48xlarge) die Neuron Kubernetes-Scheduler-Erweiterung.
Weitere Informationen zur Verwendung von Neuron-Geräten mit Amazon EKS finden Sie in der Neuron-Dokumentation zur Ausführung auf