Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kelola perangkat Neuron di Amazon EKS
AWS Trainium dan AWS Inferentia adalah chip pembelajaran mesin yang dibuat khusus yang dirancang oleh. AWS Amazon EKS mendukung dua mekanisme untuk mengelola perangkat Neuron di cluster EKS: driver Neuron DRA dan plugin perangkat Neuron Kubernetes.
Disarankan untuk menggunakan driver Neuron DRA untuk penerapan baru pada cluster EKS yang menjalankan Kubernetes versi 1.34 atau yang lebih baru. Driver Neuron DRA menyediakan alokasi sadar topologi, penjadwalan subset perangkat yang terhubung, konfigurasi Logis NeuronCore (LNC), dan UltraServer alokasi multi-node tanpa memerlukan ekstensi penjadwal khusus. Plugin perangkat Neuron tetap didukung.
Driver Neuron DRA vs plugin perangkat Neuron
| Fitur | Pengemudi Neuron DRA | Plugin perangkat neuron |
|---|---|---|
|
Versi Kubernetes minimum |
1,34 |
Semua versi Kubernetes yang didukung EKS |
|
Mode Otomatis Karpenter dan EKS |
Tidak didukung |
Didukung |
|
Dukungan AMI yang dioptimalkan EKS |
AL2023 |
AL2023, Bottlerocket |
|
Iklan perangkat |
Atribut kaya melalui |
Jumlah bilangan bulat |
|
Subset perangkat yang terhubung |
Alokasikan himpunan bagian dari 1, 4, 8, atau 16 perangkat Neuron yang terhubung menggunakan kendala topologi |
Memerlukan ekstensi penjadwal Neuron |
|
Konfigurasi LNC |
Per-beban kerja NeuronCore Konfigurasi logis (LNC = 1 atau LNC = 2) melalui parameter |
Memerlukan pra-konfigurasi dalam templat peluncuran EC2 |
|
Pilihan berbasis atribut |
Filter perangkat berdasarkan jenis instans, versi driver, dan atribut lainnya menggunakan ekspresi CEL |
Tidak didukung |
Instal driver Neuron DRA
Driver Neuron DRA mengiklankan perangkat Neuron sebagai ResourceSlice objek dengan DeviceClass namaneuron.aws.com. Pengemudi berjalan sebagai DaemonSet dan secara otomatis menemukan perangkat Neuron dan atribut topologi mereka.
Informasi terperinci tentang driver Neuron DRA tersedia dalam dokumentasi Neuron DRA
Menggunakan driver Neuron DRA dengan Bottlerocket saat ini tidak didukung.
Prasyarat
-
Cluster Amazon EKS yang menjalankan Kubernetes versi 1.34 atau yang lebih baru.
-
Node dengan tipe AWS instance Trainium atau Inferentia2.
-
Helm diinstal di lingkungan baris perintah Anda, lihat petunjuk Setup Helm untuk informasi selengkapnya.
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat Instal atau perbarui kubectl untuk informasi selengkapnya.
Prosedur
penting
Jangan menginstal driver Neuron DRA pada node tempat plugin perangkat Neuron berjalan. Kedua mekanisme tidak dapat hidup berdampingan pada simpul yang sama. Lihat upstream Kubernetes KEP-5004 untuk pembaruan.
-
Instal driver Neuron DRA menggunakan 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"Driver digunakan sebagai DaemonSet di
neuron-dra-drivernamespace secara default dengan file.DeviceClassneuron.aws.com -
Verifikasi bahwa driver DRA DaemonSet sedang berjalan.
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 -
Verifikasi bahwa
DeviceClassitu telah dibuat.kubectl get deviceclass neuron.aws.comNAME AGE neuron.aws.com 60s -
Verifikasi bahwa
ResourceSliceobjek diiklankan untuk node Anda.kubectl get resourceslice
Lihat dokumentasi Neuron DRAResourceSlice objek yang tersedia.
Minta perangkat Neuron dalam Pod
Untuk meminta perangkat Neuron menggunakan driver DRA, buat referensi ResourceClaimTemplate yang mereferensikan neuron.aws.com DeviceClass dan mereferensikannya dalam spesifikasi Pod Anda.
Contoh berikut meminta semua perangkat Neuron pada sebuah trn2.48xlarge instance:
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
Alokasikan subset perangkat yang terhubung
Driver Neuron DRA dapat mengalokasikan himpunan bagian dari perangkat Neuron yang terhubung tanpa memerlukan ekstensi penjadwal NeuronmatchAttribute kendala dengan ID grup topologi untuk memastikan perangkat terhubung.
Contoh berikut meminta 4 perangkat Neuron yang terhubung:
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"
matchAttributeNilai yang didukung untuk himpunan bagian yang terhubung adalahresource.aws.com/devicegroup1_id,, resource.aws.com/devicegroup4_idresource.aws.com/devicegroup8_id, danresource.aws.com/devicegroup16_id.
Konfigurasikan Logis NeuronCores (LNC)
Driver Neuron DRA memungkinkan NeuronCore konfigurasi Logis per beban kerja melalui parameter. ResourceClaimTemplate Ini menghilangkan kebutuhan untuk melakukan pra-konfigurasi LNC di Template Peluncuran EC2.
Contoh berikut meminta semua perangkat Neuron dengan LNC disetel ke 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
Instal plugin perangkat Neuron Kubernetes
Plugin perangkat Neuron Kubernetes mengiklankan perangkat Neuron sebagai aws.amazon.com/neuron dan NeuronCores sebagai sumber daya yang diperluas. aws.amazon.com/neuroncore Anda meminta perangkat Neuron dalam permintaan dan batasan sumber daya wadah.
Prasyarat
-
Cluster Amazon EKS.
-
Node dengan komponen tingkat host dipasang untuk instance AWS Trainium atau AWS Inferentia. Ini termasuk jika menggunakan AL2023 AKSELERASI EKS AMIs atau EKS AMIs Bottlerocket.
-
Helm diinstal di lingkungan baris perintah Anda, lihat petunjuk Setup Helm untuk informasi selengkapnya.
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat Instal atau perbarui kubectl untuk informasi selengkapnya.
Prosedur
-
Instal plugin perangkat Neuron Kubernetes menggunakan Helm.
helm upgrade --install neuron-helm-chart oci://public.ecr.aws/neuron/neuron-helm-chart \ --set "npd.enabled=false" -
Verifikasi plugin perangkat Neuron DaemonSet sedang berjalan.
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 -
Verifikasi bahwa node Anda memiliki perangkat Neuron yang dapat dialokasikan.
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
Verifikasi perangkat Neuron dengan Pod uji
Anda dapat memverifikasi bahwa perangkat Neuron dapat diakses dengan menjalankan neuron-ls alat di Pod pengujian.
-
Buat file bernama
neuron-ls.yamldengan isi berikut ini. Manifes ini meluncurkan wadah Neuron Monitoryang memiliki neuron-lsalat yang diinstal.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" -
Terapkan manifes.
kubectl apply -f neuron-ls.yaml -
Setelah Pod selesai berjalan, lihat log-lognya.
kubectl logs neuron-lsContoh output adalah sebagai berikut.
instance-type: inf2.xlarge instance-id: ... +--------+--------+--------+---------+ | NEURON | NEURON | NEURON | PCI | | DEVICE | CORES | MEMORY | BDF | +--------+--------+--------+---------+ | 0 | 2 | 32 GB | 00:1f.0 | +--------+--------+--------+---------+
catatan
Saat menggunakan plugin perangkat Neuron, alokasi perangkat yang berdekatan pada instance dengan beberapa perangkat Neuron (sepertitrn2.48xlarge) memerlukan ekstensi penjadwal Neuron Kubernetes.
Untuk informasi selengkapnya tentang penggunaan perangkat Neuron dengan Amazon EKS, lihat dokumentasi Neuron untuk berjalan di EKS