Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan penjadwalan sadar topologi di Amazon SageMaker HyperPod
Efisiensi transfer data merupakan faktor penting dalam komputasi kinerja tinggi (HPC) dan beban kerja pembelajaran mesin. Saat menggunakan UltraServers dengan Amazon SageMaker HyperPod, SageMaker HyperPod secara otomatis menerapkan label topologi ke sumber daya Anda. Penjadwalan sadar topologi membantu mengalokasikan sumber daya untuk meminimalkan overhead transfer data dengan mempertimbangkan topologi instance (bagaimana sumber daya terhubung dalam sebuah instance) dan topologi jaringan (bagaimana instance terhubung satu sama lain). Untuk informasi selengkapnya tentang topologi instans, lihat topologi EC2 instans Amazon.
Penjadwalan sadar topologi berfungsi dengan kedua cluster di Slurm dan Amazon EKS. Untuk informasi umum tentang cara kerja topologi dengan Slurm, lihat panduan Topologi
Di Amazon SageMaker HyperPod, overhead transfer data biasanya berasal dari tiga sumber utama:
-
GPU-to-GPU Transfer data: Teknologi modern seperti NVLink dan NVLink switch memungkinkan transfer data throughput tinggi antara GPUs tanpa melibatkan sumber daya komputasi lainnya. Ini sangat efisien tetapi biasanya terbatas pada satu contoh.
-
GPU-to-CPU transfer data: Sistem akses memori non-seragam (NUMA) memiliki beberapa bus sistem pada satu motherboard. Dalam arsitektur EC2 contoh tipikal seperti p5.48xlarge, ada dua bus sistem yang berbeda, masing-masing dengan CPU dan 4. GPUs Untuk kinerja optimal, proses yang memuat atau membaca data to/from GPUs harus dijalankan pada CPU yang terhubung ke bus sistem yang sama dengan GPU.
-
Komunikasi jaringan antar instance: Instance mentransfer data melalui rantai switch jaringan. Jalur terpendek biasanya sesuai dengan latensi terendah.
Arsitektur UltraServer
SageMaker HyperPod mendukung UltraServer arsitektur dengan instance p6e-gb200.36xlarge. Sebuah UltraServer berisi hingga 18 instance p6e-gb200.36xlarge, dengan 4 pada setiap instance. GPUs Semua GPUs node saling berhubungan melalui NVLink switch, memungkinkan transfer data antara dua GPUs tanpa menggunakan antarmuka jaringan.
Arsitektur ini memberikan peningkatan kinerja yang signifikan dibandingkan dengan instance individual. Untuk memanfaatkan arsitektur ini secara efektif, pekerjaan harus diserahkan ke node komputasi dari satu UltraServer.
Label topologi EKS
Sesuai dengan topologi EC2 instance, HyperPod secara otomatis memberi label pada node Anda dengan label berikut:
-
topology.kubernetes.io/region - tempat node berada. Wilayah AWS
-
topology.kubernetes.io/zone - Availability Zone tempat node berada.
-
menggambarkan rangkaian simpul jaringan dari sebuah instans. Dalam setiap set simpul jaringan, simpul jaringan terdaftar dalam urutan hierarkis dari atas ke bawah. Simpul jaringan yang terhubung ke instans adalah simpul jaringan terakhir dalam daftar (lapisan bawah). Ada hingga empat lapisan node jaringan, dan setiap node ditandai dengan label. Lapisan yang tersedia adalah
topology.k8s.aws/network-node-layer-1
,topology.k8s.aws/network-node-layer-2
,topology.k8s.aws/network-node-layer-3
. -
topology.k8s.aws/ultraserver-id - Pengidentifikasi yang digunakan untuk memberi label pada setiap instance milik domain yang sama di Ultraserver. NVLink Untuk mempelajari selengkapnya tentang menggunakan UltraServers dengan SageMaker HyperPod dan , lihat .
Dengan menggunakan label ini, Anda dapat menggunakan penjadwalan sadar topologi dalam tata kelola HyperPod tugas untuk menerapkan label topologi dan anotasi guna mengoptimalkan efisiensi pelatihan beban kerja Anda. Untuk informasi selengkapnya, lihat Menggunakan penjadwalan sadar topologi di tata kelola tugas Amazon SageMaker HyperPod .
Plugin topologi jaringan slurm
Slurm menyediakan plugin bawaan untuk kesadaran topologi jaringan. UltraServer arsitektur dalam SageMaker HyperPod mendukung plugin blok.
Menggunakan topology/block Plugin
NVIDIA mengembangkan topology/block plugin yang menyediakan penjadwalan hierarkis di seluruh blok node dengan karakteristik sebagai berikut:
Blok adalah rentang node yang berurutan
Blok tidak dapat tumpang tindih satu sama lain
Semua node dalam blok dialokasikan ke pekerjaan sebelum blok berikutnya digunakan
Ukuran blok perencanaan adalah ukuran blok terkecil yang dikonfigurasi
Setiap ukuran level blok yang lebih tinggi adalah kekuatan dua dari yang sebelumnya
Plugin ini mengalokasikan node berdasarkan topologi jaringan yang ditentukan.
Konfigurasi
Untuk mengonfigurasi penjadwalan sadar topologi dengan plugin, topology/block
-
SageMaker HyperPod secara otomatis mengkonfigurasi topology/block plugin. Jika Anda ingin mengkonfigurasi plugin, tentukan yang berikut ini di file topology.conf di direktori konfigurasi Slurm Anda:
BlockName=us1 Nodes=ultraserver1-[0-17] BlockName=us2 Nodes=ultraserver2-[0-17] BlockSizes=18
-
Pastikan Anda
slurm.conf
termasuk:TopologyPlugin=topology/block
Penggunaan
Saat mengirimkan pekerjaan, Anda dapat menggunakan argumen tambahan berikut dengan sbatch
dan srun
perintah:
--segment=N
: Tentukan jumlah node untuk dikelompokkan bersama. Ukuran segmen harus kurang dari atau sama dengan ukuran blok perencanaan.--exclusive=topo
: Meminta agar tidak ada pekerjaan lain yang ditempatkan di blok yang sama. Ini berguna untuk benchmarking dan aplikasi yang peka terhadap kinerja.
Berikut ini adalah contoh skenario yang mungkin Anda pertimbangkan ketika berpikir tentang mengalokasikan blok.
Alokasikan seluruh blok node pada sistem kosong
sbatch -N18
Alokasikan dua blok node pada sistem kosong
sbatch -N36
Alokasikan 18 node pada satu blok+6 node di blok lain
sbatch -N24
Alokasikan 12 node pada satu blok dan 12 node di blok lain
sbatch -N24 —segment=12
Dengan —exclusive=topo, pekerjaan harus ditempatkan di blok tanpa pekerjaan lain
sbatch -N12 —exclusive=topo
Praktik terbaik untuk UltraServer topologi
Untuk kinerja optimal dengan UltraServer arsitektur di SageMaker HyperPod:
-
Tetapkan ukuran blok yang sesuai: Konfigurasikan
BlockSizes=18
(atau 17 jika satu node cadangan) agar sesuai dengan UltraServer arsitektur. -
Gunakan segmen untuk ketersediaan yang lebih baik: Gunakan
--segment=16
,--segment=8
, atau--segment=9
dengansrun
dansbatch
perintah untuk meningkatkan fleksibilitas penjadwalan pekerjaan. -
Pertimbangkan ukuran pekerjaan dan ukuran segmen:
Jika
BlockSizes=18
, pekerjaan dengan hingga 18 instans akan selalu berjalan dalam satu UltraServer.Jika
BlockSizes=16
, pekerjaan dengan kurang dari 16 instans akan selalu berjalan pada satu UltraServer, sementara pekerjaan dengan 18 instance dapat berjalan pada satu atau dua. UltraServers
Saat memikirkan segmentasi, pertimbangkan hal berikut:
Dengan
--segment=1
, setiap instance dapat berjalan secara terpisah UltraServer.Dengan
-N 18 --segment 9
, 9 node akan ditempatkan pada satu UltraServer, dan 9 node lainnya dapat ditempatkan pada yang sama atau yang lain UltraServer.Dengan
-N 24 --segment 8
, pekerjaan dapat berjalan pada 2 atau 3 UltraServers, dengan setiap 8 node ditempatkan bersama di server yang sama.
Keterbatasan dalam SageMaker HyperPod penjadwalan sadar topologi
topology/block
Plugin ini memiliki keterbatasan dengan cluster heterogen (cluster dengan tipe instance yang berbeda):
Hanya node yang terdaftar dalam blok yang dapat dijadwalkan oleh Slurm
Setiap blok harus memiliki setidaknya
BlockSizes[0]
simpul
Untuk cluster heterogen, pertimbangkan alternatif ini:
Jangan gunakan plugin blok dengan cluster heterogen. Sebaliknya, isolasi UltraServer node di partisi yang berbeda.
Buat cluster terpisah dengan UltraServers hanya di VPC yang sama dan gunakan pengaturan multicluster Slurm.