

 **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
<a name="device-management-nvidia-mig"></a>

 [Multi-Instance GPU ](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/latest/index.html) (MIG) adalah fitur perangkat keras pada GPU NVIDIA yang mempartisi satu GPU fisik menjadi beberapa instance terisolasi. Jumlah maksimum instance yang dipartisi tergantung pada GPU. Setiap instance memiliki memori khusus, unit komputasi, dan bandwidth memori, sehingga beban kerja yang berjalan pada satu instans tidak dapat memengaruhi beban kerja pada instans lain. Tidak seperti [ time-slicing](device-management-nvidia-time-slicing.md), yang berbagi GPU melalui multiplexing waktu perangkat lunak tanpa isolasi, MIG menyediakan memori tingkat perangkat keras dan isolasi kesalahan antara Pod.

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](#eks-mig-capable-instance-types).

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 `g6e` keluarga `g5``g6`,, atau. Gunakan pemot [ ongan waktu sebagai gantinya. ](device-management-nvidia-time-slicing.md)
+ Anda tidak perlu isolasi memori dan menginginkan konfigurasi yang paling sederhana. Gunakan pemot [ ongan waktu sebagai gantinya. ](device-management-nvidia-time-slicing.md)
+ 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
<a name="eks-mig-considerations"></a>

Tinjau pertimbangan berikut sebelum Anda menggunakan MIG dalam produksi.

### Pertimbangan umum
<a name="_general_considerations"></a>
+  **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 `1g` ans 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 `TimeSlicing` berbagi 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 ](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/index.html#application-considerations) di Panduan Pengguna NVIDIA MIG di situs web NVIDIA.

### Pertimbangan plugin perangkat NVIDIA
<a name="_nvidia_device_plugin_considerations"></a>
+  **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.10gb` Pod yang meminta profil yang tidak diiklankan node tetap berada di `Pending` negara bagian tersebut. Konfirmasikan sumber daya yang diiklankan dengan`kubectl 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.config` label.
+  **Tidak ada dukungan pada Mode Otomatis EKS. ** Mode Otomatis EKS mengelola plugin perangkat NVIDIA dan tidak mengekspos konfigurasinya (lihat[Menyebarkan beban kerja yang dipercepat](auto-accelerated.md)). 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
<a name="_nvidia_dra_driver_considerations"></a>
+  **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](#eks-mig-dra-driver).
+  **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 `DynamicMIG` fitur, yang dinonaktifkan secara default. Untuk informasi selengkapnya, lihat [Gunakan MIG dengan driver NVIDIA DRA](#eks-mig-dra-driver).
+  **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](device-management-nvidia-dra-device-plugin.md#eks-nvidia-dra-driver).
+  **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 ](https://karpenter.sh/docs/concepts/nodepools/#static-nodepool) di situs web Karpenter.

## MIG-capable jenis contoh
<a name="eks-mig-capable-instance-types"></a>

Pada AWS, jenis instance berikut menyediakan MIG-capable GPU.


| Tipe instans | GPU | Memori GPU | 
| --- | --- | --- | 
|  `p4d.24xlarge`  | 8 x NVIDIA A100 40GB | 320GB | 
|  `p4de.24xlarge`  | 8 x NVIDIA A100 80GB | 640GB | 
|  `p5.48xlarge`  | 8 x NVIDIA H100 80GB | 640GB | 
|  `p5e.48xlarge`  | 8 x NVIDIA H200 | 1128GB | 
|  `p5en.48xlarge`  | 8 x NVIDIA H200 | 1128GB | 
|  `p6-b200.48xlarge`  | 8 x NVIDIA Blackwell B200 | 1432GB | 
|  `p6-b300.48xlarge`  | 8 x NVIDIA Blackwell Ultra B300 | 2144GB | 
|  `g7.48xlarge`  | 8 x NVIDIA RTX PRO 4500 Edisi Server Blackwell | 256GB | 
|  `g7e.48xlarge`  | 8 x NVIDIA RTX PRO 6000 Edisi Server Blackwell | 768 GB | 

MIG tidak tersedia di`g5`,`g6`, atau `g6e` keluarga. Untuk `p6e-gb200` UltraServers, yang menggunakan GPU MIG-capable NVIDIA GB200, lihat[Gunakan P6e-GB200 UltraServers dengan Amazon EKS](ml-eks-nvidia-ultraserver.md).

**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](eks-ami-build-scripts.md).

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 ](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/) di situs web NVIDIA.

## Profil MIG per jenis instans
<a name="eks-mig-profiles-per-instance-type"></a>

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.

### `p4d.24xlarge` — NVIDIA A100 40GB
<a name="eks-mig-profiles-p4d"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.5gb`  | 1 dari 7 | 5GB | 7 | 
|  `1g.10gb`  | 1 dari 7 | 10 GB | 4 | 
|  `2g.10gb`  | 2 dari 7 | 10 GB | 3 | 
|  `3g.20gb`  | 3 dari 7 | 20 GB | 2 | 
|  `4g.20gb`  | 4 dari 7 | 20 GB | 1 | 
|  `7g.40gb`  | 7 dari 7 | 40GB | 1 | 

### `p4de.24xlarge` — NVIDIA A100 80GB
<a name="eks-mig-profiles-p4de"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.10gb`  | 1 dari 7 | 10 GB | 7 | 
|  `1g.20gb`  | 1 dari 7 | 20 GB | 4 | 
|  `2g.20gb`  | 2 dari 7 | 20 GB | 3 | 
|  `3g.40gb`  | 3 dari 7 | 40GB | 2 | 
|  `4g.40gb`  | 4 dari 7 | 40GB | 1 | 
|  `7g.80gb`  | 7 dari 7 | 80GB | 1 | 

### `p5.48xbesar` — NVIDIA H100 80GB
<a name="eks-mig-profiles-p5"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.10gb`  | 1 dari 7 | 10 GB | 7 | 
|  `1g.20gb`  | 1 dari 7 | 20 GB | 4 | 
|  `2g.20gb`  | 2 dari 7 | 20 GB | 3 | 
|  `3g.40gb`  | 3 dari 7 | 40GB | 2 | 
|  `4g.40gb`  | 4 dari 7 | 40GB | 1 | 
|  `7g.80gb`  | 7 dari 7 | 80GB | 1 | 

### `p5e.48xlarge dan p5en.48xlarge — NVIDIA` H200 `141 GB`
<a name="eks-mig-profiles-p5e-p5en"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.18gb`  | 1 dari 7 | 18GB | 7 | 
|  `1g.35gb`  | 1 dari 7 | 35GB | 4 | 
|  `2g.35gb`  | 2 dari 7 | 35GB | 3 | 
|  `3g.71gb`  | 3 dari 7 | 71GB | 2 | 
|  `4g.71gb`  | 4 dari 7 | 71GB | 1 | 
|  `7g.141gb`  | 7 dari 7 | 141GB | 1 | 

### `p6-b200.48x` besar — NVIDIA Blackwell B200 180GB
<a name="eks-mig-profiles-p6-b200"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.23gb`  | 1 dari 7 | 23GB | 7 | 
|  `1g.45gb`  | 1 dari 7 | 45GB | 4 | 
|  `2g.45gb`  | 2 dari 7 | 45GB | 3 | 
|  `3g.90gb`  | 3 dari 7 | 90GB | 2 | 
|  `4g.90gb`  | 4 dari 7 | 90GB | 1 | 
|  `7g.180gb`  | 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 ](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/supported-mig-profiles.html) di situs web NVIDIA.

### `g7.48xbesar` — NVIDIA RTX PRO 4500 Blackwell Edisi Server 32GB
<a name="eks-mig-profiles-g7"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.16gb`  | 1 dari 2 | 16GB | 2 | 
|  `2g.32gb`  | 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 ](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/supported-mig-profiles.html) di situs web NVIDIA.

### `g7e.48xlarge` — NVIDIA RTX PRO 6000 Blackwell Edisi Server 96GB
<a name="eks-mig-profiles-g7e"></a>


| Profil | Hitung irisan | Memori per instans | Instans maks | 
| --- | --- | --- | --- | 
|  `1g.24gb`  | 1 dari 4 | 24GB | 4 | 
|  `2g.48gb`  | 2 dari 4 | 48GB | 2 | 
|  `4g.96gb`  | 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 ](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/supported-mig-profiles.html) di situs web NVIDIA.

## Strategi MIG
<a name="eks-mig-strategies"></a>

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
<a name="_nvidia_dra_driver"></a>

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 itu`profile`. Pod memilih instance dengan mencocokkan atribut ini dengan pemilih Common Expression Language (CEL) dalam `ResourceClaim` atau`ResourceClaimTemplate`, seperti yang ditunjukkan pada[Gunakan MIG dengan driver NVIDIA DRA](#eks-mig-dra-driver).

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](#eks-mig-dra-driver).

### Plugin perangkat NVIDIA
<a name="_nvidia_device_plugin"></a>

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/gpu` sumber daya, dan Pod meminta `nvidia.com/gpu: 1` seperti 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.10gb` atau`nvidia.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. ](https://github.com/bottlerocket-os/bottlerocket/issues/4483) GitHub

## Gunakan MIG dengan driver NVIDIA DRA
<a name="eks-mig-dra-driver"></a>

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 (lihat[Strategi MIG](#eks-mig-strategies)). Driver mengekspos setiap instance MIG sebagai perangkat `mig.nvidia.com` `DeviceClass` dengan `gpu.nvidia.com/type` atribut`mig`, 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 dalam[Gunakan MIG pada node AL2023 dengan plugin perangkat NVIDIA](#eks-mig-device-plugin-al2023). 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 `ResourceClaimTemplate` sama yang ditunjukkan pada bagian berikut, dan driver mempartisi GPU untuk memenuhi permintaan.

### Pertimbangan-pertimbangan
<a name="_considerations"></a>
+ 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-parted` atau `nvidia-smi mig` saat 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](device-management-nvidia-dra-device-plugin.md#eks-nvidia-dra-driver) 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 ](https://github.com/kubernetes/enhancements/issues/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
<a name="_prerequisites"></a>
+ 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 ](https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/gpu-operator-mig.html) di situs web NVIDIA.
+ Driver NVIDIA DRA diinstal seperti yang dijelaskan dalam[Instal driver NVIDIA DRA](device-management-nvidia-dra-device-plugin.md#eks-nvidia-dra-driver), opsional dengan Dynamic MIG diaktifkan jika Anda tidak menggunakan partisi MIG statis.

### Prosedur
<a name="_procedure"></a>

Contoh berikut dapat digunakan dengan MIG statis atau dinamis dan driver NVIDIA DRA.

1. Buat `ResourceClaimTemplate` yang meminta instance MIG dari `mig.nvidia.com``DeviceClass`, 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
   ```

1. Verifikasi bahwa Pod dialokasikan satu instans MIG.

   ```
   kubectl logs mig-dra-pod
   ```

   Contoh 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
<a name="_request_a_specific_mig_profile"></a>

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
<a name="_request_multiple_mig_instances_from_the_same_gpu"></a>

Untuk memastikan bahwa beberapa instans MIG dalam satu klaim berasal dari GPU fisik yang sama, tambahkan `constraints` blok dengan`matchAttribute: "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
<a name="eks-mig-device-plugin-bottlerocket"></a>

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
<a name="_prerequisites_2"></a>
+ 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 `EC2NodeClass` untuk menyediakan pengaturan MIG di data pengguna node Bottlerocket. Untuk informasi selengkapnya, lihat Mem [ ulai dengan Karpenter ](https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/) di situs web Karpenter.
+  `kubectl`dikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat [Instal atau perbarui `kubectl`](install-kubectl.md#kubectl-install-update) untuk informasi selengkapnya.

### Prosedur
<a name="_procedure_2"></a>

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` atau`h100.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
<a name="eks-mig-device-plugin-al2023"></a>

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
<a name="_prerequisites_3"></a>
+ 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 `EC2NodeClass` dan `NodePool` untuk menyediakan node GPU. Untuk informasi selengkapnya, lihat Mem [ ulai dengan Karpenter ](https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/) di situs web Karpenter.
+ Helm diinstal di lingkungan baris perintah Anda, lihat petunjuk Peng [ aturan Helm ](helm.md) untuk informasi selengkapnya.
+  `kubectl`dikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat [Instal atau perbarui `kubectl`](install-kubectl.md#kubectl-install-update) untuk informasi selengkapnya.

### Prosedur
<a name="_procedure_3"></a>

1. Buat node P-family GPU `EC2NodeClass` dan `NodePool` untuk AL2023. Pada AL2023, partisi MIG diterapkan oleh Operator GPU pada langkah-langkah selanjutnya, jadi ini adalah kelas node GPU AL2023 standar. Contoh berikut menyediakan `p4d.24xlarge` node 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
   ```

1. Tambahkan repositori NVIDIA Helm.

   ```
   helm repo add nvidia https://nvidia.github.io/gpu-operator
   helm repo update
   ```

1. Buat `gpu-operator-values.yaml` file yang menonaktifkan manajemen driver, memilih strategi campuran, dan menentukan profil MIG untuk diterapkan. Contoh berikut mendefinisikan `p4d-half-balanced` konfigurasi yang mempartisi empat dari delapan GPU pada `p4d.24xlarge` node 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
   ```

1. Instal Operator GPU dengan file nilai.

   ```
   helm install gpu-operator nvidia/gpu-operator \
       --namespace gpu-operator \
       --create-namespace \
       --values gpu-operator-values.yaml
   ```

1. 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
   ```

1. Setelah Operator GPU mempartisi GPU, Pod meminta profil MIG tertentu dengan nama sumber dayanya, bukan`nvidia.com/gpu`. Contoh berikut menjalankan Pod yang meminta satu `1g.5gb` instance.

   ```
   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. ](https://docs.aws.amazon.com/eks/latest/best-practices/aiml-compute.html)

## Verifikasi bahwa MIG aktif
<a name="eks-mig-verify"></a>

Setelah MIG-enabled node Anda aktif`Ready`, konfirmasikan bahwa mode MIG aktif pada GPU dan bahwa node mengiklankan sumber daya MIG yang diharapkan.

1. 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.10gb`

   ```
   kubectl describe node <node-name> | grep nvidia.com
   ```

1. J `nvidia-smi` alankan dari Pod pada MIG-enabled node untuk mengonfirmasi bahwa mode MIG aktif.

    `nvidia-smi`melaporkan `MIG M.: Enabled` untuk 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 menjadi`3g.20gb`,`2g.10gb`, dan `1g.5gb` instance.

   ```
   +-----------------------------------------------------------------------------------------+
   | 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-inference`Pod dari langkah sebelumnya meminta satu `nvidia.com/mig-1g.5gb` instance, jadi `nvidia-smi -L` di dalam Pod itu mencantumkan satu perangkat MIG.

   ```
   kubectl logs mig-inference
   ```

   Contoh 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 -L` pada host alih-alih di dalam Pod beban kerja. Perintah berikut memulai Pod debugging istimewa pada node dan menjalankan host`nvidia-smi`. Ganti {{node-name}} dengan 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 -L
   ```

   Berikut ini adalah contoh output untuk `p4d-half-balanced` konfigurasi. Empat GPU pertama dipartisi menjadi instans MIG, dan empat sisanya adalah GPU utuh. Setiap `MIG` baris 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)
   ```