Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai EFA dan NIXL untuk beban kerja inferensi di Amazon EC2
NVIDIA Inference Xfer Library (NIXL) adalah pustaka komunikasi latensi rendah throughput tinggi yang dirancang khusus untuk beban kerja inferensi terpilah. NIXL dapat digunakan bersama dengan EFA dan Libfabric untuk mendukung transfer KV-cache antara prefill dan decode node, dan memungkinkan pergerakan KV-cache yang efisien antara berbagai lapisan penyimpanan. Untuk informasi lebih lanjut, lihat situs web NIXL
Persyaratan
-
Hanya basis Ubuntu 24.04 dan Ubuntu 22.04 AMIs yang didukung.
-
EFA hanya mendukung NIXL 1.0.0 dan yang lebih baru.
Langkah-langkah
EFA memerlukan grup keamanan yang memungkinkan semua lalu lintas masuk dan keluar ke dan dari grup keamanan itu sendiri. Prosedur berikut membuat grup keamanan yang memungkinkan semua lalu lintas masuk dan keluar ke dan dari dirinya sendiri, dan yang memungkinkan lalu lintas SSH masuk dari IPv4 alamat 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.
Untuk skenario lainnya, lihat Aturan-aturan grup keamanan untuk kasus penggunaan yang berbeda.
Untuk membuat grup keamanan yang diaktifkan EFA
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 untuk tujuan peluncuran instans Anda yang didukung EFA.
-
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.
-
Luncurkan instans sementara yang dapat Anda gunakan untuk menginstal dan mengonfigurasi komponen perangkat lunak EFA. Anda menggunakan instans ini untuk membuat AMI yang diaktifkan EFA sebagai tempat untuk meluncurkan instans Anda yang diaktifkan EFA.
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. Anda juga dapat memilih DLAMI yang didukung yang ditemukan di Halaman Catatan Rilis DLAMI.
-
Di bagian Jenis instans, pilih jenis instans 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. 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 Jenis antarmuka = EFA dengan ENA.
(Opsional) Jika Anda menggunakan jenis instans multi-kartu, seperti
p4d.24xlargeataup5.48xlarge, untuk setiap antarmuka jaringan tambahan yang diperlukan, pilih Tambahkan antarmuka jaringan, untuk indeks kartu jaringan pilih indeks berikutnya yang tidak digunakan, lalu pilih Indeks perangkat = 1 dan Jenis antarmuka = EFA dengan ENA atau EFA saja.
-
-
Di bagian Penyimpanan, konfigurasikan volume sesuai kebutuhan.
catatan
Anda harus menyediakan penyimpanan tambahan 10 hingga 20 GiB untuk Nvidia CUDA. Jika Anda tidak menyediakan penyimpanan yang cukup, Anda akan menerima kesalahan
insufficient disk spacesaat mencoba menginstal driver Nvidia dan toolkit CUDA. -
Di panel Ringkasan di sebelah kanan, pilih Luncurkan instans.
penting
Lewati Langkah 3 jika AMI Anda sudah menyertakan driver GPU Nvidia, toolkit CUDA, dan cuDNN, atau jika Anda menggunakan instance non-GPU.
Untuk menginstal driver Nvidia GPU, kit alat CUDA Nvidia, dan cuDNN
-
Untuk memastikan bahwa semua paket perangkat lunak Anda telah diperbarui, lakukan pembaruan perangkat lunak cepat di instans Anda.
$sudo apt-get update && sudo apt-get upgrade -y -
Pasang utilitas yang diperlukan untuk memasang driver GPU Nvidia dan toolkit Nvidia CUDA.
$sudo apt-get install build-essential -y -
Untuk menggunakan driver GPU Nvidia, Anda harus menonaktifkan driver sumber terbuka
nouveauterlebih dahulu.-
Instal utilitas yang diperlukan dan paket header kernel untuk versi kernel yang sedang Anda jalankan.
$sudo apt-get install -y gcc make linux-headers-$(uname -r) -
Tambahkan
nouveauke file daftar penolakan/etc/modprobe.d/blacklist.conf.$cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF -
Buka
/etc/default/grubmenggunakan editor teks pilihan Anda dan tambahkan berikut ini.GRUB_CMDLINE_LINUX="rdblacklist=nouveau" -
Buat kembali konfigurasi Grub.
$sudo update-grub
-
-
Boot ulang dan terhubung kembali ke instans Anda.
-
Tambahkan repositori CUDA dan instal driver Nvidia GPU, toolkit CUDA NVIDIA, dan cuDNN.
$sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub \ && wget -O /tmp/deeplearning.deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb \ && sudo dpkg -i /tmp/deeplearning.deb \ && wget -O /tmp/cuda.pin https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin \ && sudo mv /tmp/cuda.pin /etc/apt/preferences.d/cuda-repository-pin-600 \ && sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub \ && sudo add-apt-repository 'deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /' \ && sudo apt update \ && sudo apt install nvidia-dkms-535 \ && sudo apt install -o Dpkg::Options::='--force-overwrite' cuda-drivers-535 cuda-toolkit-12-3 libcudnn8 libcudnn8-dev -y -
Boot ulang dan terhubung kembali ke instans Anda.
-
(
p4d.24xlargedanp5.48xlargesaja) Instal Nvidia Fabric Manager.-
Anda harus menginstal versi Nvidia Fabric Manager yang cocok dengan versi modul kernel Nvidia yang Anda instal pada langkah sebelumnya.
Jalankan perintah berikut untuk menentukan versi modul kernel Nvidia.
$cat /proc/driver/nvidia/version | grep "Kernel Module"Berikut ini adalah output contoh.
NVRM version: NVIDIA UNIX x86_64 Kernel Module 450.42.01 Tue Jun 15 21:26:37 UTC 2021Pada contoh di atas, versi utama
450dari modul kernel diinstal. Ini berarti Anda perlu menginstal versi Nvidia Fabric Manager450. -
Instal Nvidia Fabric Manager. Jalankan perintah berikut dan tentukan versi utama yang diidentifikasi pada langkah sebelumnya.
$sudo apt install -o Dpkg::Options::='--force-overwrite' nvidia-fabricmanager-major_version_numberMisalnya, jika versi
450utama modul kernel diinstal, gunakan perintah berikut untuk menginstal versi Nvidia Fabric Manager yang cocok.$sudo apt install -o Dpkg::Options::='--force-overwrite' nvidia-fabricmanager-450 -
Mulai layanan, dan pastikan bahwa layanan tersebut dimulai secara otomatis ketika instans dimulai. Nvidia Fabric Manager diperlukan untuk NV Switch Management.
$sudo systemctl start nvidia-fabricmanager && sudo systemctl enable nvidia-fabricmanager
-
-
Pastikan bahwa jalur CUDA diatur setiap kali instans dimulai.
-
Untuk shell bash, tambahkan pernyataan berikut ke
/home/danusername/.bashrc/home/.username/.bash_profileexport PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH -
Untuk shell tcsh, tambahkan pernyataan berikut ke
/home/.username/.cshrcsetenv PATH=/usr/local/cuda/bin:$PATH setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
-
-
Untuk mengonfirmasi bahwa driver Nvidia GPU berfungsi, jalankan perintah berikut.
$nvidia-smi -q | headPerintah tersebut harus mengembalikan informasi tentang Nvidia GPUs, driver GPU Nvidia, dan toolkit Nvidia CUDA.
penting
Lewati Langkah 4 jika AMI Anda sudah termasuk GDRCopy, atau jika Anda menggunakan instance non-GPU.
Instal GDRCopy untuk meningkatkan kinerja Libfabric pada platform berbasis GPU. Untuk informasi selengkapnyaGDRCopy, lihat GDRCopy repositori
Untuk menginstal GDRCopy
-
Instal dependensi yang diperlukan.
$sudo apt -y install build-essential devscripts debhelper check libsubunit-dev fakeroot pkg-config dkms -
Unduh dan ekstrak GDRCopy paketnya.
$wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.4.tar.gz \ && tar xf v2.4.tar.gz \ && cd gdrcopy-2.4/packages -
Bangun paket GDRCopy DEB.
$CUDA=/usr/local/cuda ./build-deb-packages.sh -
Instal paket GDRCopy DEB.
$sudo dpkg -i gdrdrv-dkms_2.4-1_amd64.*.deb \ && sudo dpkg -i libgdrapi_2.4-1_amd64.*.deb \ && sudo dpkg -i gdrcopy-tests_2.4-1_amd64.*.deb \ && sudo dpkg -i gdrcopy_2.4-1_amd64.*.deb
penting
Lewati Langkah 5 jika AMI Anda sudah menyertakan penginstal EFA terbaru.
Instal kernel berkemampuan EFA, driver EFA, dan tumpukan Libfabric yang diperlukan untuk mendukung EFA pada instans 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 penginstalan perangkat lunak dikemas menjadi file tarball (
.tar.gz) yang dikompresi. Untuk mengunduh versi stabil terbaru, gunakan perintah berikut.$curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz -
Ekstrak file dari file terkompresi
.tar.gz, hapus tarball, dan navigasikan ke direktori yang diekstraksi.$tar -xf aws-efa-installer-1.47.0.tar.gz && rm -rf aws-efa-installer-1.47.0.tar.gz && cd aws-efa-installer -
Unduh skrip penginstalan perangkat lunak EFA.
$sudo ./efa_installer.sh -yLibfabric diinstal di
/opt/amazon/efadirektori. -
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.
-
Pastikan bahwa komponen perangkat lunak EFA telah berhasil diinstal.
$fi_info -p efa -t FI_EP_RDMPerintah tersebut harus mengembalikan informasi tentang antarmuka Libfabric EFA. Contoh berikut menunjukkan output perintah.
-
p3dn.24xlargedengan satu antarmuka jaringanprovider: efa fabric: EFA-fe80::94:3dff:fe89:1b70 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA -
p4d.24xlargedanp5.48xlargedengan berbagai antarmuka jaringanprovider: efa fabric: EFA-fe80::c6e:8fff:fef6:e7ff domain: efa_0-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::c34:3eff:feb2:3c35 domain: efa_1-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::c0f:7bff:fe68:a775 domain: efa_2-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::ca7:b0ff:fea6:5e99 domain: efa_3-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA
-
Instal NIXL. Untuk informasi selengkapnya tentang NIXL, lihat repositori NIXL
Instal Benchmark NIXL dan jalankan pengujian untuk memastikan bahwa instans sementara Anda dikonfigurasi dengan benar untuk EFA dan NIXL. Benchmark NIXL memungkinkan Anda untuk mengonfirmasi bahwa NIXL diinstal dengan benar dan beroperasi seperti yang diharapkan. Untuk informasi selengkapnya, lihat repositori nixlbench
NIXL Benchmark (nixlbench) membutuhkan ETCD untuk koordinasi antara klien dan server. Untuk menggunakan ETCD dengan NIXL memerlukan ETCD Server dan Klien, dan ETCD CPP API.
Instal aplikasi machine learning di instans sementara. Prosedur penginstalan bervariasi tergantung pada aplikasi machine learning tertentu.
catatan
Lihat dokumentasi aplikasi pembelajaran mesin Anda untuk petunjuk pemasangan.
Setelah menginstal komponen perangkat lunak yang diperlukan, Anda membuat AMI yang dapat digunakan kembali untuk meluncurkan instans Anda dengan EFA yang diaktifkan.
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 AMIs.
-
Temukan AMI yang Anda buat dalam daftar. Tunggu hingga status berubah dari
pendingmenjadiavailablesebelum melanjutkan ke langkah berikutnya.
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.
Luncurkan instans berkemampuan EFA dan NIXL Anda menggunakan AMI berkemampuan EFA yang Anda buat di Langkah 9, dan grup keamanan berkemampuan EFA yang Anda buat di Langkah 1.
Untuk meluncurkan instans yang mendukung EFA dan NIXL
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 Application and OS ImagesAMIs, pilih My, lalu pilih AMI yang Anda buat pada langkah sebelumnya.
-
Di bagian Jenis instans, pilih jenis instans 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. 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 1.
-
Perluas bagian Konfigurasi jaringan lanjutan.
Untuk antarmuka Jaringan 1, pilih Indeks kartu jaringan = 0, Indeks perangkat = 0, dan Jenis antarmuka = EFA dengan ENA.
(Opsional) Jika Anda menggunakan jenis instans multi-kartu, seperti
p4d.24xlargeataup5.48xlarge, untuk setiap antarmuka jaringan tambahan yang diperlukan, pilih Tambahkan antarmuka jaringan, untuk indeks kartu jaringan pilih indeks berikutnya yang tidak digunakan, lalu pilih Indeks perangkat = 1 dan Jenis antarmuka = EFA dengan ENA atau EFA saja.
-
-
(Opsional) Di bagian Penyimpanan, konfigurasikan volume sesuai kebutuhan.
-
Di panel Ringkasan di sebelah kanan, untuk Jumlah instans, masukkan jumlah instans yang diaktifkan EFA yang ingin Anda luncurkan, lalu pilih Luncurkan instans.
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.
penting
Ikuti Langkah 13 hanya jika Anda mengikuti Langkah 7.
Jalankan pengujian untuk memastikan bahwa instans Anda dikonfigurasi dengan benar untuk EFA dan NIXL.
Setelah NIXL diinstal, Anda dapat menggunakan NIXL melalui inferensi LLM dan kerangka kerja penyajian seperti VllM,, dan TensorRT-LLM. SGLang
Untuk melayani beban kerja inferensi Anda menggunakan VllM
-
Instal Vllm.
$pip install vllm -
Mulai server VLLM dengan NIXL. Contoh perintah berikut membuat satu prefill (producer) dan satu decode (consumer) instance untuk koneksi handshake NIXL, konektor KV, peran KV, dan backend transport. Untuk contoh dan skrip terperinci, lihat Panduan NIXLConnector Penggunaan
. Untuk menggunakan NIXL dengan EFA, atur variabel lingkungan berdasarkan kasus penyiapan dan penggunaan Anda.
-
Konfigurasi Produser (Prefiller)
$vllm serveyour-application\ --port 8200 \ --enforce-eager \ --kv-transfer-config '{"kv_connector":"NixlConnector","kv_role":"kv_both","kv_buffer_device":"cuda","kv_connector_extra_config":{"backends":["LIBFABRIC"]}}' -
Konfigurasi konsumen (Decoder)
$vllm serveyour-application\ --port 8200 \ --enforce-eager \ --kv-transfer-config '{"kv_connector":"NixlConnector","kv_role":"kv_both","kv_buffer_device":"cuda","kv_connector_extra_config":{"backends":["LIBFABRIC"]}}'
Konfigurasi sampel sebelumnya menetapkan hal berikut:
-
kv_roleuntukkv_both, yang memungkinkan fungsionalitas simetris di mana konektor dapat bertindak sebagai produsen dan konsumen. Ini memberikan fleksibilitas untuk pengaturan eksperimental dan skenario di mana perbedaan peran tidak ditentukan sebelumnya. -
kv_buffer_deviceuntukcuda, yang memungkinkan menggunakan memori GPU. -
NIXL backend ke
LIBFABRIC, yang memungkinkan lalu lintas NIXL melewati EFA.
-