一、为什么要用到在网计算呢?
在一个多层CLOS架构的网络中进行集合通信操作,传统方案和在网计算方案的比较如下图所示。在网计算时需要传输的数据量大大减少,提升了数据传输的效率,同时也卸载了端侧节点上CPU的计算量。
二、在网计算模式
为了加速集合通信操作,业内尝试将集合通信操作卸载到网络路径设备中执行,主要实现思路有两个,基于网卡的在网计算和基于交换机的在网计算。
基于网卡的集合操作卸载,处理器提交集合操作请求到网卡队列,由网卡接管集合操作,当操作完成后,网卡发送完成事件以通知处理器。相对于基于软件的集合操作,这种方法主要有两个方面的优点:一是提供了非阻塞的操作方式,处理器在提交操作请求后,可以继续处理其它计算任务,这种方式有利于计算和通信的重叠,从而减少程序整体执行时间;二是集合操作中的计算大多是累加,求和等操作,适合采用SIMD的处理模式,与网卡的处理架构非常匹配,相对于软件执行能够获得较好的加速效果。但基于网卡的集合操作加速卸载也有两方面不足:一是无法减少集合操作在网络中的流量;二是其性能和网络拓扑的选择关系密切。由此,基于交换机的MPI_AllReduce操作应运而生。
基于交换机的集合操作加速,是指在交换芯片中加入对集合操作的支持,将集合操作卸载到各级交换机上完成,这将带来以下两个方面的收益:一是集合操作的计算部分由交换机完成,处理器资源得到一定程度的释放;二是对于规约操作,每级交换机在完成计算后,其出端口流量相比入端口流量有所降低,有利于提高整体网络性能。
英伟达的Quantum InfiniBand交换机支持可扩展分层聚合和缩减协议(SHARP,Scalable Hierarchical Aggregation and Reduction Protocol)实现在网计算,另外在英伟达最新发布的产品中,在NVSwitch芯片内通过硬件加速器也可以支持SHARP。在新版NCCL中除了支持Ring和Tree(双二叉树)的算法,还支持针对SHARP的CollNet算法。
除英伟达,中国移动研究院发布了《在网计算(NACA)技术白皮书(2023)》,华为也提出了NetReduce架构的在网计算交换机实现。
来看一下SHARP技术实现,在多交换机组成的机群环境下,由聚合管理器(Aggregation Manager)在物理拓扑中构造一个逻辑的SHARP树,由SHARP树中的多个交换机并行分布式处理集合类通信操作。当主机需要进行全局通信,如AllReduce时,所有主机把通信数据提交到各自连接的交换机,第一级交换机收到数据后,会使用内置的引擎对数据进行计算和处理,然后把结果数据提交到SHARP树的上一级交换机,上一级交换机也使用自己的引擎对从若干个交换机收上来结果数据做聚合处理,并继续向SHARP树的上一级递交,到达SHARP树的根交换机后,根交换机做最后计算并把结果回发给所有的主机节点。通过SHARP方式,只需发送一次数据,接收最终结果,没有中间结果,从而可以有效的降低网络通信量,减少网络拥塞,减少跳数,提供更低的延迟,并提升机群系统的可扩展性。
使用SHARP在网计算和不使用的对比数据。
SHARP技术已发展至第四代,即SHARPv4。第一代SHARPv1出现在EDR时代,能够支持256字节的完整硬件卸载。第二代SHARPv2在HDR时代推出,支持更大的message size,如1GB至2GB,以满足AI训练时大量数据通信的需求,这对深度学习和神经网络等AI应用性能提升显著。到了SHARPv3,在交换机中集成了更多的引擎。每个ASIC中集成了数十个SHARP引擎,使得性能比上一代提升了32倍,由于每个ASIC中都有多个引擎,这使得SHARPv3非常适合多租户的公有云场景。在这种场景下,每个租户可以申请到自己独立的SHARP引擎,满足不同租户的数据请求,从而在多租户场景下很好地满足云用户的需求。SHARPv4的详细信息暂时没有看到。
三、硬件加速的在网计算实现方案
- 使用ASIC作为加速器:英伟达的IB交换机和NVSwitch都采用这种架构。
- 使用FPGA作为加速器:NetReduce架构将FPGA接在交换机内部(下面左图),而Panama架构将FPGA连接在主机和交换机之间(下面右图)。
- 另外,HiNA研究组在ACM国际超级计算会议ICS上提出了Roar架构,在标准路由器中添加一个处理单元(Roar’s Unit)作为加速器,需要聚合的数据被路由进处理单元,聚合结果发送回输入单元,再通过输出端口被发送到下一跳,该架构专门为RDMA网络定制。
- 中国移动的NACA白皮书规定了NACA的技术架构,但没有明确硬件上的技术实现模式。
P4可编程交换机也是其中的一个可能的实现思路,也有个别厂家在做相应的工作,但是P4可编程交换芯片供应问题、计算性能问题、灵活性、实际应用效果等方面还有待检验。