Elastic Remote Direct Memory Access (eRDMA) adalah layanan jaringan RDMA berlatensi rendah, throughput tinggi, berkinerja tinggi, dan sangat skalabel yang disediakan oleh Alibaba Cloud. eRDMA dikembangkan berdasarkan arsitektur SHENLONG generasi keempat dan Virtual Private Cloud (VPC). Layanan ini sepenuhnya kompatibel dengan ekosistem RDMA dan menyediakan jaringan ultra-besar yang inklusif untuk instans Elastic Compute Service (ECS). Topik ini menjelaskan cara mengonfigurasi dan menggunakan eRDMA di kluster Container Service for Kubernetes (ACK).
Prasyarat
Kluster ACK yang menjalankan Kubernetes versi 1.20 atau lebih baru telah siap. Untuk melakukan peningkatan, lihat Upgrade clusters.
Sebuah node yang mendukung elastic Remote Direct Memory Access (eRDMA) telah dibuat dan ditambahkan ke kelompok node.
Anda hanya dapat mengikat ERI ke instans ECS dari keluarga instans tertentu. Untuk informasi mengenai keluarga instans yang mendukung ERI, lihat Overview of instance families.
Langkah 1: Instal ACK eRDMA Controller
Ikuti langkah-langkah berikut untuk menginstal ACK eRDMA Controller.
Jika kluster ACK Anda menggunakan Terway, konfigurasikan filter elastic network interface (ENI) untuk Terway agar tidak mengubah ENI eRDMA. Untuk informasi selengkapnya, lihat Configure a filter for ENIs.
Jika sebuah node memiliki beberapa ENI, ACK eRDMA Controller mengonfigurasi entri rute untuk ENI tambahan eRDMA dengan prioritas lebih rendah daripada entri rute untuk ENI dalam Blok CIDR yang sama, menggunakan prioritas routing default
200. Jika Anda perlu mengonfigurasi ENI secara manual setelah menginstal ACK eRDMA Controller, pastikan untuk menghindari konflik routing.
Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, klik Add-ons.
Pada halaman Add-ons, klik tab Networking, temukan ACK eRDMA Controller, lalu ikuti petunjuk pada halaman tersebut untuk mengonfigurasi dan menginstal komponen ini.
Parameter
Deskripsi
preferDriver Driver type
Pilih tipe driver eRDMA yang digunakan pada node kluster. Nilai yang valid:
default: Mode driver default.compat: Mode driver yang kompatibel dengan RDMA over Converged Ethernet (RoCE).ofed: Mode driver berbasis ofed, yang berlaku untuk model GPU.
Untuk informasi selengkapnya mengenai jenis-jenis driver, lihat Enable eRDMA.
Specifies whether to assign all eRDMA devices of nodes to pods
Nilai yang valid:
True: Jika Anda memilih kotak centang ini, semua perangkat eRDMA pada node dialokasikan ke pod.
False: Jika Anda tidak memilih kotak centang ini, pod dialokasikan satu perangkat eRDMA berdasarkan topologi non-uniform memory access (NUMA). Anda harus mengaktifkan kebijakan CPU statis untuk node guna memastikan NUMA dapat dialokasikan ke pod dan perangkat. Untuk informasi selengkapnya mengenai cara mengonfigurasi kebijakan CPU, lihat Create and manage node pools.
Di panel navigasi sebelah kiri, pilih Workloads > Pods. Pada halaman Pods, pilih namespace ack-erdma-controller untuk melihat status pod dan memastikan komponen berjalan sesuai harapan.
Langkah 2: Gunakan eRDMA untuk mempercepat jaringan kontainer
Setelah menginstal ACK eRDMA Controller, Anda dapat menggunakan konfigurasi berikut untuk mengaktifkan eRDMA pada pod.
Konfigurasi | Metode konfigurasi | Deskripsi |
Enable eRDMA | Tentukan penggunaan resource | Alokasikan perangkat eRDMA ke pod dengan menentukan resource Setelah mengalokasikan perangkat RDMA, Anda dapat melihat perangkat yang dialokasikan di dalam pod. |
Enable Shared Memory Communication over RDMA (SMC-R) | Setelah mengaktifkan eRDMA, tentukan anotasi | Setelah mengaktifkan SMC-R, percepatan eRDMA hanya dapat digunakan jika SMC-R dikonfigurasi pada kedua ujung koneksi TCP. Anda dapat menginstal Catatan
|
Skenario 1: Model GPU menggunakan eRDMA untuk mempercepat NCCL
Saat menginstal ACK eRDMA Controller berdasarkan Langkah 1: Instal ACK eRDMA Controller, atur parameter
preferDriverkeofeduntuk mempercepat Nvidia Collective Communication Library (NCCL).Tambahkan node yang dipercepat GPU ke kelompok node. Untuk informasi selengkapnya, lihat Create and manage node pools.
Instal paket terkait eRDMA saat membangun gambar kontainer aplikasi.
Jalankan aplikasi GPU yang menggunakan eRDMA di kluster. Contoh yang digunakan adalah
nccl-test.Verifikasi bahwa eRDMA digunakan oleh NCCL.
Anda dapat memeriksa jenis komunikasi dan jumlah antarmuka jaringan yang digunakan oleh NCCL di log aplikasi. Contoh:

Output perintah menunjukkan bahwa perangkat eRDMA
erdma_0danerdma_1dipercepat.
Skenario 2: Gunakan SMC-R untuk mempercepat jaringan aplikasi
Saat menginstal ACK eRDMA Controller berdasarkan Langkah 1: Instal ACK eRDMA Controller, atur parameter
preferDriverkedefaultuntuk mempercepat komunikasi reguler.Buat aplikasi yang dapat dipercepat menggunakan SMC-R di kluster berdasarkan contoh kode berikut:
Periksa status koneksi jaringan di dalam pod.
Anda dapat menginstal
smc-toolsdi dalam kontainer dan menjalankan perintahsmcssuntuk melihat hasil percepatan./# smcss State UID Inode Local Address Peer Address Intf Mode ACTIVE 00000 0059964 172.17.192.73:47772 172.17.192.10:80 0000 SMCRPada output perintah,
SMCRditampilkan di kolomMode, yang menunjukkan bahwa koneksi tersebut menggunakan eRDMA.