全部产品
Search
文档中心

Elastic Compute Service:Aktifkan eRDMA pada instans yang dipercepat GPU

更新时间:Dec 06, 2025

Setelah Anda menyambungkan Elastic RDMA Interface (ERI) ke instans yang dipercepat GPU, instans tersebut dapat menggunakan RDMA passthrough untuk konektivitas terakselerasi dalam VPC. Dibandingkan dengan RDMA tradisional, elastic Remote Direct Memory Access (eRDMA) menyediakan transmisi data yang lebih efisien, meningkatkan efisiensi komunikasi antar instans yang dipercepat GPU, serta mengurangi waktu pemrosesan tugas. Topik ini menjelaskan cara mengaktifkan eRDMA pada instans yang dipercepat GPU.

Batasan

Batasan

Deskripsi

Tipe instans

Tipe instans berikut mendukung ERI:

  • gn8is, ebmgn8is, gn8v, ebmgn8v

Citra

Salah satu citra berikut didukung:

  • (Direkomendasikan) Alibaba Cloud Linux 3

  • CentOS 8.5/8.4/7.9

  • Ubuntu 24.04/22.04/20.04/18.04

Jumlah perangkat eRDMA

  • Keluarga instans gn8is dan gn8v hanya mendukung satu perangkat network interface card eRDMA.

  • Instans ECS Bare Metalebmgn8is, dan ebmgn8v mendukung dua perangkat network interface card eRDMA.

Batasan jaringan

  • Setelah Anda mengaktifkan Elastic RDMA Interface untuk network interface card, Anda tidak dapat menetapkan Alamat IPv6 kepadanya.

  • Ketika dua instans berkomunikasi melalui ERI, elemen jaringan seperti Server Load Balancer (SLB) tidak didukung dalam tautan komunikasi tersebut.

Prosedur

Untuk menggunakan fitur eRDMA pada instans yang didukung, dua kondisi harus dipenuhi: tumpukan perangkat lunak eRDMA telah diinstal dan network interface card dengan fitur Elastic RDMA Interface diaktifkan telah disambungkan.

Konfigurasi eRDMA saat membeli instans

  1. Buka Konsol ECS untuk membeli instans.

  2. Buat instans yang dipercepat GPU yang mendukung ERI.

    Selama proses pembuatan, perhatikan item konfigurasi berikut. Untuk informasi tentang parameter lainnya, lihat Buat instans di tab Custom Launch.

    • Instance: Lihat Batasan. Topik ini menggunakan ebmgn8is sebagai contoh.

    • Image: Saat memilih citra publik, opsi Auto-install GPU Driver dan Auto-install eRDMA Software Stack dipilih secara default. Setelah instans dibuat, sistem secara otomatis menginstal driver GPU, CUDA, cuDNN, dan tumpukan perangkat lunak eRDMA.

      image

      Catatan mengenai instalasi tumpukan perangkat lunak Elastic RDMA Interface (ERI)

      • Pada tab Public Images, jika Anda memilih citra yang mendukung Auto-install eRDMA Software Stack (sehingga opsi Auto-install eRDMA Software Stack tersedia) tetapi tidak memilih opsi tersebut, Anda dapat menginstal tumpukan perangkat lunak eRDMA menggunakan skrip atau instalasi manual setelah instans dibuat.

      • Pada tab Public Images, jika Anda memilih citra dan versi OS yang tidak mendukung Auto-install eRDMA Software Stack, opsi Auto-install eRDMA Software Stack tidak tersedia. Dalam kasus ini, Anda tidak dapat mengaktifkan network interface card eRDMA dengan menginstal tumpukan perangkat lunak setelah instans dibuat.

      • Pada tab Public Images, jika Anda menghapus centang opsi Auto-install eRDMA Software Stack, Anda dapat memilih dari kumpulan citra dan versi OS yang lebih luas.

    • (Opsional) Enable Jumbo Frames: Jika instans yang dipilih mendukung jumbo frames, Anda dapat mengaktifkan fitur ini untuk meningkatkan kinerja komunikasi eRDMA.

      Mengaktifkan jumbo frames memungkinkan Anda menetapkan MTU yang lebih besar. Saat menggunakan NCCL dan protokol latensi rendah LL128 untuk komunikasi, MTU harus 8500. Jika jumbo frames tidak diaktifkan, MTU harus 1400. Pengaturan MTU yang salah menyebabkan masalah konsistensi data.
    • ENI: Saat membuat instans yang dipercepat GPU, sebuah network interface card primer eRDMA dan ENI sekunder eRDMA dibuat secara default pada halaman Network and Security Groups. Opsi eRDMA Interface dipilih secara otomatis untuk network interface card primer dan ENI sekunder.

      弹性网卡.jpg

      Catatan
      • Setelah instans yang dipercepat GPU berjalan, Anda tidak dapat mengaktifkan atau menonaktifkan fitur Elastic RDMA untuk satu ENI saja.

      • Dua network interface card dengan fitur Elastic RDMA diaktifkan secara otomatis disambungkan ke saluran yang berbeda. Anda tidak perlu menentukan saluran tersebut.

      • Network interface card primer tidak dapat dilepas dari instans yang dipercepat GPU. Kartu tersebut hanya dapat dibuat dan dilepas bersamaan dengan instans.

  3. Buka halaman detail instans yang telah dibuat, klik tab ENIs, lalu lihat tipe network interface card instans tersebut.

    Jika tipe network interface card untuk network interface card primer atau ENI sekunder ditampilkan seperti pada gambar berikut, berarti ENI dengan fitur Elastic RDMA Interface diaktifkan telah disambungkan ke instans tersebut.

    主辅助弹性网卡.jpg

Konfigurasi eRDMA untuk instans yang dipercepat GPU yang sudah ada

  1. Login ke Konsol ECS.

  2. Temukan instans target, buka halaman detail instans, lalu pilih tab ENIs untuk memeriksa apakah network interface card dengan fitur Elastic RDMA Interface diaktifkan telah disambungkan ke instans tersebut.

    弹性网卡.jpg

    • Jika sudah diaktifkan (seperti pada gambar sebelumnya), lewati langkah-langkah berikut.

    • Jika belum diaktifkan, ikuti langkah-langkah berikut untuk mengonfigurasi eRDMA untuk network interface card primer atau ENI sekunder.

  3. Konfigurasikan eRDMA untuk network interface card primer atau ENI sekunder.

    Catatan
    • Untuk tipe instans yang mendukung jumbo frames, Anda dapat mengaktifkan jumbo frames untuk meningkatkan kinerja komunikasi eRDMA.

      Mengaktifkan jumbo frames memungkinkan Anda menetapkan MTU yang lebih besar. Saat menggunakan NCCL dan protokol latensi rendah LL128 untuk komunikasi, MTU harus 8500. Jika jumbo frames tidak diaktifkan, MTU harus 1400. Pengaturan MTU yang salah menyebabkan masalah konsistensi data.
    • Jika Anda membuat instans yang dipercepat GPU tanpa memilih opsi eRDMA Interface untuk network interface card primer atau ENI sekunder, Anda dapat membuat dan menyambungkan dua ENI sekunder yang diaktifkan eRDMA setelah instans dibuat.

    • Jika Anda membuat instans yang dipercepat GPU dan hanya memilih opsi eRDMA Interface untuk satu ENI saja, Anda hanya dapat membuat dan menyambungkan satu ENI sekunder tambahan yang diaktifkan eRDMA setelah instans dibuat.

    • Konfigurasi eRDMA untuk network interface card primer

      Gunakan OpenAPI untuk mengonfigurasi eRDMA untuk network interface card primer. Untuk informasi selengkapnya, lihat ModifyNetworkInterfaceAttribute.

      Deskripsi parameter utama

      Parameter

      Deskripsi

      RegionId

      ID wilayah tempat network interface card primer berada.

      NetworkInterfaceId

      ID network interface card primer.

      NetworkInterfaceTrafficMode

      Mode komunikasi network interface card primer. Nilai yang valid:

      • Standard: menggunakan mode komunikasi TCP.

      • HighPerformance: mengaktifkan ERI dan menggunakan mode komunikasi RDMA.

      Pada langkah ini, pilih HighPerformance.

    • Konfigurasi eRDMA untuk ENI sekunder

      Saat membuat dan menyambungkan network interface card eRDMA ke instans yang dipercepat GPU di konsol, Anda tidak dapat menyambungkannya ke saluran yang berbeda. Hal ini mengurangi total bandwidth kedua network interface card eRDMA hingga separuhnya. Oleh karena itu, gunakan OpenAPI untuk menyambungkan network interface card eRDMA.

      (Direkomendasikan) Gunakan OpenAPI

      • Metode 1: Buat dan sambungkan network interface card Elastic RDMA

        Setiap instans yang dipercepat GPU mendukung hingga dua network interface card eRDMA. Anda harus menggunakan parameter NetworkCardIndex untuk menyambungkannya ke saluran yang berbeda.

        1. Buat network interface card Elastic RDMA.

          Untuk informasi selengkapnya, lihat CreateNetworkInterface.

          Deskripsi parameter utama

          Parameter

          Deskripsi

          RegionId

          ID wilayah tempat ENI akan dibuat.

          VSwitchId

          ID vSwitch dalam VPC. Alamat IP pribadi ENI dipilih dari alamat IP yang tersedia dalam Blok CIDR vSwitch tersebut.

          SecurityGroupId

          ID grup keamanan tempat ENI akan ditambahkan. Grup keamanan dan ENI harus berada dalam VPC yang sama.

          NetworkInterfaceTrafficMode

          Mode komunikasi ENI. Nilai yang valid:

          • Standard: menggunakan mode komunikasi TCP.

          • HighPerformance: mengaktifkan ERI dan menggunakan mode komunikasi RDMA.

          Pada langkah ini, pilih HighPerformance.

          Setelah panggilan berhasil, catat ID ENI (nilai kembali dari NetworkInterfaceId) dari data yang dikembalikan.

        2. Sambungkan ENI eRDMA.

          Untuk informasi selengkapnya, lihat AttachNetworkInterface.

          Deskripsi parameter utama

          Parameter

          Deskripsi

          RegionId

          ID wilayah tempat instans berada.

          NetworkInterfaceId

          ID ENI, yaitu network interface card Elastic RDMA yang telah dibuat.

          InstanceId

          ID instans.

          NetworkCardIndex

          Indeks kartu jaringan fisik tempat network interface card disambungkan.

          Saat membuat network interface card Elastic RDMA, Anda harus menentukan saluran secara manual (indeks kartu jaringan fisik) saat menyambungkannya ke instans. Anda dapat menentukan saluran 0 atau 1. Tetapkan nilai yang berbeda untuk kedua network interface card Elastic RDMA tersebut.

          Catatan

          Untuk mencapai bandwidth jaringan maksimum, sambungkan kedua network interface card RDMA ke saluran yang berbeda.

          Setelah panggilan berhasil (ENI disambungkan), Anda dapat melihat network interface card Elastic RDMA yang disambungkan pada tab ENIs instans yang dipercepat GPU.弹性网卡

      • Metode 2: Ubah properti ENI yang sudah ada

        Catatan

        Metode ini tidak mendukung penentuan parameter NetworkCardIndex (indeks kartu jaringan fisik tempat network interface card disambungkan). Jika Anda menyambungkan dua network interface card RDMA secara bersamaan, penggunaan metode ini untuk mengonfigurasi eRDMA pada ENI sekunder mungkin mencegah Anda mencapai bandwidth maksimum.

        Untuk informasi selengkapnya, lihat ModifyNetworkInterfaceAttribute.

        Deskripsi parameter utama

        Parameter

        Deskripsi

        RegionId

        ID wilayah tempat ENI sekunder berada.

        NetworkInterfaceId

        ID ENI sekunder.

        NetworkInterfaceTrafficMode

        Mode komunikasi ENI sekunder. Nilai yang valid:

        • Standard: menggunakan mode komunikasi TCP.

        • HighPerformance: mengaktifkan ERI dan menggunakan mode komunikasi RDMA.

        Pada langkah ini, pilih HighPerformance.

        Setelah panggilan berhasil (ENI disambungkan), Anda dapat melihat network interface card Elastic RDMA yang disambungkan pada tab ENIs instans yang dipercepat GPU.

        网卡类型.jpg

      Gunakan konsol

      1. Buat ENI sekunder.

        Untuk informasi selengkapnya, lihat Buat dan gunakan ENI. Saat membuat ENI sekunder dengan ERI, aktifkan sakelar eRDMA Interface. ERI berbagi pengaturan ENI sekunder, termasuk alamat IP ENI dan aturan grup keamanan yang diterapkan pada ENI tersebut.弹性网卡

      2. Sambungkan ENI sekunder ke instans yang dipercepat GPU.

        Untuk informasi selengkapnya, lihat Sambungkan ENI sekunder.

        Catatan

        Anda dapat menyambungkan maksimal dua ENI sekunder dengan ERI yang diaktifkan ke satu instans.

        Setelah menyambungkan ENI sekunder dengan ERI yang diaktifkan ke instans yang dipercepat GPU, Anda harus menghentikan instans sebelum dapat melepas ENI tersebut. Untuk informasi selengkapnya, lihat Hentikan instans (penghentian normal).

      3. Lakukan koneksi remote ke instans yang dipercepat GPU.

        Untuk informasi selengkapnya, lihat Hubungkan ke instans Linux menggunakan Workbench.

      4. Jalankan perintah ifconfig untuk memeriksa apakah ENI sekunder yang baru disambungkan ada.

        Jika ENI sekunder yang baru disambungkan tidak ditampilkan, konfigurasikan secara manual network interface card tersebut. Untuk informasi selengkapnya, lihat Konfigurasi ENI sekunder. Jika sudah muncul, lewati langkah ini.

        Catatan

        Beberapa citra mungkin tidak mendeteksi secara otomatis ENI sekunder yang baru disambungkan. Anda perlu mengonfigurasi ENI sekunder pada instans tersebut.

  4. (Opsional) Instal tumpukan perangkat lunak Elastic RDMA Interface (ERI) pada instans.

    Jika Anda tidak memilih opsi Auto-install eRDMA Software Stack saat memilih citra publik, instal tumpukan perangkat lunak eRDMA menggunakan skrip atau instalasi manual sesuai kebutuhan agar dapat memulai dan menggunakan fitur ERI.

    • Instal menggunakan skrip

      Setelah instans yang dipercepat GPU dibuat, Anda dapat menggunakan skrip untuk menginstal perangkat lunak seperti tumpukan perangkat lunak eRDMA, driver GPU, CUDA, dan cuDNN secara terpisah. Skrip berikut adalah contohnya.

      #!/bin/sh
      
      #Tentukan versi yang akan diinstal
      DRIVER_VERSION="570.133.20"
      CUDA_VERSION="12.8.1"
      CUDNN_VERSION="9.8.0.87"
      IS_INSTALL_eRDMA="TRUE"
      IS_INSTALL_RDMA="FALSE"
      INSTALL_DIR="/root/auto_install"
      
      #Gunakan file .run untuk menginstal driver dan CUDA
      auto_install_script="auto_install_v4.0.sh"
      
      script_download_url=$(curl http://100.100.100.200/latest/meta-data/source-address | head -1)"/opsx/ecs/linux/binary/script/${auto_install_script}"
      echo $script_download_url
      
      rm -rf $INSTALL_DIR
      mkdir -p $INSTALL_DIR
      cd $INSTALL_DIR && wget -t 10 --timeout=10 $script_download_url && bash ${INSTALL_DIR}/${auto_install_script} $DRIVER_VERSION $CUDA_VERSION $CUDNN_VERSION $IS_INSTALL_RDMA $IS_INSTALL_eRDMA
    • Instalasi manual

      Setelah membuat instans yang dipercepat GPU, Anda dapat menginstal driver OFED, eRDMA, dan GPU secara manual serta memuat komponen layanan nv_peer_mem sebagai berikut.

      1. Lakukan koneksi remote ke instans yang dipercepat GPU.

        Untuk informasi selengkapnya, lihat Hubungkan ke instans Linux menggunakan Workbench.

      2. Instal driver OFED.

        1. Jalankan perintah berikut untuk menginstal dependensi.

          Alibaba Cloud Linux 3

          yum install rpm-build flex iptables-devel systemd-devel gdb-headless elfutils-devel python3-Cython bison numactl-devel libmnl-devel libnl3-devel libdb-devel libselinux-devel perl-generators elfutils-libelf-devel kernel-rpm-macros valgrind-devel cmake lsof -y

          CentOS 8.5/8.4/7.9

          • CentOS 8.5/8.4

            wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/centos8/python3-Cython-0.29.32-3.16.x86_64.rpm
            yum install python3-Cython-0.29.32-3.16.x86_64.rpm -y
            yum install kernel-rpm-macros perl-generators libmnl-devel valgrind-devel rpm-build systemd-devel libdb-devel iptables-devel lsof elfutils-devel bison libnl3-devel libselinux-devel flex cmake numactl-devel -y
          • CentOS 7.9

            sudo yum install  python-devel python3-Cython kernel-rpm-macros perl-generators libmnl-devel valgrind-devel rpm-build systemd-devel libdb-devel iptables-devel lsof elfutils-devel bison libnl3-devel libselinux-devel flex cmake numactl-devel -y

          Ubuntu 24.04/22.04/20.04/18.04

          • Ubuntu 24.04

            sudo apt-get update -y
            sudo apt-get install -y pkg-config
          • Ubuntu 22.04

            sudo apt-get update -y
            sudo apt-get install -y pkg-config
          • Ubuntu 20.04

            sudo apt-get update -y
            sudo apt-get install -y pkg-config
          • Ubuntu 18.04

            sudo apt-get update
            sudo apt-get install -y pkg-config
            sudo apt install -y make dh-python libdb-dev libselinux1-dev flex dpatch swig graphviz chrpath quilt python3-distutils bison libmnl-dev libelf-dev gcc sudo python3
        2. Jalankan perintah berikut untuk mengunduh file konfigurasi paket OFED.

          Alibaba Cloud Linux 3

          sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-5.4-3.5.8.0.tgz
          sudo tar -xvf MLNX_OFED_SRC-5.4-3.5.8.0.tgz && cd MLNX_OFED_SRC-5.4-3.5.8.0/
          sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/alibaba_cloud3/3/ofed_alibaba_cloud3.conf
          sudo rm -rf SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.src.rpm
          sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm  -O SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm

          CentOS 8.5/8.4/7.9

          • CentOS 8.5/8.4

            cd /root
            wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-5.4-3.5.8.0.tgz
            tar -xvf MLNX_OFED_SRC-5.4-3.5.8.0.tgz && cd MLNX_OFED_SRC-5.4-3.5.8.0/
            wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/alibaba_cloud3/3/ofed_alibaba_cloud3.conf
            rm -rf SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.src.rpm
            wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm  -O SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm
          • CentOS 7.9

            sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-5.4-3.5.8.0.tgz
            sudo tar -xvf MLNX_OFED_SRC-5.4-3.5.8.0.tgz && cd MLNX_OFED_SRC-5.4-3.5.8.0/
            sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/alibaba_cloud3/3/ofed_alibaba_cloud3.conf
            sudo rm -rf SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.src.rpm
            sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm  -O SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm

          Ubuntu 24.04/22.04/20.04/18.04

          • Ubuntu 24.04/22.04/20.04

            sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/MLNX_OFED_SRC-debian-24.10-3.2.5.0.tgz
            sudo tar -xvf MLNX_OFED_SRC-debian-24.10-3.2.5.0.tgz && cd MLNX_OFED_SRC-24.10-3.2.5.0 && curl -O http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/ofed_debian.conf
            sudo rm -rf SOURCES/mlnx-ofed-kernel_24.10.OFED.24.10.3.2.5.1.orig.tar.gz
            wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/mlnx-ofed-kernel_24.10.egs.1.OFED.24.10.3.2.5.1.orig.tar.gz -O SOURCES/mlnx-ofed-kernel_24.10.egs.1.OFED.24.10.3.2.5.1.orig.tar.gz
          • Ubuntu 18.04

            sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-debian-5.4-3.6.8.1.tgz
            sudo tar -xvf MLNX_OFED_SRC-debian-5.4-3.6.8.1.tgz && cd MLNX_OFED_SRC-5.4-3.6.8.1 && curl -O http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/ofed_debian.conf
            sudo rm -rf SOURCES/mlnx-ofed-kernel_5.4.orig.tar.gz
            sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/mlnx-ofed-kernel_5.4.egs.orig.tar.gz -O SOURCES/mlnx-ofed-kernel_5.4.egs.orig.tar.gz
        3. Jalankan perintah yang sesuai dengan sistem operasi Anda untuk menginstal driver OFED.

          Alibaba Cloud Linux 3

          sudo ./install.pl --config ./ofed_alibaba_cloud3.conf --distro RHEL8
          sudo dracut -f

          CentOS 8.5/8.4/7.9

          • CentOS 8.5/8.4

            ./install.pl --config ./ofed_alibaba_cloud3.conf --distro RHEL8 
          • CentOS 7.9

            sudo ./install.pl --config ./ofed_alibaba_cloud3.conf --distro RHEL7 

          Ubuntu 24.04/22.04/20.04/18.04

          Ganti ${VERSION_ID} dengan versi sistem Ubuntu Anda, misalnya 24.04.

          sudo curl -O http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/ofed_debian.conf
          sudo ./install.pl --config ./ofed_debian.conf --without-dkms --build-only --kernel-only 
          sudo /usr/bin/dpkg -i --force-confmiss DEBS/ubuntu`lsb_release -s -r`/x86_64/*.deb
          update-initramfs -u
        4. Jalankan perintah berikut untuk memeriksa apakah direktori /usr/src/ofa_kernel/`uname -r` ada.

          • Jika direktori tersebut ada, lanjutkan ke langkah berikutnya.

            ls /usr/src/ofa_kernel/`uname -r`
          • Jika direktori tersebut tidak ada, jalankan perintah berikut untuk membuat tautan simbolik, lalu lanjutkan ke langkah berikutnya.

            sudo ln -s /usr/src/ofa_kernel/default /usr/src/ofa_kernel/`uname -r`
        5. Restart instans.

          Setelah driver OFED diinstal, Anda harus merestart instans agar modul kernel baru berlaku. Untuk informasi selengkapnya, lihat Restart instans.

      3. Instal driver eRDMA.

        1. Unduh dan instal driver eRDMA.

          • Untuk Ubuntu 24.04, jalankan perintah berikut.

            rm -rf  /lib/modules/`uname -r`/updates/dkms/erdma.ko
            curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh && bash env_setup.sh --url "http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.4.3.tar.gz"
          • Untuk sistem operasi lain, jalankan perintah berikut.

            sudo wget http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh
            sudo bash env_setup.sh --egs
        2. Jalankan perintah berikut untuk menggunakan tool eadm guna memastikan driver eRDMA telah diinstal dengan benar.

          eadm ver

          Jika hasil yang dikembalikan mirip dengan contoh berikut, berarti driver telah diinstal dengan benar.driver

          Catatan

          Topik ini menggunakan contoh versi driver 0.2.35. Jika perintah tidak ditemukan atau gagal dijalankan, instal ulang driver eRDMA.

      4. Instal driver GPU.

        Untuk informasi selengkapnya, lihat Instal driver Tesla secara manual pada instans komputasi yang dioptimalkan dengan percepatan GPU (Linux).

      5. Muat komponen layanan nv_peer_mem.

        • (Direkomendasikan) Untuk versi driver GPU 470.xx.xx dan yang lebih baru

          Untuk mengaktifkan GPU Direct RDMA, Anda harus memuat komponen layanan nv_peer_mem. Gunakan driver GPU versi 470.xx.xx atau yang lebih baru karena NVIDIA telah memasang komponen layanan ini secara default pada versi tersebut. Anda dapat langsung memuat modul nvidia_peermem dengan langkah-langkah berikut.

          sudo modprobe nvidia_peermem
          # Anda dapat menjalankan lsmod|grep nvidia untuk memeriksa apakah nvidia_peermem telah dimuat.
          Catatan

          Jika instans direstart, Anda harus memuat ulang modul nvidia_peermem.

        • Untuk versi driver GPU sebelum 470.xx.xx

          Anda harus mengunduh dan menginstal komponen layanan yang sesuai secara manual. Metode unduh dan instalasi kompilasi adalah sebagai berikut.

          sudo git clone https://github.com/Mellanox/nv_peer_memory.git
          # Kompilasi dan instal nv_peer_mem.ko
          cd nv_peer_memory && make
          cp nv_peer_mem.ko /lib/modules/$(uname -r)/kernel/drivers/video
          depmod -a
          modprobe nv_peer_mem
          # Anda dapat menjalankan lsmod|grep nv_peer_mem untuk memeriksa.
          service nv_peer_mem start
  1. Verifikasi bandwidth.

    1. Lakukan koneksi remote ke instans yang dipercepat GPU.

      Untuk informasi selengkapnya, lihat Hubungkan ke instans Linux menggunakan Workbench.

    2. Jalankan perintah berikut untuk memeriksa apakah kedua network interface card eRDMA berfungsi dengan benar.

      sudo ibv_devinfo

      Skrip instalasi driver eRDMA menginstal versi driver terbaru secara default. Untuk menginstal versi driver eRDMA yang lebih lama, ajukan tiket untuk mendapatkan bantuan.

      Topik ini menggunakan contoh versi driver eRDMA 0.2.37 atau yang lebih baru. Jika hasil yang dikembalikan mirip dengan contoh berikut, berarti kedua network interface card eRDMA berfungsi dengan benar. Jika state port kedua perangkat eRDMA adalah PORT_ACTIVE, berarti network interface card eRDMA berfungsi dengan benar.

      网卡.jpg

      Catatan

      Jika state port perangkat eRDMA adalah invalid state, berarti network interface card eRDMA tidak berfungsi dengan benar. Periksa apakah ENI sekunder dikonfigurasi dengan benar. Misalnya, jalankan perintah ifconfig untuk memastikan semua konfigurasi network interface card dan alamat IP tersedia.

    3. Jalankan perintah berikut untuk menginstal tool perftest.

      sudo yum install perftest -y
    4. Jalankan perintah berikut untuk menguji apakah bandwidth jaringan RDMA sesuai dengan ekspektasi perangkat keras.

      1. Pada server, jalankan perintah berikut untuk menunggu permintaan koneksi dari client.

        sudo ib_write_bw -d erdma_0 -F -q 16 --run_infinitely --report_gbits -p 18515
      2. Pada client, jalankan perintah berikut untuk mengirim permintaan koneksi dan paket.

        sudo ib_write_bw -d erdma_0 -F -q 16 --run_infinitely --report_gbits -p 18515 server_ip

        Dalam perintah tersebut, server_ip adalah alamat IP pribadi yang sesuai dengan ENI tempat eRDMA diaktifkan pada instans ECS sisi server. Untuk informasi selengkapnya tentang cara mendapatkan alamat IP, lihat Lihat alamat IP.

      Catatan

      Pengujian perftest di atas menggunakan satu network interface card untuk komunikasi. Jika layanan Anda memerlukan komunikasi melalui dua network interface card, Anda harus menjalankan dua proses perftest secara bersamaan. Gunakan parameter -d untuk menentukan network interface card eRDMA untuk masing-masing proses dan parameter -p untuk menentukan port komunikasi yang berbeda. Untuk informasi selengkapnya, lihat detail perftest.

      Hasil pengujian mencakup bandwidth rata-rata. Jika hasil yang dikembalikan mirip dengan contoh berikut, berarti komunikasi eRDMA berjalan normal.

      Rincian informasi yang dikembalikan

      ---------------------------------------------------------------------------------------
                          RDMA_Write BW Test
       Dual-port       : OFF          Device         : erdma_0
       Number of qps   : 16           Transport type : IB
       Connection type : RC           Using SRQ      : OFF
       PCIe relax order: ON
       ibv_wr* API     : OFF
       TX depth        : 128
       CQ Moderation   : 1
       Mtu             : 1024[B]
       Link type       : Ethernet
       GID index       : 1
       Max inline data : 0[B]
       rdma_cm QPs     : OFF
       Data ex. method : Ethernet
      ---------------------------------------------------------------------------------------
       local address: LID 0000 QPN 0x0002 PSN 0xa66b22 RKey 0x000100 VAddr 0x007f09922fd000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0003 PSN 0x3b9364 RKey 0x000100 VAddr 0x007f099230d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0004 PSN 0x6b1ade RKey 0x000100 VAddr 0x007f099231d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0005 PSN 0x8c83d5 RKey 0x000100 VAddr 0x007f099232d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0006 PSN 0x1335c4 RKey 0x000100 VAddr 0x007f099233d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0007 PSN 0xc451d6 RKey 0x000100 VAddr 0x007f099234d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0008 PSN 0x4edd7d RKey 0x000100 VAddr 0x007f099235d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0009 PSN 0x93d832 RKey 0x000100 VAddr 0x007f099236d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x000a PSN 0x16d2ee RKey 0x000100 VAddr 0x007f099237d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x000b PSN 0x6820d8 RKey 0x000100 VAddr 0x007f099238d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x000c PSN 0x9419c RKey 0x000100 VAddr 0x007f099239d000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x000d PSN 0xedd7ff RKey 0x000100 VAddr 0x007f09923ad000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x000e PSN 0x70ff7f RKey 0x000100 VAddr 0x007f09923bd000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x000f PSN 0x8ccc0 RKey 0x000100 VAddr 0x007f09923cd000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0010 PSN 0x33327e RKey 0x000100 VAddr 0x007f09923dd000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       local address: LID 0000 QPN 0x0011 PSN 0x9b836a RKey 0x000100 VAddr 0x007f09923ed000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:146
       remote address: LID 0000 QPN 0x0002 PSN 0x651666 RKey 0x000100 VAddr 0x007f5011099000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0003 PSN 0xf99758 RKey 0x000100 VAddr 0x007f50110a9000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0004 PSN 0xd001c2 RKey 0x000100 VAddr 0x007f50110b9000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0005 PSN 0x23aae9 RKey 0x000100 VAddr 0x007f50110c9000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0006 PSN 0xfad148 RKey 0x000100 VAddr 0x007f50110d9000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0007 PSN 0xca210a RKey 0x000100 VAddr 0x007f50110e9000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0008 PSN 0xe0cea1 RKey 0x000100 VAddr 0x007f50110f9000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0009 PSN 0x8ddc86 RKey 0x000100 VAddr 0x007f5011109000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x000a PSN 0xde22b2 RKey 0x000100 VAddr 0x007f5011119000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x000b PSN 0x9f2f4c RKey 0x000100 VAddr 0x007f5011129000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x000c PSN 0x66a100 RKey 0x000100 VAddr 0x007f5011139000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x000d PSN 0x934d93 RKey 0x000100 VAddr 0x007f5011149000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x000e PSN 0xf70783 RKey 0x000100 VAddr 0x007f5011159000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x000f PSN 0xfdce74 RKey 0x000100 VAddr 0x007f5011169000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0010 PSN 0xfca422 RKey 0x000100 VAddr 0x007f5011179000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
       remote address: LID 0000 QPN 0x0011 PSN 0xaa3e3e RKey 0x000100 VAddr 0x007f5011189000
       GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:01:149
      ---------------------------------------------------------------------------------------
       #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
       65536      910045           0.00               95.42              0.182003

Uji dan verifikasi

Untuk menguji dan memverifikasi kinerja instans yang dipercepat GPU dengan jaringan eRDMA dalam aplikasi dunia nyata, topik ini menggunakan nccl-tests sebagai contoh untuk menunjukkan cara menggunakan eRDMA dalam layanan Anda. Untuk informasi selengkapnya tentang nccl-tests, lihat nccl-tests.

  1. Jalankan perintah berikut untuk menginstal NCCL.

    Instal NCCL dengan mengunduh dan mengompilasi kode sumber sebagai berikut:

    Catatan

    Sebagai alternatif, unduh paket instalasi dari situs web resmi NVIDIA NCCL lalu instal.

    Pengujian ini menggunakan /usr/local/nccl sebagai jalur instalasi NCCL. Anda dapat menentukan jalur tujuan untuk instalasi NCCL sesuai kebutuhan.

    # build nccl
    cd /root
    git clone https://github.com/NVIDIA/nccl.git
    cd nccl/
    make -j src.lib PREFIX=/usr/local/nccl
    make install PREFIX=/usr/local/nccl
  2. Jalankan perintah berikut untuk memeriksa apakah nccl dan pustaka libnccl.so telah diinstal.

    # Periksa nccl
    ls /usr/local/nccl
    # Periksa pustaka libnccl.so
    ls /usr/local/nccl/lib
  3. Jalankan perintah berikut untuk menginstal OpenMPI dan kompilator.

    wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.3.tar.gz
    tar -xzf openmpi-4.1.3.tar.gz
    cd openmpi-4.1.3
    ./configure --prefix=/usr/local/openmpi
    make -j && make install
  4. Jalankan perintah berikut untuk menetapkan variabel lingkungan.

    NCCL_HOME=/usr/local/nccl
    CUDA_HOME=/usr/local/cuda
    MPI_HOME=/usr/local/openmpi
    
    export LD_LIBRARY_PATH=${NCCL_HOME}/lib:${CUDA_HOME}/lib64:${MPI_HOME}/lib:$LD_LIBRARY_PATH
    export PATH=${CUDA_HOME}/bin:${MPI_HOME}/bin:$PATH

    Dalam perintah di atas, NCCL_HOME mengarah ke jalur instalasi NCCL (/usr/local/nccl), CUDA_HOME mengarah ke jalur instalasi CUDA (/usr/local/cuda), dan MPI_HOME mengarah ke jalur instalasi OpenMPI (/usr/local/openmpi). Ganti jalur tersebut dengan jalur instalasi aktual Anda.

    Setelah mengedit perintah, buka file ~/.bashrc pada instans, tetapkan PATH dan LD_LIBRARY_PATH, lalu jalankan perintah berikut agar pengaturan variabel lingkungan berlaku.

    source ~/.bashrc
  5. Jalankan perintah berikut untuk mengunduh dan mengompilasi kode uji.

    git clone https://github.com/NVIDIA/nccl-tests
    cd nccl-tests/
    make MPI=1 CUDA_HOME=/usr/local/cuda MPI_HOME=/usr/local/openmpi
  6. Jalankan perintah berikut untuk menetapkan kepercayaan timbal balik antar instans melalui SSH.

    Buat kunci publik pada host1 dan salin ke host2 untuk menetapkan kepercayaan timbal balik antar instans melalui SSH.

    #Jalankan di host1
    ssh-keygen
    ssh-copy-id -i ~/.ssh/id_rsa.pub ${host2}
    
    ssh root@{host2}   # Jalankan di host1 untuk menguji apakah Anda dapat terhubung ke host2 tanpa password. Jika ya, kepercayaan timbal balik melalui SSH telah ditetapkan antar instans.
  7. Jalankan perintah berikut untuk menguji kinerja NCCL all_reduce.

    # Ganti host1 dan host2 dengan alamat IP yang sesuai
    mpirun --allow-run-as-root -np 16 -npernode 8 -H host1:8,host2:8 \
    --bind-to none \
    -mca btl_tcp_if_include eth0 \
    -x NCCL_SOCKET_IFNAME=eth0 \
    -x NCCL_GIN_TYPE=0 \
    -x NCCL_DEBUG=INFO \
    -x LD_LIBRARY_PATH \
    -x PATH \
    ./build/all_reduce_perf -b 4M -e 4M -f 2 -g 1 -t 1 -n 20

Referensi

  • Anda dapat mengonfigurasi eRDMA pada instans ECS tingkat enterprise untuk menggunakan jaringan RDMA berkinerja-tinggi yang menyediakan latensi ultra-rendah, throughput tinggi, dan elastisitas tinggi pada jaringan yang sudah ada tanpa mengubah topologi jaringan layanan Anda. Untuk informasi selengkapnya, lihat Aktifkan eRDMA pada instans tingkat enterprise.

  • Dalam skenario aplikasi yang memerlukan transmisi data skala besar dan komunikasi jaringan berkinerja-tinggi dalam kontainer, Anda dapat menggunakan fitur eRDMA dalam lingkungan kontainer (Docker). Hal ini memungkinkan aplikasi kontainer melewati kernel sistem operasi dan langsung mengakses perangkat eRDMA fisik pada host, sehingga memberikan transmisi data yang lebih cepat dan efisiensi komunikasi yang lebih tinggi. Untuk informasi selengkapnya, lihat Aktifkan eRDMA dalam kontainer (Docker).

  • Untuk memantau atau mendiagnosis eRDMA, Anda dapat memantau status berjalan eRDMA secara real-time. Untuk informasi selengkapnya, lihat Pantau dan diagnosa eRDMA.