问题标签 [rdma]

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 回答
412 浏览

windows - Windows IND 和 Linux 动词实现是否兼容?

我一直在与一位同事讨论如何在 Windows 中使用 Network Direct 来提供 RDMA,而在 Linux 中我们使用动词 api 和 rdmacm 进行了工作实现。

说同事在无法使动词 one 工作后开发了他的 Network Direct 实现。我在 Linux 下做了 rdmacm 实现。我们都让他们谈论 linux=>linux 和 windows=>windows,但从未有时间测试 Linux=>windows 或 windows=>linux。在开发过程中,有一些迹象表明它可能会起作用,他们似乎开始交谈,但当然事情仍在开发中。

该项目被搁置了数月,它所构建的框架已经进行了重大的重新设计。我只能将 Windows 端的工作内容拉入新框架,我很难让它工作或看到它的任何部分从 Linux 连接。

我的理解是,在下层,他们都会说动词。但我现在不太确定同事说“记住这不是动词”之类的话,只是为了增加混乱。

所以问题是。使用 rdmacm 的应用程序能否与使用 Windows NetworkDirect 接口的应用程序建立连接,或者两者完全不同且不兼容?

0 投票
1 回答
66 浏览

linux - 多节点连接管理

我正在设计一个涉及使用 Infiniband (ibv_*) 的多节点通信的应用程序。保持节点之间连接的标准方法是什么?我认为所有节点对的 O(N^2) 连接是最简单的连接,但它有点愚蠢且不可扩展。

0 投票
2 回答
1027 浏览

infiniband - 如何在 libibverbs 中使用具有不同连接的 SRQ

连接到多个连接时如何使用 SRQ。假设有三个连接,即进程 0、1 和 2。为了创建 SRQ,我们需要调用

对于上述调用,我们需要提供一个保护域,据我所知,保护域是通过调用分配给每个连接的

其中 id 为每个频道创建。基本上,我的问题是如何将 SRQ 分配给属于具有不同保护域的不同连接 ID 的不同 QP,或者换句话说,不同的连接可以具有相同的保护域?

0 投票
1 回答
65 浏览

rdma - 为本地和远程使用相同的内存区域仅用于测试

线程/进程将在传递给 post_send() 的数据中包含 MR rkey,并使用 MR lkey 配置 sge 列表以从中传输。

我正在玩 infiniband HW,并想通过同一线程在本地发送和接收 RDMA 来检查使用 lkey 和 rkey 的 MR 是否合法。

0 投票
0 回答
659 浏览

c++ - RDMA 原子操作中的错误

我在执行 RDMA 原子操作(FETCH_ADD 和 CMP_AND_SWAP)时遇到问题。当我尝试提交原子 RDMA 请求时,ibv_post_send() 函数失败,Errno 设置为“无效参数”。RDMA READ/WRITE 没有这样的问题。

我注册内存地址如下:

我按如下方式构建队列对:

最后用原子操作码提交RDMA操作如下:

PS 因为我使用的是 librdmacm,所以 INIT 和 RTR 和 RTS 之间的队列对的转换是自动完成的,所以我不能手动设置qp_attr->qp_access_flagsqp_attr->max_rd_atomicqp_attr->max_dest_rd_atomic使用ibv_modify_qp(). 但是,我在 libibcm 中编写了一个带有原子操作的小代码,并在手动转换队列时设置了这些属性。尽管如此,还是没有运气。

0 投票
1 回答
589 浏览

windows - 适用于 Windows 的 RDMA CM

有谁知道在 Linux(http://linux.die.net/man/7/rdma_cm -- librdmacm)以及 ib 动词(libibverbs)上找到的 RDMA 通信管理器是否有 Windows 等效项?

在 Linux 发行版上安装 Infiniband 硬件驱动程序时,这两个库都可用......但是 Windows 呢?

我已经阅读了有关 Windows Network Direct 的信息,但由于我已经熟悉上述 Linux 库,因此我想(如果可能)在 Windows 上使用它们的等价物。

我已经在 Linux 节点之间建立了数据传输(RDMA 写入),但现在我必须将 RDMA 数据从 Windows 节点传输到 Linux 节点,但目前我不确定要遵循哪条路线......

如何确定 Windows Network Direct 是否与 IB 动词/RDMA CM 兼容?

我的印象是动词规范将在两个平台上实现......!

亲切的问候

0 投票
1 回答
1618 浏览

rdma - RDMA原子操作的实现

我听说 RDMA 读取和写入是这样实现的,当请求到来时,nic 找到物理页面,然后使用 DMA 将数据获取到 nic,然后到目标。

这对于读写来说很简单,但对于原子操作来说就很奇怪了。我的问题是 RDMA 原子操作是否以与读写相同的方式实现以及如何实现?更具体地说,cpu 的原子操作(如比较和交换)与 RDMA 的相应操作之间有什么关系?

0 投票
1 回答
445 浏览

infiniband - Soft-RoCE 的基准工具

我是 SoftRoCE 的新手,我已经在我的系统中安装了 OFED-1.5.2-rxe。当前使用内核版本 3.0.0+。

SoftRoCE是否有任何特定的基准测试工具。对于 SoftRocE,opensm 是强制性的吗?当我试图运行 rdma_bw

vvdn@vvdn:~$ sudo rdma_bw 192.168.1.1

10581: | port=18515 | ib_port=1 | size=65536 | tx_depth=100 | sl=0 | iters=1000 | duplex=0 | cma=0 | 10581:main: Local lid 0x0 detected. Is an SM running? vvdn@vvdn:~$

0 投票
1 回答
245 浏览

linux - 共享内存系统、MPI 库、原始 RDMA 或 ULP over RDMA 的选择?

我是高性能计算 (HPC) 方面的新手,但我将有一个 HPC 项目,所以我需要一些帮助来解决一些基本问题。

应用场景很简单:多台服务器通过InfiniBand(IB)网络连接,一台服务器为Master,另一台为slave。只有 master 读取/写入内存中的数据(数据大小范围从 1KB 到几百 MB)到 slave,而 slave 只是被动地将数据存储在内存中(并在正确的时间将内存中的数据转储到磁盘中)。所有计算都在主设备中执行,在写入数据之前或从从设备读取数据之后。系统的要求是低延迟(小数据区域,比如1KB-16KB)和高吞吐量(大数据区域,几百MB)。

所以,我的问题是

1. 哪种具体方式更适合我们?MPI、原始 IB/RDMA 库或基于 RDMA 的 ULP。

据我所知,现有的消息传递接口 (MPI) 库、原始 IB/RDMA 库(例如libverbs和RDMA 上的librdmacm用户级协议 (ULP))可能是可行的选择,但我不太确定它们的适用范围。

2.我应该对操作系统或IB网络进行一些调整以获得更好的性能吗?

微软有一篇论文 [ 1 ] 宣布

通过仔细调整和更改操作系统和 NIC 驱动器,我们将性能提高了八倍

就我而言,我会尽量避免这种性能调整。但是,如果调整是不可避免的,我会尽力而为。我们环境的 IB 网络是 Mellanox InfiniBand QDR 40Gb/s,我可以自由选择服务器的 Linux 操作系统。

如果您有任何想法,欢迎评论和回答!提前致谢!

[1] FaRM:快速远程内存

0 投票
1 回答
1532 浏览

python - python rdma“你好世界”

这个程序是我第一次尝试 Infiniband 编程。我正在使用这个库:

https://github.com/jgunthorpe/python-rdma

我可能做错了非常有趣的事情。我只是想向多播地址发送一系列字节“Hello, World”。

这是我得到的输出: