Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan EFA dan NCCL untuk beban kerja ML di Amazon EC2
NVIDIA Collective Communications Library (NCCL) adalah perpustakaan rutinitas komunikasi kolektif standar untuk banyak GPU pada simpul tunggal atau beberapa simpul. Anda dapat menggunakan NCCL bersama dengan EFA, Libfabric, dan MPI untuk mendukung berbagai beban kerja pembelajaran mesin. Untuk informasi lebih lanjut, lihat situs web NCCL
Persyaratan
-
Jenis instans yang didukung termasuk tipe instance seri EFA-supported P dan seri G. Untuk informasi selengkapnya, lihat Inst ans komputasi akselerasi Amazon EC2.
-
AMI dasar yang didukung: Amazon Linux 2023, Ubuntu 26.04, Ubuntu 24.04, Ubuntu 22.04, Debian 12 dan RHEL 10.
-
EFA hanya mendukung NCCL 2.4.2 dan yang lebih baru.
Untuk informasi selengkapnya tentang menjalankan beban kerja pembelajaran mesin dengan EFA dan NCCL menggunakan AWS Deep Learning AMIs, lihat Menggunakan EFA di D LAMI di Panduan Pengembang. AWS Deep Learning AMIs
Langkah-langkah
Langkah 1: Siapkan grup EFA-enabled keamanan
EFA memerlukan grup keamanan yang memungkinkan semua lalu lintas masuk dan keluar ke dan dari grup keamanan itu sendiri. Prosedur berikut menciptakan grup keamanan yang memungkinkan semua lalu lintas masuk dan ke luar ke dan dari dirinya sendiri, dan yang memungkinkan lalu lintas SSH masuk dari alamat IPv4 apa pun untuk konektivitas SSH.
penting
-
Grup keamanan ini ditujukan untuk tujuan pengujian saja. Untuk lingkungan produksi Anda, kami sarankan Anda membuat aturan SSH masuk yang memungkinkan lalu lintas hanya dari alamat IP dari mana Anda terhubung, seperti alamat IP komputer Anda, atau berbagai alamat IP di jaringan lokal Anda.
-
Aturan masuk dan keluar yang merujuk sendiri (memungkinkan semua lalu lintas ke dan dari grup keamanan itu sendiri) wajib bagi EFA untuk berfungsi. Tanpa aturan ini, lalu lintas EFA antar instance akan diblokir dan komunikasi NCCL akan gagal.
Untuk skenario lainnya, lihat Aturan-aturan grup keamanan untuk kasus penggunaan yang berbeda.
Untuk membuat grup EFA-enabled keamanan
Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/
. -
Dalam panel navigasi, pilih Grup Keamanan, lalu pilih Buat grup keamanan.
-
Di jendela Buat Grup Keamanan, lakukan hal berikut:
-
Untuk Nama grup keamanan, masukkan nama deskriptif untuk grup keamanan, seperti
EFA-enabled security group. -
(Opsional) Untuk Deskripsi, masukkan deskripsi singkat grup keamanan.
-
Untuk VPC, pilih VPC tempat Anda ingin meluncurkan instans Anda EFA-enabled .
-
Pilih Buat grup keamanan.
-
-
Pilih grup keamanan yang Anda buat, dan pada tab Detail, salin ID grup keamanan.
-
Dengan grup keamanan yang masih dipilih, pilih Tindakan, Edit aturan masuk, lalu lakukan hal berikut:
-
Pilih Tambahkan aturan.
-
Untuk Tipe, pilih Semua lalu lintas.
-
Untuk Tipe sumber, pilih Kustom dan tempelkan ID grup keamanan yang Anda salin ke dalam bidang.
-
Pilih Tambahkan aturan.
-
Untuk Tipe, pilih SSH.
-
Untuk Jenis Sumber, pilih Anywhere-IPv4.
-
Pilih Simpan aturan.
-
-
Dengan grup keamanan yang masih dipilih, pilih Tindakan, Edit aturan keluar, lalu lakukan hal berikut:
-
Pilih Tambahkan aturan.
-
Untuk Tipe, pilih Semua lalu lintas.
-
Untuk Tipe tujuan, pilih Kustom dan tempelkan ID grup keamanan yang Anda salin ke dalam bidang.
-
Pilih Simpan aturan.
-
Langkah 2: Luncurkan instans sementara
Luncurkan instans sementara yang dapat Anda gunakan untuk menginstal dan mengonfigurasi komponen perangkat lunak EFA. Anda menggunakan instance ini untuk membuat EFA-enabled AMI dari mana Anda dapat meluncurkan EFA-enabled instans Anda.
Untuk meluncurkan instans sementara
Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/
. -
Di panel navigasi, pilih Instans, lalu pilih Luncurkan Instans untuk membuka wizard peluncuran instans baru.
-
(Opsional) Di bagian Nama dan tanda, berikan nama untuk instans, seperti
EFA-instance. Nama ditetapkan ke instans sebagai tanda sumber daya (Name=).EFA-instance -
Di bagian Aplikasi dan Gambar OS, pilih AMI untuk salah satu sistem operasi yang didukung.
-
Di bagian Jenis Instance, pilih jenis instance yang didukung.
-
Pada bagian Pasangan kunci, pilih pasangan kunci yang akan digunakan untuk instans.
-
Di bagian Pengaturan jaringan, pilih Edit, lalu lakukan hal berikut:
-
Untuk Subnet, pilih subnet untuk meluncurkan instans.
penting
Anda harus memilih subnet. Jika Anda tidak memilih subnet, Anda tidak dapat mengaktifkan instans untuk EFA.
-
Untuk Firewall (grup keamanan), pilih Pilih grup keamanan yang ada, lalu pilih grup keamanan yang Anda buat di langkah sebelumnya.
-
Perluas bagian Konfigurasi jaringan lanjutan.
Untuk Antarmuka jaringan 1, pilih Indeks kartu jaringan = 0, indeks perangkat = 0, dan tipe antarmuka = EFA dengan ENA.
(Opsional) Jika Anda menggunakan jenis instance multi-kartu, untuk setiap antarmuka jaringan tambahan yang diperlukan, pilih Tambahkan antarmuka jaringan, untuk Indeks kartu jaringan pilih indeks yang tidak digunakan berikutnya, lalu pilih Indeks perangkat = 1 dan Jenis antarmuka = EFA dengan ENA atau. EFA-only
-
-
Di bagian Penyimpanan, konfigurasikan volume sesuai kebutuhan.
catatan
Anda harus menyediakan penyimpanan tambahan 10 hingga 20 GiB untuk NVIDIA CUDA Toolkit. Jika Anda tidak menyediakan penyimpanan yang cukup, Anda akan menerima
insufficient disk spacekesalahan saat mencoba menginstal driver NVIDIA dan toolkit CUDA. -
Di panel Ringkasan di sebelah kanan, pilih Luncurkan instans.
Langkah 3: Instal driver GPU NVIDIA, NVIDIA CUDA Toolkit, dan cuDNN
Langkah 4: Instal GDRCopy
Instal GDRCopy untuk meningkatkan performa Libfabric. Untuk informasi selengkapnya tentang GDRCopy, lihat repositori GDRCopy
Langkah 5: Instal perangkat lunak EFA
Instal EFA-enabled kernel, driver EFA, Libfabric, plugin aws-ofi-nccl, dan tumpukan Open MPI yang diperlukan untuk mendukung EFA pada instance Anda.
Untuk menginstal perangkat lunak EFA
-
Hubungkan ke instans yang Anda luncurkan. Untuk informasi selengkapnya, lihat Hubungkan ke instans Linux Anda, menggunakan SSH..
-
Unduh file penginstalan perangkat lunak EFA. File instalasi perangkat lunak datang sebagai file tarball (
.tar.gz) terkompresi. Untuk mengunduh versi stabil terbaru, gunakan perintah berikut.$curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.50.0.tar.gzAnda juga bisa mendapatkan versi terbaru dengan mengganti nomor versi dengan
latestdalam perintah sebelumnya. (Opsional) Verifikasi keaslian dan integritas file tarball EFA (
.tar.gz).Kami menyarankan Anda melakukan hal ini untuk memverifikasi identitas penerbit perangkat lunak dan memeriksa apakah file tersebut tidak diubah atau rusak sejak file tersebut diterbitkan. Jika Anda tidak ingin memverifikasi file tarball, lewati langkah ini.
catatan
Atau, jika Anda memilih untuk memverifikasi file tarball menggunakan checksum MD5 atau SHA256, lihat Memverifikasi penginstal EFA menggunakan checksum.
-
Unduh kunci GPG publik dan impor ke dalam keyring Anda.
$wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.keyPerintah tersebut harus mengembalikan nilai kunci. Catat nilai kunci, karena Anda membutuhkannya di langkah selanjutnya.
-
Verifikasi sidik jari kunci GPG. Jalankan perintah berikut dan tentukan nilai kunci dari langkah sebelumnya.
$gpg --fingerprintkey_valuePerintah tersebut harus mengembalikan sidik jari yang identik dengan
4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC. Jika sidik jari tidak cocok, jangan jalankan skrip instalasi EFA, dan hubungi Dukungan. -
Unduh file tanda tangan dan verifikasi tanda tangan pada file tarball EFA.
$wget https://efa-installer.amazonaws.com/aws-efa-installer-1.50.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.50.0.tar.gz.sigBerikut ini adalah contoh output.
gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC gpg: Good signature from "Amazon EC2 EFA <ec2-efa-maintainers@amazon.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCCJika hasilnya mencakup
Good signature, dan sidik jari cocok dengan sidik jari yang dikembalikan di langkah sebelumnya, lanjutkan ke langkah berikutnya. Jika tidak, jangan jalankan skrip instalasi EFA, dan hubungi Dukungan.
-
-
Ekstraksi file dari file
.tar.gzyang dikompresi dan navigasi ke dalam direktori yang diekstraksi.$tar -xf aws-efa-installer-1.50.0.tar.gz && cd aws-efa-installer (Opsional) Verifikasi tanda tangan paket individual selama instalasi.
Dimulai dengan EFA installer 1.48.0, installer menyertakan paket RPM dan DEB GPG-signed individual. Untuk memverifikasi keaslian dan integritas masing-masing paket selama instalasi, gunakan ben
--check-signaturesdera. Saat Anda mengaktifkan tanda ini, penginstal memverifikasi semua tanda tangan paket terlebih dahulu, dan hanya melanjutkan penginstalan jika setiap paket lulus verifikasi. Jika ada paket yang gagal verifikasi, penginstal segera keluar tanpa menginstal apa pun.-
Unduh kunci publik GPG.
$wget https://efa-installer.amazonaws.com/aws-efa-installer.key -
Ekspor jalur kunci. Kemudian, pada langkah berikutnya, tambahkan
--check-signatureske perintah instalasi dan gunakan alih-sudo -Ealihsudountuk melestarikan variabel lingkungan.$export EFA_INSTALLER_KEY=$(pwd)/aws-efa-installer.key
Pada RPM-based sistem (Amazon Linux 2023, RHEL, Rocky Linux, dan SUSE), penginstal memverifikasi setiap RPM menggunakan.
rpm --checksigPada DEB-based sistem (Ubuntu, Debian), installer memverifikasi setiap DEB menggunakan verifikasi tanda tangan GPG. Jika verifikasi paket gagal, instalasi segera dibatalkan.catatan
--check-signaturesBendera adalah opsional. Tanpa itu, penginstal tidak melakukan verifikasi tanda tangan individu.-
-
Unduh skrip penginstalan perangkat lunak EFA.
catatan
Jika Anda menyelesaikan langkah opsional sebelumnya untuk mengatur verifikasi tanda tangan paket, tambahkan
--check-signatureske perintah instalasi dan gunakan alsudo -Eih-alihsudo. Sebagai contoh:sudo -E ./efa_installer.sh -y --mpi=openmpi5 --check-signatures.catatan
Dari EFA 1.30.0, Open MPI 4.1 dan Open MPI 5 diinstal secara default. Kecuali Anda memerlukan Open MPI 4.1, instal hanya Open MPI 5. Perintah berikut menginstal Open MPI 5 saja. Jika Anda ingin menginstal Open MPI 4.1 dan Open MPI 5, hapus
--mpi=openmpi5.$sudo ./efa_installer.sh -y --mpi=openmpi5Libfabric diinstal di
/opt/amazon/efadirektori. Plu gin aws-ofi-nccl diinstal di direktori./opt/amazon/ofi-ncclOpen MPI diinstal di/opt/amazon/openmpidirektori. -
Jika penginstal EFA meminta Anda untuk me-reboot instans, lakukanlah dan kemudian sambungkan kembali ke instans. Jika tidak, log out dari instans lalu log kembali untuk menyelesaikan penginstalan.
-
Konfirmasikan bahwa perangkat lunak EFA berhasil diinstal.
$fi_info -p efa -t FI_EP_RDMPerintah tersebut harus mengembalikan informasi tentang antarmuka Libfabric EFA.
Langkah 6: Instal NCCL
Instal NCCL. Untuk informasi lebih lanjut tentang NCCL, lihat repositori NCCL
Untuk menginstal NCCL
-
Buka direktori
/opttersebut.$cd /opt -
Gandakan repositori NCCL resmi ke instans dan navigasi ke repositori klon lokal.
$sudo git clone https://github.com/NVIDIA/nccl.git -b v2.30.4-1 && cd nccl -
Bangun dan instal NCCL dan tentukan direktori instalasi CUDA.
$sudo make -j src.build CUDA_HOME=/usr/local/cuda-13
Langkah 7: Instal uji NCCL
Instal uji NCCL. Uji NCCL memungkinkan Anda untuk mengonfirmasi bahwa NCCL diinstal dengan benar dan beroperasi sesuai harapan. Untuk informasi lebih lanjut tentang pengujian NCCL, lihat repositori nccl-tests
Untuk menginstal pengujian EFA
-
Navigasi ke direktori beranda Anda.
$cd $HOME -
Gandakan repositori nccl-tests resmi ke instans dan navigasi ke repositori klon lokal.
$git clone https://github.com/NVIDIA/nccl-tests.git && cd nccl-tests -
Tambahkan direktori Libfabric ke variabel
LD_LIBRARY_PATH.-
Amazon Linux 2023
$export LD_LIBRARY_PATH=/opt/amazon/efa/lib64:$LD_LIBRARY_PATH -
Ubuntu dan Debian
$export LD_LIBRARY_PATH=/opt/amazon/efa/lib:$LD_LIBRARY_PATH -
HEEL 10
$export LD_LIBRARY_PATH=/opt/amazon/efa/lib64:$LD_LIBRARY_PATH
-
-
Instal pengujian NCCL dan tentukan direktori penginstalan MPI, NCCL, dan CUDA.
$make MPI=1 MPI_HOME=/opt/amazon/openmpiNCCL_HOME=/opt/nccl/buildCUDA_HOME=/usr/local/cuda-13
Langkah 8: Uji konfigurasi EFA dan NCCL Anda
Jalankan pengujian untuk memastikan bahwa instans sementara Anda sudah dikonfigurasi dengan benar untuk EFA dan NCCL.
Untuk menguji konfigurasi EFA dan NCCL Anda
-
Buat file host yang menentukan host untuk menjalankan pengujian. Perintah berikut membuat file host dengan nama
my-hostsyang mencakup referensi ke instans itu sendiri. -
Jalankan tes NCCL. Perintah berikut mengasumsikan bahwa Anda memiliki 8 GPU per instance. Sesuaikan
-Nnilai-ndan berdasarkan jenis instans Anda.$/opt/amazon/openmpi/bin/mpirun \ -x FI_EFA_USE_DEVICE_RDMA=1 \ -x LD_LIBRARY_PATH=/opt/nccl/build/lib:/usr/local/cuda/lib64:/opt/amazon/efa/lib:/opt/amazon/openmpi/lib:/opt/amazon/ofi-nccl/lib:$LD_LIBRARY_PATH \ -x NCCL_DEBUG=INFO \ --hostfile my-hosts -n 8 -N 8 \ --mca pml ^cm --mca btl tcp,self --mca btl_tcp_if_exclude lo,docker0 --bind-to none \ $HOME/nccl-tests/build/all_reduce_perf -b 8 -e 1G -f 2 -g 1 -c 1 -n 100 -
Anda dapat mengonfirmasi bahwa EFA aktif sebagai penyedia pokok NCCL ketika log
NCCL_DEBUGdicetak.ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Selected Provider is efa*Informasi tambahan berikut ditampilkan saat menggunakan instans
p4d.24xlarge.ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Running on P4d platform, Setting NCCL_TOPO_FILE environment variable to /home/ec2-user/install/plugin/share/aws-ofi-nccl/xml/p4d-24xl-topo.xml
Langkah 9: Instal aplikasi machine learning Anda
Instal aplikasi machine learning di instans sementara. Prosedur penginstalan bervariasi tergantung pada aplikasi machine learning tertentu. Untuk informasi selengkapnya tentang menginstal perangkat lunak pada instans Linux Anda, lihat Mengel ola pembaruan OS di Panduan Pengguna Amazon Linux 2023.
catatan
Lihat dokumentasi aplikasi machine learning Anda untuk petunjuk penginstalan.
Langkah 10: Buat EFA dan AMI NCCL-enabled
Setelah menginstal komponen perangkat lunak yang diperlukan, Anda membuat AMI yang dapat Anda gunakan kembali untuk meluncurkan EFA-enabled instans Anda.
Untuk membuat AMI dari instans sementara Anda
Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/
. -
Di panel navigasi, pilih Instans.
-
Pilih instans sementara yang Anda buat dan pilih Tindakan, Gambar, Buat gambar.
-
Untuk Buat gambar, lakukan hal berikut:
-
Untuk Nama gambar, masukkan nama deskriptif untuk AMI.
-
(Opsional) Untuk Deskripsi gambar, masukkan deskripsi singkat tentang tujuan AMI.
-
Pilih Buat gambar.
-
-
Di panel navigasi, pilih AMI.
-
Temukan AMI yang Anda buat dalam daftar. Tunggu hingga status berubah dari
pendingmenjadiavailablesebelum melanjutkan ke langkah berikutnya.
Langkah 11: Mengakhiri instans sementara
Pada titik ini, Anda tidak memerlukan lagi instans sementara yang Anda luncurkan. Anda dapat mengakhiri instans agar biaya tidak dibebankan lagi padanya.
Untuk mengakhiri instans sementara
Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/
. -
Di panel navigasi, pilih Instans.
-
Pilih instans sementara yang Anda buat dan pilih Tindakan, Status instans, Akhiri instans.
-
Saat diminta konfirmasi, pilih Akhiri.
Langkah 12: Luncurkan EFA dan NCCL-enabled instance ke grup penempatan cluster
Luncurkan EFA dan NCCL-enabled instans Anda ke grup penempatan cluster menggunakan EFA-enabled AMI dan grup EFA-enabled keamanan yang Anda buat sebelumnya.
catatan
-
Ini bukan persyaratan mutlak untuk meluncurkan EFA-enabled instans Anda ke grup penempatan cluster. Namun, sebaiknya jalankan EFA-enabled instans Anda di grup penempatan cluster karena meluncurkan instans ke grup latensi rendah di Zona Ketersediaan tunggal.
-
Untuk memastikan kapasitas tersedia saat Anda menskalakan instans klaster, Anda dapat membuat Reservasi Kapasitas untuk grup penempatan klaster Anda. Untuk informasi selengkapnya, lihat Gunakan Reservasi Kapasitas dengan grup penempatan.
Langkah 13: Mengaktifkan SSH tanpa kata sandi
catatan
Pengguna SSH default bervariasi menurut sistem operasi: ubuntu untuk Ubuntu, admin untuk Debian, ec2-user untuk Amazon Linux dan RHEL.
Agar aplikasi Anda dapat berjalan di semua instans dalam klaster, Anda harus mengaktifkan akses SSH tanpa kata sandi dari simpul pemimpin ke simpul anggota. Simpul pemimpin adalah instans dari mana Anda menjalankan aplikasi Anda. Instans yang tersisa di klaster adalah simpul anggota.
Untuk mengaktifkan SSH tanpa kata sandi antar instans dalam klaster
-
Pilih satu instans dalam klaster sebagai simpul pemimpin, dan hubungkan ke instans tersebut.
-
Nonaktifkan
strictHostKeyCheckingdan aktifkanForwardAgentpada simpul pemimpin. Buka~/.ssh/configmenggunakan editor teks pilihan Anda dan tambahkan berikut ini.Host * ForwardAgent yes Host * StrictHostKeyChecking no -
Membuat pasangan kunci RSA.
$ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsaPasangan kunci dibuat dalam direktori
$HOME/.ssh/. -
Ubah izin kunci privat pada simpul pemimpin.
$chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/config -
Buka
~/.ssh/id_rsa.pubmenggunakan editor teks pilihan Anda dan salin kunci. -
Untuk setiap simpul anggota di klaster, lakukan hal berikut:
-
Hubungkan dengan instans.
-
Buka
~/.ssh/authorized_keysmenggunakan editor teks pilihan Anda tambahkan kunci publik yang Anda salin sebelumnya.
-
-
Untuk menguji apakah SSH tanpa kata sandi berfungsi seperti yang diharapkan, hubungkan ke simpul pemimpin Anda dan jalankan perintah berikut.
$sshmember_node_private_ipAnda harus terhubung ke simpul anggota tanpa diminta untuk memasukkan kunci atau kata sandi.