全部產品
Search
文件中心

Elastic Compute Service:sccgn系列執行個體使用說明及驗證

更新時間:Jan 25, 2025

為進一步最佳化神龍架構GPU伺服器的網路效能,阿里雲推出了GPU計算型Super Computing Cluster執行個體規格類型系列,即sccgn系列執行個體,該系列機型具備了超強的計算能力和網路通訊能力。本文為您介紹sccgn系列執行個體的使用說明及效能驗證。

使用說明

sccgn系列機型同時配備了GPU計算卡和Mellanox高效能網卡,具備超強的計算能力和網路通訊能力。適用於如深度學習、高效能運算等高強度計算和密集通訊兼備的應用情境。使用sccgn系列執行個體的幾點說明:

  • 如果您只需使用RDMA功能,在建立sccgn系列執行個體的選擇鏡像階段,需要選中安裝RDMA軟體棧

  • 如果您的業務需要使用GPUDirect RDMA功能,在建立sccgn系列執行個體的選擇鏡像階段,您需要選中安裝GPU驅動,來快速安裝所需軟體棧及工具包。

    說明

    GPUDirect RDMA是英偉達自Kepler層級GPU和CUDA 5.0以來引入的一種資料直通技術,其使用PCIe資料匯流排的標準功能,為GPU和第三方對等裝置(例如GPU之間、網路介面、視頻採集裝置、儲存適配器)之間提供直接的資料通路。更多資訊,請參見英偉達官方文檔

  • 如果您執行個體所安裝的網卡驅動為OFED開源版本(下載地址),您可以在安裝網卡驅動後,再安裝GPU驅動及CUDA。

    說明

    CUDA 11.4和R470之後版本已包含了nvidia_peermem模組,您無需單獨安裝nv_peer_mem模組。更多資訊,請參見nv_peer_memory

功能通過性驗證及頻寬驗證

功能通過性驗證

該驗證用於檢查sccgn系列執行個體的RDMA軟體棧安裝和配置是否正確。

執行以下命令,檢驗RDMA軟體棧的安裝情況。

說明

如果在檢查過程中遇到一些問題需要解決,請參見常見問題

rdma_qos_check -V

如果回顯類似如下內容,表示RDMA軟體棧已正確安裝。

===========================================================
*    rdma_qos_check
-----------------------------------------------------------
* ITEM          DETAIL                               RESULT
===========================================================
* link_up       eth1: yes                                ok
* mlnx_device   eth1: 1                                  ok
* drv_ver       eth1: 5.2-2.2.3                          ok
...
* pci           0000:c5:00.1                             ok
* pci           0000:e1:00.0                             ok
* pci           0000:e1:00.1                             ok
===========================================================

頻寬驗證

該驗證用於檢查RDMA網路頻寬是否符合對應硬體的預期要求。

  • 伺服器端命令

    ib_read_bw -a -q 20 --report_gbits -d mlx5_bond_0

    類似回顯資訊如下:

    ---------------------------------------------------------------------------------------
                        RDMA_Read BW Test
     Dual-port       : OFF        Device         : mlx5_bond_0
     Number of qps   : 20        Transport type : IB
     Connection type : RC        Using SRQ      : OFF
     PCIe relax order: ON
     ibv_wr* API     : ON
     CQ Moderation   : 100
     Mtu             : 1024[B]
     Link type       : Ethernet
     GID index       : 3
     Outstand reads  : 16
     rdma_cm QPs     : OFF
     Data ex. method : Ethernet
    ---------------------------------------------------------------------------------------
     local address: LID 0000 QPN 0x11ca PSN 0x6302b0 OUT 0x10 RKey 0x17fddc VAddr 0x007f88e1e5d000
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:200:00:46:14
     local address: LID 0000 QPN 0x11cb PSN 0x99aeda OUT 0x10 RKey 0x17fddc VAddr 0x007f88e265d000
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:200:00:46:14
     local address: LID 0000 QPN 0x11cc PSN 0xf0d01c OUT 0x10 RKey 0x17fddc VAddr 0x007f88e2e5d000
     ...
      remote address: LID 0000 QPN 0x11dd PSN 0x8efe92 OUT 0x10 RKey 0x17fddc VAddr 0x007f672004b000
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:200:00:45:14
    ---------------------------------------------------------------------------------------
     #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
     8388608    20000            165.65             165.63            0.002468
    ---------------------------------------------------------------------------------------
  • 用戶端命令

    ib_read_bw -a -q 20 --report_gbits -d mlx5_bond_0 #server_ip

    類似回顯資訊如下:

    ---------------------------------------------------------------------------------------
                        RDMA_Read BW Test
     Dual-port       : OFF        Device         : mlx5_bond_0
     Number of qps   : 20        Transport type : IB
     Connection type : RC        Using SRQ      : OFF
     PCIe relax order: ON
     ibv_wr* API     : ON
     TX depth        : 128
     CQ Moderation   : 100
     Mtu             : 1024[B]
     Link type       : Ethernet
     GID index       : 3
     Outstand reads  : 16
     rdma_cm QPs     : OFF
     Data ex. method : Ethernet
    ---------------------------------------------------------------------------------------
     local address: LID 0000 QPN 0x11ca PSN 0x787f05 OUT 0x10 RKey 0x17fddc VAddr 0x007f671684b000
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:200:00:45:14
     local address: LID 0000 QPN 0x11cb PSN 0x467042 OUT 0x10 RKey 0x17fddc VAddr 0x007f671704b000
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:200:00:45:14
     local address: LID 0000 QPN 0x11cc PSN 0xac262e OUT 0x10 RKey 0x17fddc VAddr 0x007f671784b000
     ...
      remote address: LID 0000 QPN 0x11dd PSN 0xeb1c3f OUT 0x10 RKey 0x17fddc VAddr 0x007f88eb65d000
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:200:00:46:14
    ---------------------------------------------------------------------------------------
     #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
    Conflicting CPU frequency values detected: 800.000000 != 3177.498000. CPU Frequency is not max.
     2          20000           0.058511            0.058226            3.639132
    Conflicting CPU frequency values detected: 799.996000 != 3384.422000. CPU Frequency is not max.
    ...
    Conflicting CPU frequency values detected: 800.000000 != 3166.731000. CPU Frequency is not max.
     4194304    20000            165.55             165.55            0.004934
    Conflicting CPU frequency values detected: 800.000000 != 2967.226000. CPU Frequency is not max.
     8388608    20000            165.65             165.63            0.002468
    ---------------------------------------------------------------------------------------

運行以上命令時,可通過rdma_monitor -s -t -G命令在ECS控制台觀察對應網卡各連接埠的實際頻寬。類似回顯資訊如下:

------
2022-2-18 09:48:59 CST
tx_rate: 81.874 (40.923/40.951)
rx_rate: 0.092 (0.055/0.037)
tx_pause: 0 (0/0)
rx_pause: 0 (0/0)
tx_pause_duration: 0 (0/0)
rx_pause_duration: 0 (0/0)
np_cnp_sent: 0
rp_cnp_handled: 4632
num_of_qp: 22
np_ecn_marked: 0
rp_cnp_ignored: 0
out_of_buffer: 0
out_of_seq: 0
packet_seq_err: 0
tx_rate_prio0: 0.000 (0.000/0.000)
rx_rate_prio0: 0.000 (0.000/0.000)
tcp_segs_retrans: 0
tcp_retrans_rate: 0
cpu_usage: 0.35%
free_mem: 1049633300 kB

------

nccl-tests用例

為測試和驗證配備RDMA網路的機型在應用中的實際表現,下文以nccl-tests用例為例,展示如何使用sccgn系列執行個體的RDMA功能加速您的應用。nccl-tests樣本如下:

說明

關於nccl-tests的更多資訊,請參見nccl-tests

#!/bin/sh
# 使用的作業系統為 Alibaba Cloud Linux 2
# 安裝openmpi及編譯器
yum install -y gcc-c++
wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/rdma/sccgn7ex/Alinux2/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


# 修改~/.bashrc
export PATH=/usr/local/cuda/bin:/usr/local/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/lib:/usr/local/openmpi/lib:$LD_LIBRARY_PATH

# 下載測試代碼並編譯
git clone https://github.com/NVIDIA/nccl-tests
cd nccl-tests/
make MPI=1 CUDA_HOME=/usr/local/cuda

# 將 host1, host2 替換為你對應的 IP 位址
mpirun --allow-run-as-root -np 16 -npernode 8 -H {host1}:{host2}  \
  --bind-to none \
  -mca btl_tcp_if_include bond0 \
  -x PATH \
  -x CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
  -x NCCL_SOCKET_IFNAME=bond0 \
  -x NCCL_IB_HCA=mlx5 \
  -x NCCL_IB_DISABLE=0 \
  -x NCCL_DEBUG=INFO \
  -x NCCL_NSOCKS_PERTHREAD=8 \
  -x NCCL_SOCKET_NTHREADS=8 \
  -x NCCL_IB_GID_INDEX=3 \
  -x NCCL_DEBUG_SUBSYS=NET,GRAPH \
  -x NCCL_IB_QPS_PER_CONNECTION=4 \
  ./build/all_reduce_perf -b 4M -e 4M -f 2 -g 1 -t 1 -n 20

常見問題

執行命令rdma_qos_check -V時,系統報錯:drv_fw_ver eth1: 5.2-2.2.3/22.29.1016 fail

問題原因:此報錯表示Mellanox網卡韌體未更新。

解決方案

  • 在Alibaba Cloud Linux 2或CentOS 8.3系統中,執行以下命令重新整理伺服器網卡韌體。

    /usr/share/nic-drivers-mellanox-rdma/sources/alifwmanager-22292302 --force --yes
  • 在Debian-based的系統中,下載韌體重新整理程式,然後執行以下命令來重新整理伺服器的網卡韌體。

    wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/rdma/sccgn7ex/Debian10u10/alifwmanager-22312902
    ./alifwmanager-22312902 --force --yes

執行命令rdma_qos_check -V時,系統報錯:* roce_ver : 0 fail

問題原因:此報錯表示缺少configfs、rdma_cm等核心模組。

解決方案:您可以執行modprobe mlx5_ib && modprobe configfs && modprobe rdma_cm命令載入對應核心模組。

在Debian系統中,執行命令systemctl start networking啟動網路服務時,系統提示找不到bond

問題原因:此報錯可能由於mlx5_ib核心模組未載入。

解決方案:您可以執行modprobe mlx5_ib載入此核心模組。

執行命令rdma_qos_check -V或命令ib_read_bw時,系統報錯:ERROR: RoCE tos isn't correct on mlx5_bond_3

您可以執行命令rdma_qos_init對網路進行初始化。

執行命令rdma_qos_check -V時,系統報錯:cm_tos mlx5_bond_1: 0 fail

在Alibaba Cloud Linux 2中,重啟伺服器後,執行驗證命令rdma_qos_check -V出現報錯時,您可以執行命令rdma_qos_init對網路進行初始化。

執行命令rdma_qos_check -V時,系統報錯:trust_mod eth1: pcp fail

在CentOS 8.3系統中,重啟伺服器後,執行驗證命令rdma_qos_check -V出現報錯時,您可以執行命令rdma_qos_init對網路進行初始化。

RDMA網路介面bond*出現擷取不到bond ip的情況

您可以執行命令ifdown bond*ifup bond*擷取到bond ip。

說明

請將*替換為對應網路介面的序號。