You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定RDMA通信的device/port/gid组合以运行ib_send_bw?

如何确定RDMA测试中使用的device/port/gid组合?

我有两台通过RDMA连接的主机(一台为SmartNIC,另一台为服务器)。若要在它们之间运行ib_send_bw -d <device> -i <port> -x <gid>命令,该如何确定应使用哪一组device/port/gid?以下是两台主机的show_gids输出示例:

主机A的show_gids输出

DEV PORT    INDEX   GID                 IPv4        VER DEV
--- ----    -----   ---                 ------------    --- ---
mlx5_0  1   0   fe80:0000:0000:0000:4ab0:2dff:fe8f:add0         v1  ens2f0np0
mlx5_0  1   1   fe80:0000:0000:0000:4ab0:2dff:fe8f:add0         v2  ens2f0np0
mlx5_0  1   2   0000:0000:0000:0000:0000:ffff:c0a8:0001 192.168.0.1     v1  ens2f0np0
mlx5_0  1   3   0000:0000:0000:0000:0000:ffff:c0a8:0001 192.168.0.1     v2  ens2f0np0
mlx5_1  1   0   fe80:0000:0000:0000:4ab0:2dff:fe8f:add1         v1  ens2f1np1
mlx5_1  1   1   fe80:0000:0000:0000:4ab0:2dff:fe8f:add1         v2  ens2f1np1
mlx5_1  1   2   0000:0000:0000:0000:0000:ffff:c0a8:0101 192.168.1.1     v1  ens2f1np1
mlx5_1  1   3   0000:0000:0000:0000:0000:ffff:c0a8:0101 192.168.1.1     v2  ens2f1np1
mlx5_2  1   0   fe80:0000:0000:0000:966d:aeff:fe9b:95e0         v1  ens4f0np0
mlx5_2  1   1   fe80:0000:0000:0000:966d:aeff:fe9b:95e0         v2  ens4f0np0
mlx5_3  1   0   fe80:0000:0000:0000:966d:aeff:fe9b:95e1         v1  ens4f1np1
mlx5_3  1   1   fe80:0000:0000:0000:966d:aeff:fe9b:95e1         v2  ens4f1np1
mlx5_4  1   0   fe80:0000:0000:0000:1270:fdff:fe86:5c7e         v1  ens7f0np0
mlx5_4  1   1   fe80:0000:0000:0000:1270:fdff:fe86:5c7e         v2  ens7f0np0
mlx5_5  1   0   fe80:0000:0000:0000:1270:fdff:fe86:5c7f         v1  ens7f1np1
mlx5_5  1   1   fe80:0000:0000:0000:1270:fdff:fe86:5c7f         v2  ens7f1np1
n_gids_found=16

主机B的show_gids输出

DEV     PORT    INDEX   GID                                     IPv4            VER     DEV
---     ----    -----   ---                                     ------------    ---     ---
mlx5_2  1       0       fe80:0000:0000:0000:0040:abff:febb:0745                 v2      enp3s0f0s0
mlx5_3  1       0       fe80:0000:0000:0000:0017:2eff:fef9:f1f6                 v2      enp3s0f1s0
n_gids_found=2

确定可用组合的方法

1. 锁定物理连接的网卡

先明确两台主机哪块物理网卡是通过RDMA线缆直接连接的——可以通过观察网卡物理位置、网口LED指示灯状态,或者用ip link命令对应网卡硬件信息,排除无关网卡。

2. 匹配可通信的GID条目

  • 优先选择带IPv4地址的GID:主机A中mlx5_0、mlx5_1的GID条目带有明确IPv4地址(如192.168.0.1),这类GID基于IPv4网络,与对端通信兼容性更好。
  • 链路本地GID适配:主机B只有fe80开头的链路本地GID,这种情况需确保两台主机对应网卡在同一二层网络,且选择**相同GID版本(VER列)**的条目——主机B均为v2,因此主机A需选VER为v2的条目。

3. 映射ib_send_bw参数

从show_gids输出直接提取参数:

  • -d <device>:对应输出的DEV列(如mlx5_0)
  • -i <port>:对应输出的PORT列(此处所有条目均为1,填1即可)
  • -x <gid>:对应输出的INDEX列(GID的索引序号,如0、3)

示例测试组合(假设主机A的mlx5_0与主机B的mlx5_2物理连通)

  • 主机A作为发送端:ib_send_bw -d mlx5_0 -i 1 -x 3
  • 主机B作为接收端:ib_send_bw -d mlx5_2 -i 1 -x 0 -R(-R参数指定为接收端)

验证连通性

若不确定组合是否正确,可先做基础验证:

  • 若网卡有IPv4地址,先用ping测试对端地址是否可达;
  • 用ibv_pingpong工具做RDMA连通性测试,确认链路正常后再运行ib_send_bw。

内容的提问来源于stack exchange,提问作者rafoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:33:20