Bantu meningkatkan 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 GitHub tautan Edit halaman ini di 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.
Gunakan GPU multi-instance (MIG) dengan GPU NVIDIA di Amazon EKS
Multi-Instance GPU
MIG paling cocok untuk inferensi multi-tenant dan beban kerja yang membutuhkan kualitas layanan yang dapat diprediksi. Ini tersedia pada GPU NVIDIA Ampere (A100), Hopper (H100 dan H200), dan Blackwell. Pada AWS, ini adalah P-family tipe instance Blackwell-based g7 dan tipe g7e instance and. Untuk daftar lengkapnya, lihat MIG-capable jenis contoh.
MIG sangat cocok ketika:
-
Anda memerlukan isolasi memori, sehingga satu beban kerja tidak dapat menghabiskan memori GPU yang dibutuhkan beban kerja lain.
-
Anda menjalankan inferensi multi-tenant di mana penyewa berbagi perangkat keras GPU tetapi memerlukan kualitas layanan per penyewa.
-
Anda sudah menjalankan pelatihan pada instans A100, H100, H200, atau Blackwell dan ingin menggunakan kembali GPU tersebut untuk beban kerja inferensi yang lebih kecil saat pelatihan tidak aktif.
Pertimbangkan pendekatan yang berbeda ketika:
-
Node Anda menggunakan jenis instans GPU yang tidak mendukung MIG, seperti
g6ekeluargag5g6,, atau. Gunakan pemot ongan waktu sebagai gantinya. -
Anda tidak perlu isolasi memori dan menginginkan konfigurasi yang paling sederhana. Gunakan pemot ongan waktu sebagai gantinya.
-
Anda perlu sering mengubah partisi GPU tanpa gangguan. Mengubah mode MIG atau tata letak partisi memerlukan reset GPU, yang dilakukan Operator GPU dengan me-reboot node.
-
Anda menjalankan pelatihan multi-GPU yang bergantung pada komunikasi kolektif atau peer-to-peer antar GPU. MIG tidak mendukung NCCL atau cross-GPU P2P.
Pertimbangan-pertimbangan
Tinjau pertimbangan berikut sebelum Anda menggunakan MIG dalam produksi.
Pertimbangan umum
-
Mengubah konfigurasi MIG memerlukan reset GPU. Mengaktifkan atau menonaktifkan mode MIG, atau mengubah tata letak partisi, memerlukan reset GPU, sehingga tidak dapat diubah di tempat. Misalnya, MIG Manager di Operator GPU NVIDIA menerapkan perubahan konfigurasi dengan menghentikan Pod GPU pada node dan me-reboot node ketika reboot diperlukan untuk mengubah mode MIG.
-
Komputasi tidak sepenuhnya sebanding dengan ukuran instance. Inst
1gans tidak memberikan bagian proporsional dari seluruh throughput GPU untuk setiap beban kerja, karena bandwidth memori dan perilaku cache berbeda di seluruh profil. Tolok ukur beban kerja Anda pada profil yang ingin Anda gunakan sebelum Anda mengukur partisi. -
Time-slicing tidak berpengaruh pada contoh MIG. Instans MIG sudah terisolasi dari perangkat keras dan tidak dapat dibagikan lebih lanjut melalui pemotongan waktu. Meminta strategi
TimeSlicingberbagi pada perangkat MIG tidak mengubah perilaku perangkat keras. Untuk berbagi satu instans MIG di seluruh kontainer, gunakan NVIDIA Multi-Process Service (MPS) sebagai gantinya. -
Komunikasi lintas GPU terbatas. Ketika MIG diaktifkan, instans MIG pada GPU yang berbeda tidak dapat menggunakan komunikasi GPU-to-GPU peer-to-peer (P2P), dan NCCL tidak bekerja dengan MIG. Multi-GPU beban kerja yang bergantung pada komunikasi kolektif atau P2P di seluruh GPU, seperti pelatihan multi-GPU tensor-paralel, memerlukan seluruh GPU sebagai gantinya. Untuk detailnya, lihat Pertimbangan Aplikasi
di Panduan Pengguna NVIDIA MIG di situs web NVIDIA.
Pertimbangan plugin perangkat NVIDIA
-
Permintaan sumber daya pod harus sesuai dengan strategi. Dengan strategi tunggal, Pods meminta
nvidia.com/gpu. Dengan strategi campuran, Pod meminta sumber daya khusus profil, seperti.nvidia.com/mig-1g.10gbPod yang meminta profil yang tidak diiklankan node tetap berada diPendingnegara bagian tersebut. Konfirmasikan sumber daya yang diiklankan dengankubectl describe node <node-name>. -
Plugin perangkat mandiri di AL2023. Jika Anda menginstal plugin perangkat NVIDIA secara terpisah, misalnya sebagai bagian dari pengaturan cluster, kecualikan dari node MIG Anda sehingga tidak bertentangan dengan plugin perangkat yang dikelola Operator GPU. Tambahkan aturan afinitas simpul ke plugin perangkat mandiri yang mengecualikan node yang memiliki
nvidia.com/mig.configlabel. -
Tidak ada dukungan pada Mode Otomatis EKS. Mode Otomatis EKS mengelola plugin perangkat NVIDIA dan tidak mengekspos konfigurasinya (lihatMenyebarkan beban kerja yang dipercepat). Anda tidak dapat mengaktifkan MIG pada node Mode Otomatis EKS. Konfigurasikan MIG pada node Karpenter yang dikelola sendiri atau grup node terkelola, tempat Anda mengontrol AMI dan pengaturan plugin perangkat.
Pertimbangan driver NVIDIA DRA
-
MIG statis membutuhkan instans yang telah dibuat sebelumnya. Dengan MIG statis, driver DRA mengalokasikan instans MIG yang ada tetapi tidak mengaktifkan mode MIG atau mempartisi GPU. Anda harus mengaktifkan mode MIG dan membuat instance terlebih dahulu, misalnya dengan MIG Manager di Operator GPU NVIDIA atau
nvidia-smi. Untuk informasi selengkapnya, lihat Gunakan MIG dengan driver NVIDIA DRA. -
Dynamic MIG adalah fitur alfa. Dengan MIG dinamis, pengemudi membuat dan menghancurkan partisi MIG sesuai permintaan sebagai respons terhadap permintaan beban kerja. Ini membutuhkan gerbang
DynamicMIGfitur, yang dinonaktifkan secara default. Untuk informasi selengkapnya, lihat Gunakan MIG dengan driver NVIDIA DRA. -
Nonaktifkan plugin perangkat bawaan di Bottlerocket. Driver DRA tidak dapat berjalan bersama plugin perangkat NVIDIA pada node yang sama. Di Bottlerocket, nonaktifkan plugin perangkat bawaan, yang memerlukan Bottlerocket versi 1.63.0 atau yang lebih baru. Untuk informasi selengkapnya, lihat Instal driver NVIDIA DRA.
-
Dukungan komputasi. Driver NVIDIA DRA didukung dengan penyediaan kapasitas statis di Karpenter, grup node yang dikelola EKS, atau node yang dikelola sendiri, dan tidak didukung dengan Mode Otomatis EKS. Untuk informasi selengkapnya, lihat NodePool dokumentasi statis Karpenter
di situs web Karpenter.
MIG-capable jenis contoh
Pada AWS, jenis instance berikut menyediakan MIG-capable GPU.
| Tipe instans | GPU | Memori GPU |
|---|---|---|
|
|
8 x NVIDIA A100 40GB |
320GB |
|
|
8 x NVIDIA A100 80GB |
640GB |
|
|
8 x NVIDIA H100 80GB |
640GB |
|
|
8 x NVIDIA H200 |
1128GB |
|
|
8 x NVIDIA H200 |
1128GB |
|
|
8 x NVIDIA Blackwell B200 |
1432GB |
|
|
8 x NVIDIA Blackwell Ultra B300 |
2144GB |
|
|
8 x NVIDIA RTX PRO 4500 Edisi Server Blackwell |
256GB |
|
|
8 x NVIDIA RTX PRO 6000 Edisi Server Blackwell |
768 GB |
MIG tidak tersedia dig5,g6, atau g6e keluarga. Untuk p6e-gb200 UltraServers, yang menggunakan GPU MIG-capable NVIDIA GB200, lihatGunakan P6e-GB200 UltraServers dengan Amazon EKS.
catatan
Jenis g7 instance memerlukan driver NVIDIA versi 595 atau yang lebih baru. AMI yang EKS-optimized dipercepat saat ini menyertakan driver NVIDIA versi 580, jadi untuk menggunakan MIG pada g7 Anda harus membuat AMI khusus dengan driver versi 595. Untuk informasi selengkapnya, lihat Membangun AMI EKS-optimized Amazon Linux kustom.
Instans MIG dijelaskan oleh profil yang menggunakan pola penamaan<slices>g.<memory>gb, di mana <slices> adalah jumlah irisan komput <memory> asi dan merupakan memori instance dalam gigabyte. Misalnya, 3g.40gb profil menyediakan tiga dari tujuh irisan komputasi dan memori 40 GB. Profil yang didukung masing-masing GPU diperbaiki oleh perangkat keras. Untuk daftar lengkapnya, lihat Panduan Multi-Instance Pengguna GPU NVIDIA
Profil MIG per jenis instans
Profil MIG yang tersedia pada node bergantung pada GPU untuk jenis instans. Bagian berikut mencantumkan profil untuk setiap jenis instans MIG-capable Amazon EC2. Untuk setiap profil, Max instance adalah jumlah maksimum instance profil yang dapat Anda buat pada satu GPU, dan Memori per instance adalah memori GPU yang dialokasikan untuk masing-masing.
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 7 |
5GB |
7 |
|
|
1 dari 7 |
10 GB |
4 |
|
|
2 dari 7 |
10 GB |
3 |
|
|
3 dari 7 |
20 GB |
2 |
|
|
4 dari 7 |
20 GB |
1 |
|
|
7 dari 7 |
40GB |
1 |
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 7 |
10 GB |
7 |
|
|
1 dari 7 |
20 GB |
4 |
|
|
2 dari 7 |
20 GB |
3 |
|
|
3 dari 7 |
40GB |
2 |
|
|
4 dari 7 |
40GB |
1 |
|
|
7 dari 7 |
80GB |
1 |
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 7 |
10 GB |
7 |
|
|
1 dari 7 |
20 GB |
4 |
|
|
2 dari 7 |
20 GB |
3 |
|
|
3 dari 7 |
40GB |
2 |
|
|
4 dari 7 |
40GB |
1 |
|
|
7 dari 7 |
80GB |
1 |
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 7 |
18GB |
7 |
|
|
1 dari 7 |
35GB |
4 |
|
|
2 dari 7 |
35GB |
3 |
|
|
3 dari 7 |
71GB |
2 |
|
|
4 dari 7 |
71GB |
1 |
|
|
7 dari 7 |
141GB |
1 |
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 7 |
23GB |
7 |
|
|
1 dari 7 |
45GB |
4 |
|
|
2 dari 7 |
45GB |
3 |
|
|
3 dari 7 |
90GB |
2 |
|
|
4 dari 7 |
90GB |
1 |
|
|
7 dari 7 |
180GB |
1 |
p6-b300.48 xbesar — NVIDIA Blackwell Ultra B300
Menggunakan p6-b300.48xlarge HGX B300, yang mendukung partisi setiap GPU menjadi 7 instance 32 GB, 4 dari 67 GB, 2 dari 135 GB, atau 1 dari 270 GB. Ukuran ini adalah awal dan mungkin berubah. Untuk detail profilnya, lihat Profil MIG yang Didukung NVIDIA
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 2 |
16GB |
2 |
|
|
2 dari 2 |
32 GB |
1 |
RTX PRO 4500 Blackwell juga mendukung varian profil berkemampuan grafis (+gfx) dan mesin media (,). +me.all -me Untuk daftar lengkapnya, lihat Profil MIG yang Didukung NVIDIA
| Profil | Hitung irisan | Memori per instans | Instans maks |
|---|---|---|---|
|
|
1 dari 4 |
24GB |
4 |
|
|
2 dari 4 |
48GB |
2 |
|
|
4 dari 4 |
96GB |
1 |
RTX PRO 6000 Blackwell Server Edition juga mendukung varian profil berkemampuan grafis () dan mesin +gfx media (,). +me.all -me Untuk daftar lengkapnya, lihat Profil MIG yang Didukung NVIDIA
Strategi MIG
Driver NVIDIA DRA dan plugin perangkat NVIDIA mengekspos instans MIG ke Kubernetes dengan cara yang berbeda. Plugin perangkat menggunakan pengaturan strategi MIG di seluruh simpul, sementara driver DRA tidak memiliki pengaturan yang setara karena memilih instance berdasarkan atributnya. Memahami perbedaan ini adalah kunci untuk memilih di antara kedua model.
Driver NVIDIA DRA
Driver NVIDIA DRA tidak menggunakan konsep strategi tunggal atau campuran, dan tidak ada pengaturan yang setara untuk dikonfigurasi. Alih-alih mengiklankan instans MIG sebagai sumber daya terhitung, driver menerbitkan setiap instance sebagai perangkat mig.nvidia.com DeviceClass dengan atribut seperti ituprofile. Pod memilih instance dengan mencocokkan atribut ini dengan pemilih Common Expression Language (CEL) dalam ResourceClaim atauResourceClaimTemplate, seperti yang ditunjukkan padaGunakan MIG dengan driver NVIDIA DRA.
Karena seleksi adalah per instans, node profil campuran bekerja tanpa sakelar mode strategi. Satu GPU dapat dipartisi menjadi beberapa profil yang berbeda, dan setiap klaim memilih profil yang dibutuhkannya. Pilihan yang penting untuk driver DRA bukanlah strategi tunggal versus campuran, tetapi MIG statis versus dinamis, yang mengontrol apakah Anda membuat instans MIG sebelumnya atau driver membuatnya sesuai permintaan. Untuk informasi selengkapnya, lihat Gunakan MIG dengan driver NVIDIA DRA.
Plugin perangkat NVIDIA
Plugin perangkat NVIDIA mengiklankan instans MIG ke Kubernetes menggunakan salah satu dari dua strategi. Karena plugin perangkat mengekspos instans MIG sebagai sumber daya yang diperluas tingkat simpul, yang hanya membawa jumlah bilangan bulat dan tidak ada atribut per instans, strategi menentukan bagaimana sumber daya tersebut diberi nama.
-
Strategi tunggal — Setiap GPU pada node menggunakan profil MIG yang sama. Plugin perangkat mengiklankan setiap instance sebagai
nvidia.com/gpusumber daya, dan Pod memintanvidia.com/gpu: 1seperti yang mereka lakukan untuk GPU khusus. Manifest yang ada tidak berubah. Baik Bottlerocket dan AL2023 mendukung strategi tunggal. -
Strategi campuran — GPU pada node yang sama dapat menggunakan profil MIG yang berbeda. Plugin perangkat mengiklankan setiap profil sebagai sumber daya yang berbeda, seperti
nvidia.com/mig-1g.10gbataunvidia.com/mig-3g.40gb, dan Pod meminta profil spesifik yang mereka butuhkan. Anda tidak dapat menggunakan strategi campuran dengan plugin perangkat NVIDIA bawaan Bottlerocket. Untuk informasi lebih lanjut, lihat GitHub masalah Bottlerocket #4483 di.GitHub
Gunakan MIG dengan driver NVIDIA DRA
Saat mengalokasikan instans MIG dengan driver NVIDIA DRA, Pod meminta instans MIG melalui sumber daya tambahan plugin perangkat ResourceClaim atau lebih ResourceClaimTemplate tepat nvidia.com/mig-<profile> nya.
Karena driver DRA menjelaskan instance berdasarkan atributnya dan bukan sebagai sumber daya yang dihitung, ia tidak menggunakan strategi tunggal atau campuran yang diperlukan plugin perangkat (lihatStrategi MIG). Driver mengekspos setiap instance MIG sebagai perangkat mig.nvidia.com DeviceClass dengan gpu.nvidia.com/type atributmig, dan mengiklankan atribut per instans seperti profile (misalnya,1g.5gb) dan GPU parentUUID fisik. Anda mencocokkan atribut ini dengan pemilih Common Expression Language (CEL) untuk meminta profil tertentu atau untuk menyimpan beberapa instance pada GPU yang sama.
Driver DRA mengalokasikan instans MIG dalam salah satu dari dua mode:
-
MIG Statis — Anda mengaktifkan mode MIG dan membuat instance MIG pada node sebelum driver dimulai, misalnya dengan MIG Manager di Operator GPU NVIDIA seperti yang dijelaskan dalamGunakan MIG pada node AL2023 dengan plugin perangkat NVIDIA. Driver menemukan instance yang ada dan mengalokasikannya ke Pod tetapi tidak mengubah konfigurasi MIG node. Instans yang ditambahkan setelah driver dimulai tidak ditemukan sampai plugin kubelet GPU dimulai ulang. MIG statis adalah default dan tidak memerlukan gerbang fitur.
-
MIG dinamis — Driver membuat dan menghancurkan partisi MIG sesuai permintaan sebagai respons terhadap permintaan beban kerja, sehingga Anda tidak mempartisi GPU terlebih dahulu. Dynamic MIG adalah fitur alfa yang dinonaktifkan secara default. Anda meminta profil dengan pemilih yang
ResourceClaimTemplatesama yang ditunjukkan pada bagian berikut, dan driver mempartisi GPU untuk memenuhi permintaan.
Pertimbangan-pertimbangan
-
MIG dinamis menggantikan penemuan statis pada node. Driver mengelola semua partisi dan menghancurkan partisi MIG apa pun yang tidak dibuat ketika plugin kubelet GPU dimulai. Jangan aktifkan MIG dinamis pada node dengan partisi yang telah dibuat sebelumnya yang ingin Anda simpan, dan jangan jalankan
mig-partedataunvidia-smi migsaat plugin berjalan, karena perubahan manual dapat bertentangan dengan status partisi driver dan menyebabkan persiapan atau pembersihan Pod gagal. -
MIG dinamis berada dalam keadaan alfa dan memerlukan gerbang fitur untuk diaktifkan saat menginstal driver NVIDIA DRA, lihat Instal driver NVIDIA DRA untuk instruksi.
-
Hopper (H100 dan H200) dan arsitektur yang lebih baru mengaktifkan mode MIG sesuai permintaan. Generasi sebelumnya tidak dapat mengaktifkan mode MIG sesuai permintaan, termasuk GPU Ampere (A100).
-
MIG dinamis bergantung pada fitur perangkat yang dapat dipartisi Kubernetes (aktif GitHub), yang diaktifkan secara default KEP-4815
di Kubernetes versi 1.36 dan yang lebih baru. Pada versi sebelumnya fitur ini tidak diaktifkan secara default, sehingga penjadwal tidak dapat mengalokasikan perangkat MIG yang dibuat secara dinamis.
Prasyarat
-
Cluster Amazon EKS yang menjalankan Kubernetes versi 1.34 atau yang lebih baru dengan kapasitas statis yang disediakan oleh Karpenter, grup node yang dikelola EKS, atau grup node yang dikelola sendiri.
-
MIG-capable P-family node dengan mode MIG diaktifkan dan GPU dipartisi ke dalam instans MIG. Untuk MIG statis, lihat MIG Manager di Operator GPU NVIDIA
di situs web NVIDIA. -
Driver NVIDIA DRA diinstal seperti yang dijelaskan dalamInstal driver NVIDIA DRA, opsional dengan Dynamic MIG diaktifkan jika Anda tidak menggunakan partisi MIG statis.
Prosedur
Contoh berikut dapat digunakan dengan MIG statis atau dinamis dan driver NVIDIA DRA.
-
Buat
ResourceClaimTemplateyang meminta instance MIG darimig.nvidia.comDeviceClass, dan Pod yang mereferensikannya. Contoh ini meminta instans MIG yang tersedia tanpa membatasi profil.cat <<EOF | kubectl apply -f - apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: mig-profile-any spec: spec: devices: requests: - name: mig exactly: deviceClassName: mig.nvidia.com count: 1 --- apiVersion: v1 kind: Pod metadata: name: mig-dra-pod spec: tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule containers: - name: cuda image: nvidia/cuda:12.6.0-base-ubuntu22.04 command: ["nvidia-smi", "-L"] resources: claims: - name: mig resourceClaims: - name: mig resourceClaimTemplateName: mig-profile-any restartPolicy: OnFailure EOF -
Verifikasi bahwa Pod dialokasikan satu instans MIG.
kubectl logs mig-dra-podContoh output adalah sebagai berikut. Pod melihat satu instance MIG dari GPU yang dipartisi.
GPU 0: NVIDIA A100-SXM4-40GB (UUID: GPU-edd63844-8488-f76a-f6e0-1027a7319a88) MIG 2g.10gb Device 0: (UUID: MIG-a5ad493e-e7e8-5675-9381-1d0f5311a456)
Minta profil MIG tertentu
Untuk meminta profil tertentu alih-alih instance yang tersedia, tambahkan pemilih CEL yang cocok dengan profile atribut. Berikut ini ResourceClaimTemplate meminta 1g.5gb instance, dan Pod mereferensikannya.
cat <<EOF | kubectl apply -f - apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: mig-profile-1g.5gb spec: spec: devices: requests: - name: mig exactly: deviceClassName: mig.nvidia.com selectors: - cel: expression: "device.attributes['gpu.nvidia.com'].profile == '1g.5gb'" --- apiVersion: v1 kind: Pod metadata: name: mig-profile-pod spec: tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule containers: - name: cuda image: nvidia/cuda:12.6.0-base-ubuntu22.04 command: ["nvidia-smi", "-L"] resources: claims: - name: mig resourceClaims: - name: mig resourceClaimTemplateName: mig-profile-1g.5gb restartPolicy: OnFailure EOF
Meminta beberapa instans MIG dari GPU yang sama
Untuk memastikan bahwa beberapa instans MIG dalam satu klaim berasal dari GPU fisik yang sama, tambahkan constraints blok denganmatchAttribute: "gpu.nvidia.com/parentUUID". Berikut ini ResourceClaimTemplate meminta 1g.5gb instance dan 2g.10gb instance dari GPU yang sama, dan Pod mereferensikan klaim tersebut. Karena wadah mereferensikan klaim tanpa menyebutkan permintaan tertentu, ia menerima kedua instance MIG.
cat <<EOF | kubectl apply -f - apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: multi-mig spec: spec: devices: requests: - name: mig-small exactly: deviceClassName: mig.nvidia.com selectors: - cel: expression: "device.attributes['gpu.nvidia.com'].profile == '1g.5gb'" - name: mig-medium exactly: deviceClassName: mig.nvidia.com selectors: - cel: expression: "device.attributes['gpu.nvidia.com'].profile == '2g.10gb'" constraints: - requests: [] matchAttribute: "gpu.nvidia.com/parentUUID" --- apiVersion: v1 kind: Pod metadata: name: multi-mig-pod spec: tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule containers: - name: cuda image: nvidia/cuda:12.6.0-base-ubuntu22.04 command: ["nvidia-smi", "-L"] resources: claims: - name: mig resourceClaims: - name: mig resourceClaimTemplateName: multi-mig restartPolicy: OnFailure EOF
Gunakan MIG pada node Bottlerocket dengan plugin perangkat NVIDIA
Pada Bottlerocket, AMI yang EKS-optimized dipercepat menyertakan plugin perangkat NVIDIA. Anda mengaktifkan MIG dengan strategi tunggal melalui settings.kubelet-device-plugins.nvidia pengaturan. Bottlerocket mendukung MIG di versi 1.34.0 dan yang lebih baru.
Prasyarat
-
Cluster Amazon EKS. Prosedur berikut menyediakan MIG-capable P-family node dengan EKS-optimized Bottlerocket NVIDIA AMI, versi 1.34.0 atau yang lebih baru.
-
Karpenter diinstal dan dikonfigurasi di cluster Anda, karena prosedur berikut menggunakan Karpenter
EC2NodeClassuntuk menyediakan pengaturan MIG di data pengguna node Bottlerocket. Untuk informasi selengkapnya, lihat Mem ulai dengan Karpenterdi situs web Karpenter. -
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat Instal atau perbarui kubectl untuk informasi selengkapnya.
Prosedur
Tambahkan pengaturan partisi MIG ke data pengguna Bottlerocket untuk node GPU Anda. Cara Anda menyediakan data pengguna tergantung pada bagaimana Anda menyediakan node. Contoh berikut menunjukkan Karpenter EC2NodeClass untuk p4d.24xlarge node.
cat <<EOF | kubectl apply -f - apiVersion: karpenter.k8s.aws/v1 kind: EC2NodeClass metadata: name: gpu-bottlerocket-mig spec: amiFamily: Bottlerocket amiSelectorTerms: - alias: bottlerocket@latest role: eksctl-KarpenterNodeRole-<cluster-name> subnetSelectorTerms: - tags: karpenter.sh/discovery: <cluster-name> securityGroupSelectorTerms: - tags: karpenter.sh/discovery: <cluster-name> userData: | [settings.kubelet-device-plugins.nvidia] device-partitioning-strategy = "mig" [settings.kubelet-device-plugins.nvidia.mig.profile] "a100.40gb" = "2g.10gb" EOF
Ketika node yang disediakan dengan pengaturan ini bergabung dengan cluster, mode MIG diaktifkan pada GPU, setiap GPU dipartisi menjadi 2g.10gb instance, dan plugin perangkat mengiklankan instance yang dihasilkan sebagai sumber daya. nvidia.com/gpu Karena a p4d.24xlarge memiliki delapan GPU A100 dan masing-masing mendukung tiga 2g.10gb instance, node mengiklankan. nvidia.com/gpu: 24
catatan
Peng mig.profile aturan dikunci oleh model GPU, seperti a100.40gb atauh100.80gb. Tanpa mig.profile pengaturan, GPU mengaktifkan mode MIG dan menggunakan profil terbesarnya. Karena Bottlerocket menggunakan strategi tunggal, setiap GPU pada node menggunakan profil yang sama. Untuk menggunakan profil yang berbeda pada node yang sama (strategi campuran), gunakan jalur AL2023 dengan Operator GPU NVIDIA.
Gunakan MIG pada node AL2023 dengan plugin perangkat NVIDIA
Pada AL2023, langkah-langkah berikut menggunakan Operator GPU NVIDIA untuk menginstal plugin perangkat NVIDIA dan MIG Manager. MIG Manager mengaktifkan mode MIG dan mempartisi GPU sesuai dengan konfigurasi yang Anda berikan. Plugin perangkat NVIDIA kemudian mengiklankan instance yang dihasilkan ke Kubernetes. Operator GPU mendukung strategi tunggal dan campuran.
Karena EKS-optimized AL2023 NVIDIA AMI sudah menyertakan driver dan toolkit NVIDIA, nonaktifkan manajemen driver di Operator GPU untuk menghindari konflik dengan driver yang sudah diinstal sebelumnya. Atau, Anda dapat menginstal dan mengelola plugin perangkat NVIDIA dan MIG Manager sendiri tanpa menggunakan Operator GPU.
Prasyarat
-
Cluster Amazon EKS. Prosedur berikut menyediakan MIG-capable P-family node (seperti
p4d.24xlarge) dengan EKS-optimized AL2023 NVIDIA AMI. -
Karpenter diinstal dan dikonfigurasi di cluster Anda, karena prosedur membuat Karpenter
EC2NodeClassdanNodePooluntuk menyediakan node GPU. Untuk informasi selengkapnya, lihat Mem ulai dengan Karpenterdi situs web Karpenter. -
Helm diinstal di lingkungan baris perintah Anda, lihat petunjuk Peng aturan Helm untuk informasi selengkapnya.
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat Instal atau perbarui kubectl untuk informasi selengkapnya.
Prosedur
-
Buat node P-family GPU
EC2NodeClassdanNodePooluntuk AL2023. Pada AL2023, partisi MIG diterapkan oleh Operator GPU pada langkah-langkah selanjutnya, jadi ini adalah kelas node GPU AL2023 standar. Contoh berikut menyediakanp4d.24xlargenode dengan EKS-optimized AL2023 NVIDIA AMI.cat <<EOF | kubectl apply -f - apiVersion: karpenter.k8s.aws/v1 kind: EC2NodeClass metadata: name: gpu-mig-al2023 spec: amiFamily: AL2023 amiSelectorTerms: - alias: al2023@latest role: eksctl-KarpenterNodeRole-<cluster-name> subnetSelectorTerms: - tags: karpenter.sh/discovery: <cluster-name> securityGroupSelectorTerms: - tags: karpenter.sh/discovery: <cluster-name> tags: karpenter.sh/discovery: <cluster-name> --- apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: gpu-mig-al2023 spec: template: spec: nodeClassRef: group: karpenter.k8s.aws kind: EC2NodeClass name: gpu-mig-al2023 taints: - key: nvidia.com/gpu effect: NoSchedule requirements: - key: karpenter.sh/capacity-type operator: In values: ["spot", "on-demand"] - key: node.kubernetes.io/instance-type operator: In values: ["p4d.24xlarge"] - key: kubernetes.io/arch operator: In values: ["amd64"] limits: cpu: 1000 memory: 5000Gi EOF -
Tambahkan repositori NVIDIA Helm.
helm repo add nvidia https://nvidia.github.io/gpu-operator helm repo update -
Buat
gpu-operator-values.yamlfile yang menonaktifkan manajemen driver, memilih strategi campuran, dan menentukan profil MIG untuk diterapkan. Contoh berikut mendefinisikanp4d-half-balancedkonfigurasi yang mempartisi empat dari delapan GPU padap4d.24xlargenode dan meninggalkan sisanya utuh.cat <<EOF > gpu-operator-values.yaml driver: enabled: false toolkit: enabled: false devicePlugin: enabled: true nfd: enabled: true gfd: enabled: true mig: strategy: mixed migManager: enabled: true env: - name: WITH_REBOOT value: "true" config: create: true name: custom-mig-parted-configs default: all-disabled data: config.yaml: |- version: v1 mig-configs: all-disabled: - devices: all mig-enabled: false p4d-half-balanced: - devices: [0, 1, 2, 3] mig-enabled: true mig-devices: "1g.5gb": 2 "2g.10gb": 1 "3g.20gb": 1 - devices: [4, 5, 6, 7] mig-enabled: false EOF -
Instal Operator GPU dengan file nilai.
helm install gpu-operator nvidia/gpu-operator \ --namespace gpu-operator \ --create-namespace \ --values gpu-operator-values.yaml -
Label MIG-capable node Anda dengan konfigurasi profil yang akan diterapkan. Komponen MIG Manager mengawasi label ini dan mempartisi GPU sesuai dengan itu, me-reboot node untuk menerapkan perubahan.
kubectl label nodes -l node.kubernetes.io/instance-type=p4d.24xlarge \ nvidia.com/mig.config=p4d-half-balanced --overwrite -
Setelah Operator GPU mempartisi GPU, Pod meminta profil MIG tertentu dengan nama sumber dayanya, bukan
nvidia.com/gpu. Contoh berikut menjalankan Pod yang meminta satu1g.5gbinstance.cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: mig-inference spec: tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule containers: - name: cuda image: nvidia/cuda:12.6.0-base-ubuntu22.04 command: ["nvidia-smi", "-L"] resources: limits: nvidia.com/mig-1g.5gb: 1 EOF
Untuk contoh konfigurasi strategi campuran lengkap untuk P-family instans, termasuk grup node terkelola dengan reservasi kapasitas dan beban kerja per profil, lihat bagian MIG dari Panduan Praktik Terbaik Amazon EKS.
Verifikasi bahwa MIG aktif
Setelah MIG-enabled node Anda aktifReady, konfirmasikan bahwa mode MIG aktif pada GPU dan bahwa node mengiklankan sumber daya MIG yang diharapkan.
-
Konfirmasikan bahwa node mengiklankan sumber daya MIG. Dengan strategi tunggal, node melaporkan instance sebagai
nvidia.com/gpu. Dengan strategi campuran, node melaporkan sumber daya khusus profil, seperti.nvidia.com/mig-1g.10gbkubectl describe node <node-name> | grep nvidia.com -
J
nvidia-smialankan dari Pod pada MIG-enabled node untuk mengonfirmasi bahwa mode MIG aktif.nvidia-smimelaporkanMIG M.: Enableduntuk GPU yang mengaktifkan mode MIG dan mencantumkan instans MIG yang dikonfigurasi pada masing-masing. Berikut ini adalah contoh output dari GPU A100 40 GB dengan MIG diaktifkan dan dipartisi menjadi3g.20gb,2g.10gb, dan1g.5gbinstance.+-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 580.159.03 Driver Version: 580.159.03 CUDA Version: 13.0 | +-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA A100-SXM4-40GB On | 00000000:10:1C.0 Off | On | | N/A 35C P0 65W / 400W | 213MiB / 40960MiB | N/A Default | | | | Enabled | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | MIG devices: | +------------------+----------------------------------+-----------+-----------------------+ | GPU GI CI MIG | Shared Memory-Usage | Vol| Shared | | ID ID Dev | Shared BAR1-Usage | SM Unc| CE ENC DEC OFA JPG | | | | ECC| | |==================+==================================+===========+=======================| | 0 1 0 0 | 107MiB / 20096MiB | 42 0 | 3 0 2 0 0 | | | 0MiB / 12211MiB | | | +------------------+----------------------------------+-----------+-----------------------+ | 0 5 0 1 | 71MiB / 9984MiB | 28 0 | 2 0 1 0 0 | | | 0MiB / 6105MiB | | | +------------------+----------------------------------+-----------+-----------------------+ | 0 13 0 2 | 36MiB / 4864MiB | 14 0 | 1 0 0 0 0 | | | 0MiB / 3052MiB | | | +------------------+----------------------------------+-----------+-----------------------+Dengan strategi campuran, Pod hanya melihat instance MIG yang diminta, bukan tata letak GPU lengkap dari node.
mig-inferencePod dari langkah sebelumnya meminta satunvidia.com/mig-1g.5gbinstance, jadinvidia-smi -Ldi dalam Pod itu mencantumkan satu perangkat MIG.kubectl logs mig-inferenceContoh output adalah sebagai berikut.
GPU 0: NVIDIA A100-SXM4-40GB (UUID: GPU-5b7ce860-1951-004c-4881-6ac6997df770) MIG 1g.5gb Device 0: (UUID: MIG-9b065868-21b6-5b8d-8ab9-e99089ed472c)Untuk melihat tata letak partisi penuh dari setiap GPU pada node, jalankan
nvidia-smi -Lpada host alih-alih di dalam Pod beban kerja. Perintah berikut memulai Pod debugging istimewa pada node dan menjalankan hostnvidia-smi. Gantinode-namedengan nama MIG-enabled node Anda.kubectl debug node/<node-name> -it --profile=sysadmin --image=nvidia/cuda:12.6.0-base-ubuntu22.04 -- chroot /host nvidia-smi -LBerikut ini adalah contoh output untuk
p4d-half-balancedkonfigurasi. Empat GPU pertama dipartisi menjadi instans MIG, dan empat sisanya adalah GPU utuh. SetiapMIGbaris adalah instance terisolasi perangkat keras dengan UUID, memori, dan irisan komputasi sendiri.GPU 0: NVIDIA A100-SXM4-40GB (UUID: GPU-5b7ce860-1951-004c-4881-6ac6997df770) MIG 3g.20gb Device 0: (UUID: MIG-7dc16162-7ba2-5894-abde-d753dc8ecf56) MIG 2g.10gb Device 1: (UUID: MIG-56cfe1f0-0662-50e4-a5f7-111107e4d5e6) MIG 1g.5gb Device 2: (UUID: MIG-1409727e-2ffa-5fd4-9586-204c9e2b36d5) MIG 1g.5gb Device 3: (UUID: MIG-9b065868-21b6-5b8d-8ab9-e99089ed472c) GPU 1: NVIDIA A100-SXM4-40GB (UUID: GPU-73692a43-dd2d-f1a1-b0df-2f4734e2a87d) MIG 3g.20gb Device 0: (UUID: MIG-745fd93a-9582-57a6-8b3b-9782d289ca1b) MIG 2g.10gb Device 1: (UUID: MIG-8440294e-c4a0-5687-add5-2cc506babb2f) MIG 1g.5gb Device 2: (UUID: MIG-559810c0-f2bb-5ca2-b529-47228d99437f) MIG 1g.5gb Device 3: (UUID: MIG-a91cf3f9-6459-59e9-97a8-dc69b9958eef) GPU 2: NVIDIA A100-SXM4-40GB (UUID: GPU-4e56019e-84de-eef5-5ac3-85e468e93639) MIG 3g.20gb Device 0: (UUID: MIG-c130392b-fd7c-59f8-9f4b-ecab27a2984b) MIG 2g.10gb Device 1: (UUID: MIG-7d61cf16-ad08-57be-b2c2-ac6e515b28c3) MIG 1g.5gb Device 2: (UUID: MIG-f5388dec-d841-506c-bb7a-6ac136ceee53) MIG 1g.5gb Device 3: (UUID: MIG-02d54020-c6cb-5997-894b-e95af0f49388) GPU 3: NVIDIA A100-SXM4-40GB (UUID: GPU-4fd894a0-b471-9e77-eb67-0ad15002ed5b) MIG 3g.20gb Device 0: (UUID: MIG-10399b59-2625-5106-b3f8-76ae19da46e1) MIG 2g.10gb Device 1: (UUID: MIG-ef81ee7d-fc48-56ed-8479-8ffa76eb4154) MIG 1g.5gb Device 2: (UUID: MIG-ed9bf59d-6bf2-5e07-80fb-dd0d7ca41f9d) MIG 1g.5gb Device 3: (UUID: MIG-a15d6f7d-661b-514e-8838-06fe4ffe7f75) GPU 4: NVIDIA A100-SXM4-40GB (UUID: GPU-05b6b91b-da6e-3078-1f4f-a7bbf1ff7ed2) GPU 5: NVIDIA A100-SXM4-40GB (UUID: GPU-078a8df1-f387-0315-6b0b-af12e082f6d5) GPU 6: NVIDIA A100-SXM4-40GB (UUID: GPU-6cdeffe7-45f1-7e8e-bcc1-4634399ad877) GPU 7: NVIDIA A100-SXM4-40GB (UUID: GPU-5f68814a-4e4a-5dec-79b4-8d70a61c7714)