草庐IT

infiniband

全部标签

c++ - 无法通过 infiniband 连接到服务器

我正在尝试用C++制作一个小型服务器,它可以简单地回显它通过无限带宽连接接收到的任何内容。我还在Ubuntu下使用套接字直接协议(protocol)和POSIX套接字。不幸的是,我在互联网上找到的唯一建议是关于我应该如何使用AF_INET_SDP域创建套接字,就像这里一样:#defineAF_INET_SDP27intsocketfd=socket(AF_INET_SDP,SOCK_STREAM,0);我设法绑定(bind)套接字,我调用了listen(...)函数,但服务器在尝试接受连接时挂起,而在客户端,我仅在尝试连接时收到超时。我还有一个用Java编写的较旧的类似应用程序(客户端

超低时延交换机,让Infiniband交换机不再是唯一的选择

近期与同事去某物理所技术交流,满机房的都是IB交换机,十分壮观。然而,客户这次叫我们来,目的却是想换掉他们,一台不留。客户无奈地说,IB交换机的时延方面,没得说,但是“想买到”太难了,由于IB交换机只支持IB通信协议,所以每当有扩容的需求时,也只能继续选择IB交换机,但IB交换机太难买到,尤其是去年全球供货市场都紧张的情况下,更是遥遥无期,今年市场供应好了很多,客户反应说,依旧要6个月起步,根本等不起!此外,一旦交换机出点什么问题,想找售后,更是根本找不到,相隔两个大陆,一个太平洋的距离让客户对“及时响应”也只能是想想罢了,价格贵还能忍,但是想用的时候没有供应,绝对不能忍!因此,经过长时间的被

InfiniBand 的前世今生

今年,以ChatGPT为代表的AI大模型强势崛起,而ChatGPT所使用的网络,正是InfiniBand,这也让InfiniBand大火了起来。那么,到底什么是InfiniBand呢?下面,我们就来带你深入了解InfiniBand。InfiniBand的发展历史InfiniBand(也称为“无限带宽”,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。随着人工智能的兴起,它也是GPU服务器的首选网络互连技术。我们来看下InfiniBand

大规模AI计算集群的网络环境需求,Infiniband还是超低时延以太网?

01ChatGPT背后的基础设施:AI计算集群早在2019年向OpenAI投资10亿美元的时候起,微软就同意为这家AI初创企业构建一台大型超级计算机。近期,微软在官博上连发两文,亲自解密了这台超级昂贵的超级计算机以及Azure的重磅升级。负责云计算和AI业务的微软副总裁ScottGuthrie表示,微软在这个项目上花费了数亿美元,将数以万计的NvidiaA100GPU和Azure云计算平台串联在一起。对于诸如ChatGPT这类AI深度学习模型,巨量的高性能算力无疑是重中之重。但是人们常常容易忽略网络传输在AI训练提速中的作用。尤其是大规模集群分布式训练的场景下,网络扮演了一个极为关键的角色:为

Ethernet 与 Infiniband的网络特性对比

一、两者定位以太网(Ethernet):应用最广泛,是最成熟的网络互联技术,也是整个互联网络大厦的基石,兼容性非常好,可实现不同的系统之间的互连互通IB(Infiniband):领域很专,作为高带宽,低时延,高可靠的网络互联技术,在HPC集群领域广泛应用,同时,也是GPU服务器首选的网络互联技术二、网络带宽以太网(Ethernet):以太网从千兆起步,目前已经发布了100G,200G,400G的以太网接口,传输速率的跨度非常大。据悉800G也将面世;IB(Infiniband):目前市场主流的InfiniBand产品为Mellanox生产的HDR,可以为网络提供端到端高达200Gbps的带宽,

linux - infiniband rdma 传输带宽差

在我的应用程序中,我使用无限带宽基础设施将数据流从一台服务器发送到另一台服务器。我习惯于通过infiniband轻松开发ip,因为我更熟悉套接字编程。到目前为止,性能(最大带宽)对我来说已经足够好了(我知道我没有获得可实现的最大带宽),现在我需要从无限带宽连接中获得更多带宽。ib_write_bw声称我的最大可实现带宽约为1500MB/s(我没有获得3000MB/s,因为我的卡安装在PCI2.08x中)。到目前为止一切顺利。我使用ibverbs和rdma对我的通信channel进行了编码,但我获得的带宽远远低于我可以获得的带宽,我什至获得的带宽比使用套接字要少一些,但至少我的应用程序不

linux - infiniband rdma 传输带宽差

在我的应用程序中,我使用无限带宽基础设施将数据流从一台服务器发送到另一台服务器。我习惯于通过infiniband轻松开发ip,因为我更熟悉套接字编程。到目前为止,性能(最大带宽)对我来说已经足够好了(我知道我没有获得可实现的最大带宽),现在我需要从无限带宽连接中获得更多带宽。ib_write_bw声称我的最大可实现带宽约为1500MB/s(我没有获得3000MB/s,因为我的卡安装在PCI2.08x中)。到目前为止一切顺利。我使用ibverbs和rdma对我的通信channel进行了编码,但我获得的带宽远远低于我可以获得的带宽,我什至获得的带宽比使用套接字要少一些,但至少我的应用程序不

c++ - Infiniband 寻址 - 无 IBoIP 的主机名到 IB 地址

我刚刚开始熟悉infiniband,我想了解您可以用来寻址infiniband节点的方法。基于代码的示例来自:RDMAreadandwritewithIBverbs我可以使用IPoIB通过IP或主机名寻址单个节点。另一种方法是直接使用端口GUID地址。但看起来您必须查找它们并且更类似于以太网mac寻址。然后是一个叫做LID地址的东西,一个由结构管理器分配的16位本地地址。我如何在运行时使用和确定LID地址?例如,我运行ibaddr并获得GIDfe80::1a:4bff:ff0c:34e5LIDstart0x6end0x6基本上,如果您不使用IPoIB,您如何将主机名转换为地址或类似名称

c++ - Infiniband 寻址 - 无 IBoIP 的主机名到 IB 地址

我刚刚开始熟悉infiniband,我想了解您可以用来寻址infiniband节点的方法。基于代码的示例来自:RDMAreadandwritewithIBverbs我可以使用IPoIB通过IP或主机名寻址单个节点。另一种方法是直接使用端口GUID地址。但看起来您必须查找它们并且更类似于以太网mac寻址。然后是一个叫做LID地址的东西,一个由结构管理器分配的16位本地地址。我如何在运行时使用和确定LID地址?例如,我运行ibaddr并获得GIDfe80::1a:4bff:ff0c:34e5LIDstart0x6end0x6基本上,如果您不使用IPoIB,您如何将主机名转换为地址或类似名称

linux - MPI_SEND 占用很大一部分虚拟内存

在大量内核上调试我的程序时,我遇到了非常奇怪的虚拟内存不足错误。我的调查导致代码和平,主人向每个奴隶发送小消息。然后我写了一个小程序,其中1个主机使用MPI_SEND发送10个整数,所有从机使用MPI_RECV接收它。比较MPI_SEND前后的/proc/self/status文件,内存大小的差异是巨大的!最有趣的事情(它使我的程序崩溃)是此内存不会在MPI_Send之后释放,并且仍然占用大量空间。有什么想法吗?SystemmemoryusagebeforeMPI_Send,rank:0Name:test_send_sizeState:R(running)Pid:7825Groups:
12