Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestisci i dispositivi Neuron su Amazon EKS
AWS Trainium e AWS Inferentia sono chip di apprendimento automatico progettati appositamente da. AWS Amazon EKS supporta due meccanismi per la gestione dei dispositivi Neuron nei cluster EKS: il driver Neuron DRA e il plug-in del dispositivo Neuron Kubernetes.
Si consiglia di utilizzare il driver Neuron DRA per nuove implementazioni su cluster EKS che eseguono Kubernetes versione 1.34 o successiva. Il driver Neuron DRA fornisce l'allocazione basata sulla topologia, la pianificazione di sottoinsiemi di dispositivi connessi, la configurazione logica (LNC) e l'allocazione multinodo senza richiedere estensioni di pianificazione personalizzate. NeuronCore UltraServer Il plug-in del dispositivo Neuron rimane supportato.
Driver Neuron DRA e plug-in per dispositivi Neuron
| Funzionalità | Driver Neuron DRA | Plugin per dispositivi Neuron |
|---|---|---|
|
Versione minima di Kubernetes |
1.34 |
Tutte le versioni di Kubernetes supportate da EKS |
|
Karpenter ed EKS Auto Mode |
Non supportata |
Supportata |
|
Supporto AMI ottimizzato per EKS |
AL2023 |
AL2023, Bottlerocket |
|
Pubblicità del dispositivo |
Attributi completi tramite |
Numero intero e risorse estese |
|
Sottoinsiemi di dispositivi collegati |
Alloca sottoinsiemi di 1, 4, 8 o 16 dispositivi Neuron collegati utilizzando vincoli di topologia |
Richiede l'estensione dello scheduler Neuron per l'allocazione di dispositivi contigui |
|
Configurazione LNC |
NeuronCore Configurazione logica per carico di lavoro (LNC=1 o LNC=2) tramite parametri |
Richiede la preconfigurazione nei modelli di lancio EC2 |
|
Selezione basata sugli attributi |
Filtra i dispositivi per tipo di istanza, versione del driver e altri attributi utilizzando le espressioni CEL |
Non supportata |
Installa il driver Neuron DRA
Il driver Neuron DRA pubblicizza i dispositivi Neuron come oggetti con lo stesso nome. ResourceSlice DeviceClass neuron.aws.com Il driver funziona come un DaemonSet e rileva automaticamente i dispositivi Neuron e i relativi attributi di topologia.
Informazioni dettagliate sul driver Neuron DRA sono disponibili nella documentazione Neuron DRA.
L'utilizzo del driver Neuron DRA con Bottlerocket non è attualmente supportato.
Prerequisiti
-
Un cluster Amazon EKS che esegue Kubernetes versione 1.34 o successiva.
-
Nodi con tipi di istanze AWS Trainium o Inferentia2.
-
Helm è installato nell’ambiente a riga di comando, consulta le istruzioni di configurazione di Helm per ulteriori informazioni.
-
kubectlconfigurati per comunicare con il cluster, vedi Installazione o aggiornamento di kubectl per ulteriori informazioni.
Procedura
Importante
Non installate il driver Neuron DRA sui nodi in cui è in esecuzione il plug-in del dispositivo Neuron. I due meccanismi non possono coesistere sullo stesso nodo. Vedi upstream Kubernetes KEP-5004 per gli aggiornamenti.
-
Installa il driver Neuron DRA usando 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"Per impostazione predefinita, il driver viene distribuito come DaemonSet nel
neuron-dra-drivernamespace con.DeviceClassneuron.aws.com -
Verificare che il driver DRA sia in esecuzione. DaemonSet
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 -
Verificare che sia
DeviceClassstato creato.kubectl get deviceclass neuron.aws.comNAME AGE neuron.aws.com 60s -
Verifica che
ResourceSlicegli oggetti siano pubblicizzati per i tuoi nodi.kubectl get resourceslice
Consultate la documentazione di Neuron DRAResourceSlice.
Richiedi i dispositivi Neuron in un Pod
Per richiedere dispositivi Neuron utilizzando il driver DRA, creane uno ResourceClaimTemplate che faccia riferimento a neuron.aws.com DeviceClass e fallo riferimento nelle specifiche del tuo Pod.
L'esempio seguente richiede tutti i dispositivi Neuron su un'istanza: trn2.48xlarge
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
Alloca sottoinsiemi di dispositivi collegati
Il driver Neuron DRA può allocare sottoinsiemi di dispositivi Neuron collegati senza richiedere l'estensione dello scheduler Neuron.matchAttribute vincolo con un ID del gruppo di topologia per assicurarvi che i dispositivi siano collegati.
L'esempio seguente richiede 4 dispositivi Neuron connessi:
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"
I matchAttribute valori supportati per i sottoinsiemi connessi sonoresource.aws.com/devicegroup1_id, resource.aws.com/devicegroup4_idresource.aws.com/devicegroup8_id, e. resource.aws.com/devicegroup16_id
Configura logica NeuronCores (LNC)
Il driver Neuron DRA consente la configurazione logica per carico di lavoro tramite parametri. NeuronCore ResourceClaimTemplate Ciò elimina la necessità di preconfigurare LNC nei modelli di avvio di EC2.
L'esempio seguente richiede tutti i dispositivi Neuron con LNC impostato su 1:
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
Installa il plug-in del dispositivo Neuron Kubernetes
Il plug-in per dispositivi Neuron Kubernetes pubblicizza i dispositivi Neuron come e come risorse estese. aws.amazon.com/neuron NeuronCores aws.amazon.com/neuroncore Richiedete i dispositivi Neuron nelle richieste e nei limiti delle risorse del contenitore.
Prerequisiti
-
Un cluster Amazon EKS.
-
Nodi con componenti a livello di host installati per istanze AWS Trainium o AWS Inferentia. Questi sono inclusi se si utilizza EKS accelerated o EKS Bottlerocket AL2023 . AMIs AMIs
-
Helm è installato nell’ambiente a riga di comando, consulta le istruzioni di configurazione di Helm per ulteriori informazioni.
-
kubectlconfigurato per comunicare con il cluster, vedi Installazione o aggiornamento di kubectl per ulteriori informazioni.
Procedura
-
Installa il plug-in del dispositivo Neuron Kubernetes utilizzando Helm.
helm upgrade --install neuron-helm-chart oci://public.ecr.aws/neuron/neuron-helm-chart \ --set "npd.enabled=false" -
Verifica che il plug-in del dispositivo Neuron sia in esecuzione. 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 -
Verifica che i tuoi nodi abbiano dispositivi Neuron allocabili.
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
Verifica i dispositivi Neuron con un test Pod
Puoi verificare che i dispositivi Neuron siano accessibili eseguendo lo neuron-ls strumento in un test Pod.
-
Crea un file denominato
neuron-ls.yamlcon i seguenti contenuti. Questo manifest avvia un contenitore Neuron Monitor sucui è installato lo neuron-lsstrumento.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" -
Applicare il file manifesto.
kubectl apply -f neuron-ls.yaml -
Dopo che il Pod ha finito di funzionare, visualizza i suoi registri.
kubectl logs neuron-lsDi seguito viene riportato un output di esempio.
instance-type: inf2.xlarge instance-id: ... +--------+--------+--------+---------+ | NEURON | NEURON | NEURON | PCI | | DEVICE | CORES | MEMORY | BDF | +--------+--------+--------+---------+ | 0 | 2 | 32 GB | 00:1f.0 | +--------+--------+--------+---------+
Nota
Quando si utilizza il plug-in del dispositivo Neuron, l'allocazione di dispositivi contigui su istanze con più dispositivi Neuron (ad esempiotrn2.48xlarge) richiede l'estensione di pianificazione Neuron Kubernetes.
Per ulteriori informazioni sull'uso dei dispositivi Neuron con Amazon EKS, consulta la documentazione di Neuron per l'esecuzione su