日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

在GPU實例上配置eRDMA

更新時間:

GPU實例綁定彈性RDMA網卡(ERI)后,各GPU實例間在VPC網絡下可以實現RDMA直通加速互聯,相比傳統的RDMA,eRDMA可以提供更高效的數據傳輸服務,有效提升GPU實例之間的通信效率并縮短任務處理時間。本文介紹如何在GPU實例上配置eRDMA。

了解相關概念:彈性RDMA網卡(ERI)、彈性網卡(ENI)、彈性RDMA(eRDMA)

  • 彈性RDMA網卡(Elastic RDMA Interface,簡稱ERI)是一種可以綁定到ECS實例的虛擬網卡。更多信息,請參見功能簡介。

  • 彈性網卡(Elastic Network Interfaces,簡稱ENI)是專有網絡VPC中的虛擬網絡接口,用于連接云服務器與專有網絡。更多信息,請參見彈性網卡概述

  • 彈性RDMA(Elastic Remote Direct Memory Access,簡稱eRDMA)是阿里云提供的低延遲、大吞吐、高彈性的高性能RDMA網絡服務。更多信息,請參見eRDMA概述。

使用限制

限制項

說明

地域及可用區

支持選擇華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)及對應的可用區。

實例規格

支持ERI的實例規格如下:

  • ebmgn7ex

  • ebmgn7ix

鏡像

支持以下鏡像(任選一款):

  • CentOS 8.5/8.4/7.9

  • Ubuntu 20.04/18.04

  • Alibaba Cloud Linux 3

eRDMA設備數量

每個實例最大支持2個eRDMA網卡設備。

網絡限制

  • 網卡開啟彈性RDMA接口后,不支持分配IPv6地址。

  • 兩個實例之間通過ERI通信,通信鏈路中間不支持跨網元設備(例如負載均衡SLB等)。

操作步驟

支持eRDMA能力的實例使能eRDMA能力需滿足2個條件:安裝了eRDMA軟件站綁定了開啟彈性RDMA接口的網卡

創建新GPU實例時配置eRDMA

  1. 前往實例購買頁

  2. 創建支持ERI的GPU實例。

    創建過程中需注意以下配置項(其他參數,請參見自定義購買實例):

    • 實例規格:ebmgn7ex或ebmgn7ix。

    • 鏡像:選擇公共鏡像時,默認同時選中安裝GPU驅動安裝eRDMA軟件棧選項,則該實例創建完成后,系統會自動在實例內部安裝GPU驅動、CUDA、cuDNN以及eRDMA軟件棧。

      鏡像選擇.jpg

      使能彈性RDMA網卡(ERI)的注意事項

      • 公共鏡像頁簽下,如果選擇了支持安裝eRDMA軟件棧的鏡像操作系統及版本(即可選中安裝eRDMA軟件棧選項),但實際并未選中安裝eRDMA軟件棧選項,則實例創建后您可通過腳本安裝或手動安裝方式安裝eRDMA軟件棧,來使能eRDMA網卡。

      • 公共鏡像頁簽下,如果選擇了不支持安裝eRDMA軟件棧的鏡像操作系統及版本(即無法選中安裝eRDMA軟件棧選項),則實例創建后您無法通過腳本安裝方式或手動安裝方式來使能eRDMA網卡。

      • 公共鏡像頁簽下,如果未選中安裝eRDMA軟件棧選項,則您可以選擇更多的鏡像操作系統及版本。

    • 彈性網卡:創建GPU實例過程中,在帶寬和安全組配置向導頁面配置彈性網卡時,會默認創建一塊eRDMA主網卡和一塊eRDMA輔助網卡,并且主網卡和輔助網卡右側的彈性RDMA接口選項會默認被自動選中。

      彈性網卡.jpg

      說明
      • GPU實例開啟后不支持啟用或關閉某一彈性網卡的彈性RDMA能力。

      • 開啟了彈性RDMA能力后的2張網卡會自動綁定到不同的通道上,無需您單獨指定。

      • 主網卡不支持從GPU實例中解綁,只能隨GPU實例一起創建和釋放。

  3. 進入已創建的實例詳情頁,單擊彈性網卡頁簽,查看實例網卡類型。

    主網卡或輔助網卡的網卡類型如下所示,表示該實例已開啟了彈性RDMA接口的網卡。

    主輔助彈性網卡.jpg

為已有GPU實例配置eRDMA

  1. 登錄ECS管理控制臺

  2. 找到目標實例并進入實例詳情頁,選擇彈性網卡頁簽,查看實例是否已開啟了彈性RDMA接口的網卡。

    彈性網卡.jpg

    • 如果已開啟,請跳過以下步驟。

    • 如果未開啟,請按照以下步驟,為主網卡或者輔助彈性網卡配置eRDMA。

  3. 為主網卡或輔助彈性網卡配置eRDMA。

    說明
    • 創建GPU實例時,如果主網卡和輔助網卡均未選中彈性RDMA接口,則創建實例后,您可以再單獨創建并啟用2個eRDMA輔助彈性網卡。

    • 創建GPU實例時,如果主網卡或輔助網卡其中一個網卡未選中彈性RDMA接口,則創建實例后,您只能再單獨創建并啟用1個eRDMA輔助彈性網卡。

    • 為主網卡配置eRDMA

      通過OpenAPI方式為主網卡配置eRDMA。具體操作,請參見ModifyNetworkInterfaceAttribute - 修改彈性網卡屬性。

      主要配置項說明

      參數

      說明

      RegionId

      主網卡所在地域ID。

      NetworkInterfaceId

      主網卡的ID。

      NetworkInterfaceTrafficMode

      設置主網卡的通訊模式。取值范圍:

      • Standard:使用TCP通訊模式。

      • HighPerformance:開啟ERI(Elastic RDMA Interface)接口,使用RDMA通訊模式。

      本步驟選擇HighPerformance模式。

    • 為輔助彈性網卡配置eRDMA

      通過控制臺方式創建和掛載eRDMA網卡到GPU實例時,不支持綁定到不同通道,這會導致2張eRDMA網卡總帶寬減少一半,故建議您使用OpenAPI的方式掛載eRDMA網卡。

      (推薦)OpenAPI方式

      • 方式一:創建并綁定彈性RDMA網卡

        每個GPU實例最多支持2張eRDMA網卡,且需要分別通過NetworkCardIndex參數綁定到不同的通道上。

        1. 創建彈性RDMA網卡。

          具體操作,請參見CreateNetworkInterface。

          主要參數說明

          參數

          說明

          RegionId

          待創建彈性網卡所屬地域ID。

          VSwitchId

          指定VPC的交換機ID。彈性網卡的私網IP地址在交換機的IP地址段內的空閑地址中取值。

          SecurityGroupId

          加入一個安全組。安全組和彈性網卡必須在同一個專有網絡VPC中。

          NetworkInterfaceTrafficMode

          彈性網卡的通訊模式。取值范圍:

          • Standard:使用TCP通訊模式。

          • HighPerformance:開啟ERI(Elastic RDMA Interface)接口,使用RDMA通訊模式。

          本步驟選擇HighPerformance模式。

          調用成功后,請記錄返回數據中生成的彈性網卡ID(即NetworkInterfaceId對應的返回值)。

        2. 綁定eRDMA彈性網卡。

          具體操作,請參見AttachNetworkInterface。

          主要參數說明

          參數

          說明

          RegionId

          實例所在地域的ID。

          NetworkInterfaceId

          彈性網卡ID,即已創建的彈性RDMA網卡。

          InstanceId

          實例ID。

          NetworkCardIndex

          網卡指定的物理網卡索引。

          創建彈性RDMA網卡時,在綁定到某個實例時需要您手動指定通道(即物理網卡索引),當前通道可以指定為0或1(2張彈性RDMA指定不同的值)。

          說明

          為了獲取最大網絡帶寬,您需要指定2張RDMA網卡綁定到不同的通道。

          調用成功(即掛載成功)后,在GPU實例的彈性網卡頁簽下,您可以看到掛載的彈性RDMA網卡。彈性網卡

      • 方式二:修改已有彈性網卡屬性

        說明

        該方式不支持指定NetworkCardIndex參數(即網卡指定的物理網卡索引),如果同時綁定兩張RDMA網卡,采用該方式為輔助彈性網卡配置eRDMA可能會導致最大帶寬達不到要求。

        具體操作,請參見ModifyNetworkInterfaceAttribute - 修改彈性網卡屬性。

        主要配置項說明

        參數

        說明

        RegionId

        輔助網卡所在地域ID。

        NetworkInterfaceId

        輔助網卡的ID。

        NetworkInterfaceTrafficMode

        設置輔助網卡的通訊模式。取值范圍:

        • Standard:使用TCP通訊模式。

        • HighPerformance:開啟ERI(Elastic RDMA Interface)接口,使用RDMA通訊模式。

        本步驟選擇HighPerformance模式。

        調用成功(即掛載成功)后,在GPU實例的彈性網卡頁簽下,您可以看到掛載的彈性RDMA網卡。

        網卡類型.jpg

      控制臺方式

      1. 創建輔助彈性網卡。

        具體操作,請參見創建輔助彈性網卡。在創建并啟用ERI的輔助彈性網卡時,啟動增加彈性RDMA接口開關。ERI會共用該輔助彈性網卡的設置,包括彈性網卡的IP、應用于彈性網卡的安全組規則等。彈性網卡

      2. 將輔助彈性網卡綁定至GPU實例。

        具體操作,請參見綁定輔助彈性網卡。

        說明

        單臺實例最多綁定2個啟用ERI的輔助彈性網卡。

        將啟用ERI的輔助彈性網卡綁定至GPU實例后,如需解綁,必須先停止該實例。具體操作,請參見停止實例。

      3. 遠程連接GPU實例。

        具體操作,請參見通過密碼或密鑰認證登錄Linux實例

      4. 執行ifconfig命令,查看新綁定的服務彈性網卡是否存在。

        如未顯示新綁定的輔助彈性網卡,請手動配置該網卡,具體操作,請參見配置輔助彈性網卡。否則,請跳過該步驟。

        說明

        部分鏡像可能無法自動識別新綁定的輔助彈性網卡,您需要在實例內配置輔助彈性網卡。

  4. (可選)在實例內使能彈性RDMA網卡(ERI)。

    如果選擇公共鏡像時未選中安裝eRDMA軟件棧選項,根據實際情況選擇腳本方式或者手動方式安裝eRDMA軟件棧,來使能彈性RDMA網卡(ERI)。

    腳本安裝方式

    GPU實例創建完成后,您可以通過腳本安裝方式單獨安裝eRDMA軟件棧、GPU驅動、CUDA以及cuDNN等軟件,腳本示例如下所示。其中,關于DRIVER_VERSION、CUDA_VERSION、CUDNN_VERSION的版本選擇,請參見可選版本說明

    #!/bin/sh
    
    #Please input version to install
    DRIVER_VERSION="550.90.07"
    CUDA_VERSION="12.4.1"
    CUDNN_VERSION="9.2.0.82"
    IS_INSTALL_eRDMA="TRUE"
    IS_INSTALL_RDMA="FALSE"
    INSTALL_DIR="/root/auto_install"
    
    #using .run to install driver and 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

    手動安裝方式

    GPU實例創建完成后,您可以通過手動安裝方式單獨安裝OFED驅動、eRDMA驅動、GPU驅動以及加載nv_peer_mem服務組件,具體操作如下所示。

    1. 安裝OFED驅動。

      1. 運行以下命令,安裝依賴軟件包。

        根據不同鏡像,執行相應命令來安裝依賴。

        鏡像

        命令

        Centos 8.5

        sudo yum install -y dkms cmake gcc-c++ libdb-devel iptables-devel gdb-headless bison libmnl-devel elfutils-devel flex libselinux-devel kernel-rpm-macros rpm-build elfutils-libelf-devel

        Centos 8.4

        sudo dnf config-manager --enable epel              #使能epel
        sudo dnf config-manager --set-enabled powertools   #使能powertools
        
        sudo yum install -y dkms gcc-c++ cmake libarchive kernel-rpm-macros perl-generators python3-Cython
        sudo yum install -y libselinux-devel numactl-devel bison elfutils-devel systemd-devel libdb-devel flex rpm-build gdb-headless libmnl-devel valgrind-devel libnl3-devel iptables-devel

        Centos 7.9

        sudo yum install -y python-devel libmnl-devel valgrind-devel rpm-build systemd-devel libdb-devel iptables-devel lsof libselinux-devel flex cmake elfutils-devel bison libnl3-devel numactl-devel
        • Ubuntu 18.04

        • Ubuntu 20.04

        sudo apt-get update
        sudo apt-get install -y pkg-config
        sudo apt-get autoremove -y librbd1 fio librados2
        sudo apt install dkms libnl-3-dev libnl-route-3-dev cmake -y

        Alibaba Cloud Linux 3

        sudo yum install -y libmnl-devel bison systemd-devel iptables-devel elfutils-libelf-devel libselinux-devel libnl3-devel lsof libdb-devel numactl-devel elfutils-devel cmake flex
        sudo yum install -y valgrind-devel python3-Cython perl-generators rpm-build gdb-headless kernel-rpm-macros
      2. 執行以下命令,下載并安裝OFED驅動。

        根據不同鏡像,選擇執行相應命令來下載并安裝OFED驅動。

        鏡像

        命令

        Centos 8.5

        sudo wget https://content.mellanox.com/ofed/MLNX_OFED-5.4-3.5.8.0/MLNX_OFED_LINUX-5.4-3.5.8.0-rhel8.5-x86_64.tgz
        tar -zxf MLNX_OFED_LINUX-5.4-3.5.8.0-rhel8.5-x86_64.tgz
        cd MLNX_OFED_LINUX-5.4-3.5.8.0-rhel8.5-x86_64
        sudo ./mlnxofedinstall --kernel-only --without-fw-update -q

        Centos 8.4

        sudo wget https://content.mellanox.com/ofed/MLNX_OFED-5.4-3.5.8.0/MLNX_OFED_LINUX-5.4-3.5.8.0-rhel8.4-x86_64.tgz
        tar -zxf MLNX_OFED_LINUX-5.4-3.5.8.0-rhel8.4-x86_64.tgz
        cd MLNX_OFED_LINUX-5.4-3.5.8.0-rhel8.4-x86_64
        sudo ./mlnxofedinstall --kernel-only --without-fw-update -q

        Centos 7.9

        sudo wget https://content.mellanox.com/ofed/MLNX_OFED-5.4-3.5.8.0/MLNX_OFED_LINUX-5.4-3.5.8.0-rhel7.9-x86_64.tgz
        tar -zxf MLNX_OFED_LINUX-5.4-3.5.8.0-rhel7.9-x86_64.tgz
        cd MLNX_OFED_LINUX-5.4-3.5.8.0-rhel7.9-x86_64
        sudo ./mlnxofedinstall --kernel-only --without-fw-update -q

        Ubuntu 18.04

        sudo wget https://content.mellanox.com/ofed/MLNX_OFED-5.4-3.5.8.0/MLNX_OFED_LINUX-5.4-3.5.8.0-ubuntu18.04-x86_64.tgz
        tar -zxf MLNX_OFED_LINUX-5.4-3.5.8.0-ubuntu18.04-x86_64.tgz
        cd MLNX_OFED_LINUX-5.4-3.5.8.0-ubuntu18.04-x86_64
        sudo ./mlnxofedinstall --kernel-only --without-fw-update -q

        Ubuntu 20.04

        sudo wget https://content.mellanox.com/ofed/MLNX_OFED-5.4-3.5.8.0/MLNX_OFED_LINUX-5.4-3.5.8.0-ubuntu20.04-x86_64.tgz
        tar -zxf MLNX_OFED_LINUX-5.4-3.5.8.0-ubuntu20.04-x86_64.tgz
        cd MLNX_OFED_LINUX-5.4-3.5.8.0-ubuntu20.04-x86_64
        sudo ./mlnxofedinstall --kernel-only --without-fw-update -q

        Alibaba Cloud Linux 3(通過源碼編譯的方式安裝)

        sudo wget https://content.mellanox.com/ofed/MLNX_OFED-5.4-3.5.8.0/MLNX_OFED_SRC-5.4-3.5.8.0.tgz
        tar -zxf MLNX_OFED_SRC-5.4-3.5.8.0.tgz
        cd MLNX_OFED_SRC-5.4-3.5.8.0
        sudo ./install.pl --config ofed.conf --distro RHEL8

        其中,ofed.conf文件內容如下所示:

        libibverbs=y
        libibverbs-utils=y
        librdmacm=n
        librdmacm-utils=n
        mstflint=n
        ofed-docs=y
        ofed-scripts=y
        mlnx-tools=n
        mlnx-ethtool=n
        mlnx-iproute2=y
        mlnx-ofa_kernel=y
        mlnx-ofa_kernel-devel=y
        kernel-mft-mlnx=n
        mlnx-nvme=n
        core=y
        mlxfw=n
        mlx5=n
        ipoib=n
      3. 重啟實例。

        OFED驅動安裝完成后,您需要重啟實例,確保新的內核模塊生效。具體操作,請參見重啟實例。

    2. 安裝eRDMA驅動。

      1. 執行以下命令,下載并安裝eRDMA驅動。

        sudo wget http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh
        sudo bash env_setup.sh --egs
      2. 執行以下命令,通過eadm工具確認eRDMA驅動是否正常安裝。

        eadm ver

        返回結果如下所示,表示驅動已正常安裝。driver

        說明

        本示例以驅動版本為0.2.35為例。如果返回結果提示沒有本命令或者執行失敗,請您重新安裝eRDMA驅動。

    3. 安裝GPU驅動。

      具體操作,請參見在GPU計算型實例中手動安裝Tesla驅動(Linux)。

    4. 加載nv_peer_mem服務組件。

      • (推薦)GPU驅動為470.xx.xx及以上版本

        使能GPU Direct RDMA需要加載nv_peer_mem服務組件,建議使用470.xx.xx及以上版本的GPU驅動,因為NVIDIA在驅動版本為470.xx.xx及以上版本中已預裝了該服務組件。您可以直接按照以下步驟加載nvidia_peermem模塊。

        sudo modprobe nvidia_peermem
        # 可通過lsmod|grep nvidia檢查是否已成功加載nvidia_peermem
        說明

        如果機器重啟后,您需要重新加載nvidia_peermem模塊。

      • GPU驅動為470.xx.xx以下版本

        您需要手動下載并安裝相應服務組件,下載及編譯安裝方法如下所示。

        sudo git clone https://github.com/Mellanox/nv_peer_memory.git
        # 編譯并安裝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
        # 可通過lsmod|grep nv_peer_mem檢查
        service nv_peer_mem start
  1. 帶寬驗證。

    1. 遠程連接GPU實例。

      具體操作,請參見通過密碼或密鑰認證登錄Linux實例

    2. 執行以下命令,檢查2塊eRDMA網卡是否正常。

      sudo ibv_devinfo

      eRDMA驅動安裝腳本默認安裝最新版本的驅動,如果您需要安裝舊版本eRDMA驅動,請提交工單獲取幫助。

      本文以eRDMA驅動為0.2.37或以上版本為例,顯示結果如下所示,表示2塊eRDMA網卡正常存在。其中,2個eRDMA設備的端口state均為PORT_ACTIVE時,表示eRDMA網卡狀態正常。

      網卡.jpg

      說明

      如果eRDMA設備的端口stateinvalid state時,表示該eRDMA網卡狀態異常,建議先檢查輔助網卡是否配置正確。例如,通過執行ifconfig命令查看所有網卡配置是否存在,所有網卡IP地址是否存在。

    3. 執行以下命令,安裝perftest測試工具。

      sudo yum install perftest -y
    4. 執行以下命令,測試RDMA網絡帶寬是否符合對應硬件的預期表現。

      說明

      perftest默認使用第1張網卡通信,如果您業務需要啟用2張網卡進行通信,則需要同時啟動2個perftest進程,并通過-d參數為2個進程各指定1張eRDMA網卡、-p參數指定不同的通信端口。更多信息,請參見perftest詳情。

      1. 在Server端執行以下命令,等待Client端的連接請求。

        sudo ib_write_bw -d erdma_0 -F -q 16 --run_infinitely --report_gbits -p 18515
        sudo ib_write_bw -d erdma_1 -F -q 16 --run_infinitely --report_gbits -p 18516
      2. 在Client端執行以下命令,發送連接請求和數據包。

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

        其中,server_ip是Server端ECS實例上綁定eRDMA的彈性網卡所對應的私有IP地址。獲取IP地址的方法,請參見查看IP地址。

        測試結果包括平均帶寬,系統返回信息如下,表示eRDMA通信正常。

        回顯信息詳情

        ---------------------------------------------------------------------------------------
                            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

測試驗證

為測試和驗證配備eRDMA網絡的GPU實例在應用中的實際表現,本文以nccl-tests為例,展示如何在實際業務中使用eRDMA的具體操作。關于nccl-tests的更多信息,請參見nccl-tests。

  1. 執行以下命令,安裝nccl。

    通過下載并編譯源碼安裝nccl,源碼編譯的方式如下:

    說明

    您也可以在NVIDIA官網NVIDIA NCCL下載安裝包,然后進行安裝。

    # 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
    # 通過ls /usr/local/nccl/lib查看libnccl.so庫
  2. 執行以下命令,安裝OpenMPI及編譯器。

    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
  3. 執行以下命令,設置環境變量。

    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

    在實例內部進入~/.bashrc文件、設置PATH和LD_LIBRARY_PATH,其中,NCCL_HOME、CUDA_HOME、MPI_HOME需要根據實際情況填寫。編輯完成后,執行以下命令使環境變量設置生效。

    source ~/.bashrc
  4. 執行以下命令,下載并編譯測試代碼。

    git clone https://github.com/NVIDIA/nccl-tests
    cd nccl-tests/
    make MPI=1 CUDA_HOME=/usr/local/cuda MPI_HOME=/usr/local/openmpi
  5. 執行以下命令,建立實例之間的SSH互信。

    在host1生成公鑰后并拷貝到host2上來建立實例之間的SSH互信。

    #在host1執行
    ssh-keygen
    ssh-copy-id -i ~/.ssh/id_rsa.pub ${host2}
    
    ssh root@{host2}   # 在host1執行,測試一下是否可以無密碼連接host2。如果是,表示已建立實例之間的SSH互信。
  6. 執行如下命令,測試NCCL all_reduce效果。

    # 將host1, host2替換為您對應的IP地址
    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_DEBUG=INFO \
    -x LD_LIBRARY_PATH \
    -x PATH \
    ./build/all_reduce_perf -b 4M -e 4M -f 2 -g 1 -t 1 -n 20

相關文檔

  • 在企業級ECS實例上配置eRDMA,可實現無需更改業務組網,即可在原有網絡下體驗超低延遲、大吞吐、高彈性的高性能RDMA網絡服務。具體操作,請參見在企業級實例上配置eRDMA。

  • 容器中需要大規模數據傳輸和高性能網絡通信的應用場景中,將eRDMA功能引入容器(Docker)環境可實現容器應用程序繞過操作系統內核直接訪問主機的物理eRDMA設備,從而提供更快的數據傳輸和通信效率。具體操作,請參見在容器(Docker)中配置eRDMA。

  • 如需監測或診斷eRDMA,方便您對eRDMA的運行狀態進行實時監控。具體操作,請參見監測和診斷eRDMA。