能否在数据传输过程中获得RDMA适配器(例如Mellanox NIC)进行字节顺序转换?具体来说,我们正在执行从大端到小端的RDMA传输,反之亦然。数据到达目标后,我们需要执行bswap32()或bswap64()进行字节序转换,这将减少处理器周期。我想知道我们是否可以从NIC获得免费的bswaps。
答案 0 :(得分:2)
交换字节序不是InfiniBand规范中定义的操作/属性。 但是,Mellanox设备(ConnectX-4及更高版本)确实提供了后备矢量计算原语,并且字节序交换是受支持的操作之一。 从本质上讲,这意味着人们可以在发送数据之前或接收数据之后对数据执行这种后备硬件交换。
就使用高级API而言,此向量计算功能仍处于早期阶段。您将能够在这些Linux内核提交中找到一些参考:
也可以通过Mellanox OFED上的“实验动词”获得部分支持-随时关注更新。