Dalam kluster ACS yang berjalan pada perangkat GPU, Anda dapat menjadwalkan pod yang dipercepat GPU ke node GPU-HPN yang sama. Pod tersebut dapat berkomunikasi satu sama lain melalui metode seperti NVLink. Untuk memastikan efisiensi dan keadilan komunikasi antar perangkat GPU, ACS mematuhi batasan partisi dari model yang berbeda saat menjadwalkan perangkat. Topik ini menjelaskan mekanisme penjadwalan partisi GPU ACS dan skenario penggunaannya.
Prasyarat
Fitur ini hanya berlaku untuk pod kelas komputasi gpu-hpn dan node yang sesuai.
Informasi latar belakang
Perangkat GPU berkomunikasi melalui satu atau lebih saluran. ACS juga memungkinkan pod dengan spesifikasi GPU yang berbeda untuk berjalan di node GPU-HPN yang sama. Untuk memastikan efisiensi dan keadilan komunikasi GPU serta menghindari interferensi antar pod, ACS menjadwalkan pod berdasarkan topologi GPU. Untuk mencapai hal ini, ACS membagi topologi GPU menjadi beberapa partisi berdasarkan jumlah GPU yang diminta oleh setiap pod.
Pada gambar berikut, node memiliki delapan GPU. Setiap grup berisi empat GPU. GPU dalam setiap grup saling terhubung, dan grup-grup tersebut dihubungkan melalui PCIe.

Tabel berikut menjelaskan partisi yang dibuat berdasarkan spesifikasi GPU yang berbeda.
Jumlah GPU yang diminta oleh sebuah pod | Hasil alokasi perangkat opsional |
8 | [0,1,2,3,4,5,6,7] |
4 | [0,1,2,3], [4,5,6,7] |
2 | [0,1], [2,3], [4,5], [6,7] |
1 | [0], [1], [2], [3], [4], [5], [6], [7] |
Fragmen partisi mungkin terbentuk pada perangkat GPU setelah pod terus-menerus dibuat dan dihapus. Akibatnya, pod tetap dalam status Pending dan penjadwalan pod gagal. Anda dapat memeriksa hasil penjadwalan pod yang ada dan prioritas bisnis Anda, lalu mengevakuasi beberapa pod untuk memenuhi permintaan sumber daya pod yang tertunda.
Kueri partisi pada node GPU-HPN
Partisi pada node GPU-HPN dari model yang berbeda mungkin bervariasi.
gpu.p16en-16XL
Node tersebut memiliki 16 GPU model P16EN. Tabel berikut menjelaskan cara 16 GPU tersebut dapat dialokasikan ke Pod dengan spesifikasi GPU yang berbeda.
Jumlah GPU yang diminta oleh sebuah pod | Hasil alokasi perangkat opsional |
16 | [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] |
8 | [0,1,2,3,4,5,6,7], [8,9,10,11,12,13,14,15] |
4 | [0,1,2,3], [4,5,6,7], [8,9,10,11], [12,13,14,15] |
2 | [0,3], [1,2], [4,7], [5,6], [8,11], [9,10], [12,15], [13,14] |
1 | [0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15] |
Kueri hasil penjadwalan pod
Hasil alokasi GPU
Anda dapat melihat hasil alokasi GPU dari pod GPU-HPN di Anotasi pod. Blok kode berikut menunjukkan format:
apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/device-allocation: '{"gpus": {"minor": [0,1,2,3]}}'Pemberitahuan untuk kegagalan penjadwalan pod karena fragmen partisi
Jika sebuah pod berada dalam status Pending, pod tersebut tidak dapat dijadwalkan. Jika Anda menjalankan perintah kubectl describe pod dalam kasus ini, pesan 0/5 nodes are available: xxx akan dikembalikan. Insufficient Partitioned GPU Devices menunjukkan bahwa penjadwalan pod gagal karena fragmen partisi. Contoh:
kubectl describe pod pod-demoOutput yang Diharapkan (konten lain dihilangkan):
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 26m default-scheduler 0/5 nodes are available: 2 Node(s) Insufficient Partitioned GPU Devices, 1 Node(s) xxx, 2 Node(s) xxx.FAQ
Bagaimana cara merencanakan sumber daya node dan kebijakan penjadwalan untuk menghindari fragmen partisi?
Tetapkan tag grup yang berbeda untuk node berdasarkan jumlah GPU yang diminta oleh Pod aplikasi untuk mengelola sumber daya. Sebagai contoh, Anda dapat menjadwalkan Pod yang meminta delapan GPU dan Pod yang meminta satu GPU ke node yang berbeda.
Saat pod tertunda muncul karena fragmen partisi, Anda dapat menggunakan mekanisme penjadwalan ulang untuk mengevakuasi pod dengan prioritas lebih rendah guna membebaskan sumber daya untuk pod yang tertunda.
Jika skala node kecil atau Anda tidak dapat merencanakan tag grup, dan aplikasi memiliki berbagai spesifikasi GPU, kami sarankan Anda menggunakan Reservasi Kapasitas Pod GPU untuk memenuhi persyaratan sumber daya aplikasi.
Bagaimana memilih Pod untuk evakuasi saat menyelesaikan fragmen partisi
Tentukan spesifikasi sumber daya dari Pod yang tertunda, seperti delapan GPU.
Periksa anotasi Pod pada node target dan lihat hasil alokasi perangkat dari properti
alibabacloud.com/device-allocation.Tentukan Pod mana yang akan dievakuasi berdasarkan hasil alokasi. Pastikan bahwa perangkat bebas setelah evakuasi dapat memenuhi persyaratan sumber daya dan batasan partisi dari Pod yang tertunda. Sebagai contoh, kebutuhan delapan-GPU P16EN harus memastikan bahwa nomor perangkat [0,1,2,3,4,5,6,7] atau [8,9,10,11,12,13,14,15] semuanya tidak dialokasikan.
Evakuasi Pod menggunakan perintah seperti
evictataudelete.
Apa pertimbangan untuk partisi jika saya menggunakan penjadwal kustom?
Setelah penjadwal kustom menjadwalkan pod ke node, ACS mengalokasikan pod ke GPU yang sesuai. Selama alokasi GPU, ACS mencoba menjadwalkan semua pod sekaligus untuk menghindari pembuatan fragmen partisi.
Penjadwal kustom hanya fokus pada kapasitas GPU keseluruhan node. Kami merekomendasikan Anda menggunakan kebijakan MostAllocated saat menjadwalkan sumber daya GPU. Ini membantu mengurangi fragmen partisi.
Bagaimana penjadwal yang berbeda menangani kesadaran topologi untuk ACS GPU HPN?
Penjadwal | Kondisi | Deskripsi |
Penjadwal default ACS | Semua kondisi berikut terpenuhi:
| Penjadwal mengetahui alokasi partisi pada node saat ini. Node yang tidak memenuhi persyaratan partisi tidak terlibat dalam penjadwalan. Penyebab "Insufficient Partitioned GPU Devices" ditampilkan dalam acara kegagalan penjadwalan pod. |
Penjadwal ACK | Semua kondisi berikut terpenuhi:
| Penjadwal tidak mengetahui topologi partisi. Node GPU-HPN mencoba mengalokasikan GPU secara terpusat. Jika persyaratan partisi tidak terpenuhi, pod akan tetap dalam status Pending hingga persyaratan partisi terpenuhi. Pesan yang sesuai menampilkan "Insufficient Partitioned GPU Devices". Untuk informasi lebih lanjut, lihat Bagaimana cara merencanakan sumber daya node dan kebijakan penjadwalan untuk menghindari fragmen partisi? |
Penjadwal kustom | Salah satu kondisi berikut terpenuhi:
| Sama seperti penjadwal ACK. |