问题标签 [infiniband]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3177 浏览

linux - 如何获取 Infiniband RX/Tx 信息

是否有任何工具可以收集和显示 infiniband RX/TX 信息?

0 投票
1 回答
4498 浏览

cuda - GPUDirect RDMA 从 GPU 传输到远程主机

设想:

我有两台机器,一个客户端和一个服务器,用 Infiniband 连接。服务器机器有一个 NVIDIA Fermi GPU,但客户端机器没有 GPU。我有一个在 GPU 机器上运行的应用程序,它使用 GPU 进行一些计算。GPU 上的结果数据从不被服务器机器使用,而是直接发送到客户端机器而不进行任何处理。现在我正在做一个cudaMemcpy将数据从 GPU 获取到服务器的系统内存,然后通过套接字将其发送到客户端。我正在使用SDP为这种通信启用RDMA

问题:

在这种情况下,我是否可以利用 NVIDIA 的 GPUDirect 技术摆脱cudaMemcpy呼叫?我相信我已经正确安装了 GPUDirect 驱动程序,但我不知道如何在不先将其复制到主机的情况下启动数据传输。

我的猜测是不可能将 SDP 与 GPUDirect 结合使用,但是是否有其他方法可以启动从服务器机器的 GPU 到客户端机器的 RDMA 数据传输?

奖励:如果 somone 有一种简单的方法来测试我是否正确安装了 GPUDirect 依赖项,那也会很有帮助!

0 投票
2 回答
1959 浏览

linux - infiniband rdma 传输不良 bw

在我的应用程序中,我使用 infiniband 基础架构将数据流从服务器发送到另一个服务器。我习惯于通过 infiniband 轻松开发 ip,因为我更熟悉套接字编程。到目前为止,性能(最大 bw)对我来说已经足够好(我知道我没有获得可实现的最大带宽),现在我需要从那个 infiniband 连接中获得更多带宽。

ib_write_bw 声称我的最大可实现带宽约为 1500 MB/s(我没有获得 3000MB/s,因为我的卡安装在 PCI 2.0 8x 中)。

到目前为止,一切都很好。我使用 ibverbs 和 rdma 编码了我的通信通道,但我得到的带宽远远低于我能得到的带宽,我什至得到的带宽比使用套接字少一点,但至少我的应用程序不使用任何 CPU 能力:

ib_write_bw:1500 MB/s

套接字:700 MB/s <= 我系统的一个核心在此测试期间处于 100%

ibvers+rdma: 600 MB/s <= 在这个测试期间根本没有使用 CPU

似乎瓶颈就在这里:

此时等待完成的下一个代码是:

从我的 ibv_post_send 到 ibv_get_cq_event 返回事件的时间是 13.3 毫秒,当传输 8 MB 的块时达到大约 600 MB/s。

要指定更多(在伪代码中我在全局范围内执行的操作):

主动方:

被动侧:

有谁知道我做错了什么?或者我可以改进什么?我不受“这里没有发明”综合症的影响,所以我什至愿意扔掉我到目前为止所做的事情并采用其他东西。我只需要点对点的连续传输。

0 投票
1 回答
8276 浏览

linux - 端口状态始终关闭,无法打开 UMAD 端口

我在以下机器上新安装了 ofed-1.5-3:

SUSE Linux Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 1

我们的管理员在机器上安装了 CX354A 卡(MCX354A-FCBT)卡。$ lspci | grep -i mel 04:00.0 网络控制器:Mellanox Technologies Device 1003

(问题1:我不知道lspci的这个输出是否正确,我怀疑是这样,但不知道如何得到正确的输出。)

在我通过 ./mlnxofedinstall 脚本安装 ofed 包后:

ofed_info 的输出 | 头-1:MLNX_OFED_LINUX-1.5.3-3.1.0(OFED-1.5.3-3.1.0):

安装成功,openibd 确实加载了所有必需的模块/驱动程序。$ 服务 openibd 状态

已加载 HCA 驱动程序

配置的 IPoIB 设备:ib0 ib1

当前活跃的 IPoIB 设备:

加载了以下 OFED 模块:

rdma_ucm ib_srp rdma_cm ib_addr ib_ipoib mlx4_core mlx4_ib mlx4_en ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes

hca_self_test.ofed 的输出

---- 执行适配器设备自检 ---- 检测到的 CA 数量 .................. 1 PCI 设备检查 ...... ...... PASS Kernel Arch ...................... x86_64 主机驱动程序版本...... ................ MLNX_OFED_LINUX-1.5.3-3.1.0 (OFED-1.5.3-3.1.0):2.6.32.12-0.7-默认主机驱动程序RPM检查.. .................通过 CA #0 VPI 上的固件 .................. v2.10.700 CA #0 上的固件检查(VPI) .......... 不适用 原因:不需要固件版本 主机驱动程序初始化 ...... PASS 活动的 CA 端口数 ...... ...... 0 CA #0 (VPI) 上端口 #1 的端口状态...... DOWN (InfiniBand) CA #0 (VPI) 上端口 #2 的端口状态...... DOWN (InfiniBand ) CA #0 (VPI) 上的错误计数器检查......通过内核系统日志检查 .................... 在 CA #0 (VPI) 上通过节点 GUID ) ...... 00:02:c9:03:00:f9:ed:e0 ------------------ 完成 ----------

问题 2:现在当我尝试 ibstatus 或 ibv_devinfo 时,我看到端口状态为 PORT_DOWN。虽然我在文档中阅读的是它应该处于 INIT 状态。我的问题是如何将其设置为 INIT 状态。$ ibv_devinfo

hca_id: mlx4_0 传输: InfiniBand (0) fw_ver: 2.10.700 node_guid: 0002:c903:00f9:ede0 sys_image_guid: 0002:c903:00f9:ede3 vendor_id: 0x02c9 vendor_part_id: 4099 hw_ver: 0x0 board 2021 端口 MT_1090状态:PORT_DOWN (1) max_mtu: 2048 (4) active_mtu: 2048 (4) sm_lid: 0 port_lid: 0 port_lmc:0x00 链接层:IB

当我尝试以下命令时出现错误:

$ ibportstate -G 0x0002c90300f9ede0 1 查询/启用/禁用 ibwarn:[9318] mad_rpc_open_port:无法打开 UMAD 端口((null):0) ibportstate:iberror:失败:无法打开“(null)”端口“0”

问题 3:不明白为什么会出现此错误,或者如何摆脱它。任何帮助将不胜感激。

如果您需要更多信息,请告诉我。

谢谢

0 投票
5 回答
5889 浏览

tcpdump - RDMA中的数据包捕获?

Linux 中有没有像 tcpdump 这样的实用程序来捕获通过 RDMA 通道的流量?(Infiniband/RoCE/iWARP)

0 投票
2 回答
2160 浏览

linux - MPI_SEND 占用大量虚拟内存

在大量内核上调试我的程序时,我遇到了非常奇怪的insufficient virtual memory. 我的调查导致代码和平,主人向每个奴隶发送小消息。然后我写了一个小程序,其中 1 个 master 简单地发送 10 个整数,MPI_SEND所有的 slave 用MPI_RECV. /proc/self/status之前和之后的文件比较MPI_SEND显示,内存大小之间的差异是巨大的!最有趣的事情(这使我的程序崩溃)是该内存不会在之后释放MPI_Send并且仍然占用大量空间。

有任何想法吗?

0 投票
1 回答
777 浏览

mpi - 如何找出 InfiniBand 安装路径

我想自己编译 MVAPICH2,但不知道在哪里可以找到psm.h文件,在默认位置找不到。

任何人都知道我可以使用哪个命令来查找 InfiniBand?

0 投票
1 回答
3004 浏览

c++ - Infiniband 寻址 - 没有 IBoIP 的 IB 地址的主机名

我刚刚开始熟悉 infiniband,我想了解可用于解决 infiniband 节点的方法。

基于代码的示例来自:RDMA read and write with IB verbs I can address individual nodes by IP or hostname using IPoIB.

另一种方法是直接使用端口 GUID 地址。但看起来你必须查找这些,并且更类似于以太网 MAC 寻址。

然后是称为 LID 地址的东西,由结构管理器分配的 16 位本地地址。如何在运行时使用和确定 LID 地址?例如,我运行 ibaddr 并获取 GID fe80::1a:4bff:ff0c:34e5 LID start 0x6 end 0x6

基本上,如果您不使用 IPoIB,您如何将主机名转换为地址或类似名称?是否有主机文件或类似文件?

0 投票
2 回答
2551 浏览

linux - 如何编写 Hello World iWarp 应用程序?

我正在尝试编写一个小程序来演示通过 iWarp 进行远程 DMA。我加载了softiwarp Linux内核模块并编译了用户空间库。

我正在寻找说明设置连接的文档或示例代码,例如,向远程端发送一个简单的数据块(“Hello World!”)让我开始,但我能找到的只是 OpenFabrics 的培训网站网站,这根本没有帮助。

0 投票
1 回答
2097 浏览

c - 套接字直接协议错误:“协议不支持地址族”

我想我会在我们的 infiniband 硬件上试用 SDP。

但是,当我尝试添加 AF_INET_SDP 作为第一个参数时,socket()我收到以下错误:

最初我有:

但是在做了一些阅读之后,注意到一段时间后应用了一个补丁来将此值更改为 27。

当设置为 26 我得到错误:

有没有人设法让 SDP 在 Ubuntu 12.04 上运行?你做了什么让它启动和运行?

我已经安装了 libsdp1 和 libsdpa-dev

在 iperf 上使用 LD_PRELOAD 方法我也得到第一个错误:

因此我假设 27 是正确的域号。