Tesla Dojo AI超节点lossy网络传输层协议TTPoE

Telsa在2024年的Hot Chips上分享了TTPoE协议:Tesla Transport Protocol over Ethernet,专为其AI超级计算机DOJO制定的网络协议。TTPoE旨在取代特斯拉超级计算环境中的TCP(传输控制协议),提供微秒级延迟和简单的硬件卸载功能。 该协议运行在标准以太网交换机上,保持与现有网络基础设施的兼容性,同时优化AI工作负载的性能。

TTPoE的关键特性:新协议简化了传统TCP流程,以减少延迟并提高高性能计算环境中的效率。

要提出一种新的传输协议,首先我们看下现有方案的一些问题:

  • TCP/IP协议虽然功能丰富且通用,但其设计目标是通用性和可靠性,而不是极致的性能优化。导致其在AI互联场景,存在一些性能问题。如:
    • 1)时延高:TCP/IP协议在传输数据时需要进行各种确认和重传操作,这会引入额外的延迟。而许多AI应用需要极低的延迟才能实时响应。
    • 2)吞吐问题:AI应用(如深度学习模型训练和推理)通常涉及大规模的数据传输。TCP/IP的拥塞控制机制可能会限制吞吐量,而定制的协议可以更好地优化数据流。
    • 3)资源效率:TCP/IP协议栈较为复杂,处理开销较大。在需要高效利用计算和网络资源的AI应用中,简化的、自定义的协议可以减少不必要的开销。
  • RDMA网络:使用优先级流控(PFC, Priority Flow Control)来实现无损网络在RDMA(Remote Direct Memory Access)环境会带来如下挑战:
    • 头部阻塞(Head-of-Line Blocking, HOL):PFC会暂停特定优先级队列中的流量以防止丢包,但这可能会导致头部阻塞问题。具体来说,当一个优先级队列被暂停时,其他优先级较低的队列流量也可能被阻塞,从而影响整体网络性能。
    • 拥塞传播:在高负载情况下,PFC的暂停机制可能会导致拥塞传播。一个交换机端口的拥塞会逐渐传播到其他端口,最终导致整个网络出现性能瓶颈。这种拥塞传播现象在大规模网络中尤为显著
    • 配置复杂性:设置和调试PFC网络需要仔细规划和大量的配置工作。不同设备可能有不同的PFC实现方式,确保一致性和正确性需要大量的协调和测试。
    • 流量突发性管理:PFC在应对突发性流量时可能表现不佳。突发性流量容易导致短时间内的队列积压,引发PFC暂停,进而影响网络延迟和吞吐量。
    • 硬件依赖:实现无损网络需要支持PFC的硬件设备。并不是所有网络设备都支持PFC,特别是在异构网络环境中,这可能会限制设备选择。

为了缓解这些问题,业界也在探索其他技术和方法。例如:

  • ECN(Explicit Congestion Notification):通过标记而不是丢弃数据包来通知发送方减速,从而避免拥塞。
  • RoCEv2(RDMA over Converged Ethernet version 2):结合使用PFC和ECN来提高可靠性和性能。
  • 动态拥塞控制算法:如DCQCN(Data Center Quantized Congestion Notification),在高负载时动态调整流控策略。

尽管PFC有其挑战,但在精心设计和配置的环境中,它仍然是实现无损网络的一种有效手段,特别是在需要高性能和低延迟的RDMA应用中。

image-20240829222118389

**那有没有更好的方案呢?**要回答这个问题,我们首先从第一性原理出发,梳理下AI互联需要什么要的网络?理想的Fabric网络主要有如下三点:

  • 低时延
  • 高带宽
  • 实现简单

低时延,高带宽通过硬化实现,实现简单要求更多使用已有基础设施,Tesla 选择沿用TCP/IP以太网络,在其上面做减法:

  • 基于以太的点对点的传输层协议,只使用2层网络,完全硬化实现,达到低时延、高吞吐
  • 基于以太,硬件使用第三方,简化实现
  • Lossy网络,更容易扩展,沿用现有拥塞管理、成本更低

网络模型

下面是Tesla网络模型与现有TCP/IP协议层的对比:

image-20240829232509948

可以看到,特斯拉替换了TCP层,IP层可选。为使其可以在硬件上实现:

  • 连接建立和终止流程被简化,减少了所需的传输次数并消除了等待状态。 该协议设计为完全由硬件处理,这使其对软件透明,并且可能比标准TCP实现更快。

  • 拥塞控制被简化,使用固定大小的SRAM缓冲区,代替TCP的动态拥塞窗口,优化了超级计算机网络中的低延迟和低丢包环境。 硬件实现:特斯拉创建了一个定制硬件解决方案,以高效实现TTPoE。

  • 微秒级协议(如某些低延迟RDMA协议)中,2毫秒的暂停时间确实可能过长,去掉了暂停

  • 无虚拟内存、仅使用物理内存:简化硬件实现,加速性能

  • 现完全自动化的open/close,不依赖于软件的介入

状态机简化

其对TCP/IP的握手与挥手操作做了简化,通过消除TCP中的等待状态来减少延迟。在TCP中关闭连接涉及发送FIN包,等待该FIN包的确认,并返回对该确认的确认。在此之后,连接进入TIME_WAIT状态,要求实现等待一段时间,以便在新的连接重用端口之前,任何乱序的数据包都能安全地消耗掉。TTP删除了TIME_WAIT状态,并将关闭序列从三次传输改为两次。TTP连接可以通过发送关闭操作码并接收其确认来关闭。特斯拉的目标是微秒级延迟,因此即使是毫秒级别的TIME_WAIT时长也可能导致显著问题。状态机对比如下:

img

TTP 的握手状态转移与TCP的对比流程如下:

img

TCP以著名的三次握手(SYN,SYN-ACK,ACK)建立连接。TTP在关闭连接时也应用了类似的优化,将握手改为了两次。再次,使用较少的传输来建立连接可以降低延迟。这些简化的打开和关闭序列是在硬件中实现的,这也使得它对软件来说是透明的。

这意味着软件不必显式地创建连接,而是可以告诉硬件它想要向哪个目的地发送数据或接收数据。

拥塞控制

与TCP类似,Tesla使用数据包丢弃来进行拥塞控制。但由于TTP旨在在低延迟的基础网络上运行,因此Tesla能够对问题采取蛮力方法。传统的TCP实现维护一个滑动的拥塞窗口,用于限制可以发送多少未确认数据。你可以将这看作是网络中正在传输的流量量。如果数据包被及时确认,拥塞窗口会增加,增加带宽。如果数据包被丢弃并且在时间阈值内未收到确认,则拥塞窗口会迅速减少。这使得TCP能够优雅地处理各种不同的连接。

Tesla不打算在开放互联网的低质量链路上运行TTP,因此采用了一种蛮力方法来进行拥塞控制。拥塞窗口不会根据数据包丢失而调整大小。硬件在SRAM缓冲区中跟踪发送的数据,这定义了拥塞窗口的大小。当缓冲区填满时,发送会停止,数据包丢失将通过重新传输在SRAM缓冲区中保存的数据来处理。当来自另一端的相应确认到达时,数据将从SRAM缓冲区中释放,自然地推动滑动窗口向前移动。

传统的TCP拥塞控制算法如Reno在时间尺度上过长,对其Dojo超级计算机应用并不有效,从而证明了他们采用这种方法的合理性。

与TCP类似,TTP通过简单丢弃数据包来处理拥塞,消除了额外发送信用的需要,并降低了网络交换机的复杂性。对比其他低延迟网络(如Infiniband),其拥塞控制是在交换机级别处理,交换机控制信用系统避免拥塞来说,对交换机要求更低。

硬件设计

特斯拉在芯片和标准以太网硬件之间放置一个硬件块来处理他们的TTP协议。这个MAC硬件块是由一位CPU架构师设计的,引入了许多CPU设计特性。演讲者描述它的作用类似于一个共享缓存,其中一个仲裁器在考虑有序性风险时在请求之间进行选择。

img

当数据包被确认后,它们将按顺序“退役”,这类似于CPU从重新排序缓冲区按顺序退役指令的方案。其中最显著的资源是一个1 MB的传输SRAM缓冲区,它定义了如上所述的拥塞窗口。这个大小足以容忍大约80微秒的网络延迟而不会引起显著的带宽损失。根据Little定律的计算,给定1 MB的空中数据和80微秒的延迟,将得到97.65Gbps。这几乎足以饱和一个100Gbps的网络接口。

TTP MAC是在特斯拉所谓的“Dumb-NIC”上实现的。它被称为“愚蠢”,因为它尽可能便宜和简单。特斯拉希望部署大量主机节点来为他们的Dojo超级计算机提供数据,拥有廉价的网络卡有助于以一种成本有效的方式实现这一目标。

Mojo卡包含TPP MAC,一个具有PCIe Gen 3 x16接口的主机芯片和8 GB的DDR4内存。 这些卡安装在远程主机上,使特斯拉能够通过根据需要增加更多主机来扩展带宽。 使用略旧的技术如PCIe Gen 3和DDR4有助于控制成本,同时满足性能需求。 对超级计算和网络的影响:特斯拉的方法提供了高性能计算网络优化的见解。

Dojo的100Gbps网卡是Mojo,它以低于20W的功耗运行,并且具有8GB的DDR4内存以及Dojo的DMA引擎。我们在Tesla Dojo Custom AI Supercomputer at HC34中介绍过这个。

img

这些Mojo卡被安装在远程主机机器中。当工程师需要更多带宽来向Dojo超级计算机提供数据时,可以从池中调取远程主机机器。这些机器提供的额外带宽叠加在去年Hot Chips会议上展示的更高成本的接口处理器所提供的现有主机机器的入口带宽之上。

img

总的来说,Mojo和TTPoE协议为我们展示了如何简化已知的传输控制协议(TCP)以便与更高质量的超级计算机内部网络一起使用。尽管该协议在理论上可以在互联网上运行,但像固定拥塞窗口这样的简化在连接到互联网服务提供商及其后面的较低质量链接上并不奏效。

与Infiniband等其他超级计算网络解决方案相比,通过以太网上的自定义传输协议可能提供足够的额外带宽来满足Dojo的需求。

img

时延上,TTPoE甚至比NVLINK还低。另外,特斯拉将TTPoE加入了UEC,并公开提供了TTPoE。

参考