在2024年的Hot Chips大会上,特斯拉宣布开源其Tesla Transport Protocol over Ethernet (TTPoE),并加入了Ultra Ethernet Consortium (UEC),以分享该协议并致力于标准化一种新的高速/低延迟的网络结构。TTPoE专为特斯拉的AI超级计算机DOJO设计,旨在取代传统的TCP(传输控制协议),提供微秒级延迟和简单的硬件卸载功能。
在传统的超级计算机网络中,常见的传输协议是TCP/IP。然而,TCP/IP虽然稳定可靠,但在一些高性能计算任务中可能并不适用。TCP的连接管理、拥塞控制以及可靠性保证机制,虽然适合一般网络环境,但在需要极低延迟和高带宽的计算环境中,其复杂的状态机和长时间的等待状态会成为瓶颈。例如,TCP协议在关闭连接时需要经历FIN、ACK等多个步骤,并进入TIME_WAIT状态以确保所有数据包的完整性。这种设计虽然增加了网络的可靠性,但也增加了延迟,在高要求的环境下显得过于复杂。
Tesla的Dojo超级计算机主要用于训练自动驾驶系统中的深度学习模型。这些模型需要处理大量的视频数据,单个张量(Tensor)可能达到1.7 GB,这对数据传输提出了极高的要求。在这种情况下,如何高效地将数据从主机传输到计算节点成为了一个重要问题。传统的PCIe通道虽然提供了高速的数据传输能力,但在面对如此大规模的数据时,仍然可能成为瓶颈。为了解决这个问题,Tesla选择开发一种专门的传输协议,即TTPoE,以替代TCP在高性能计算环境中的应用。
TTPoE的设计理念
1、协议简化
TTPoE的核心设计理念之一是简化协议栈,减少不必要的等待时间和数据传输步骤。与TCP相比,TTPoE取消了复杂的三次握手(SYN、SYN-ACK、ACK)机制,改为两次握手,这样可以显著降低建立连接的时间。同样地,在关闭连接时,TTPoE也仅需发送一个关闭操作码(close opcode)并接收一个确认即可完成,而不再经历多次确认和TIME_WAIT状态。
这种简化不仅减少了数据包的传输次数,还通过硬件实现了这些操作,使得协议的处理速度更快,且对上层软件透明。上层软件无需显式地管理连接,只需指定数据的目的地址,硬件就会自动完成数据的传输,这大大简化了应用层的开发。
2、硬件实现
TTPoE的另一个重要特性是其设计完全由硬件实现,这与传统的TCP/IP协议需要软件处理部分任务形成了鲜明对比。Tesla在TTPoE的硬件实现中,采用了类似CPU的设计理念,特别是在数据包处理上,采用了类似于指令重排序缓冲区(reorder buffer)中的“指令退休”机制。当数据包被确认接收后,TTPoE的硬件会按照顺序“退休”这些数据包,从而保证数据的有序性和完整性。
在硬件设计中,TTPoE引入了1 MB的SRAM传输缓冲区,这个缓冲区定义了拥塞窗口的大小。在传输过程中,所有的数据包都会被暂存到这个缓冲区中,直到收到对方的确认信息后,数据才会被移出缓冲区,从而实现滑动窗口机制。这个缓冲区的大小经过精心设计,能够在80微秒的网络延迟内保持接近100 Gbps的传输速率,足以满足Tesla内部网络的带宽需求。
3、拥塞控制
传统的TCP协议使用一种动态的拥塞控制机制,根据网络状况调整拥塞窗口的大小,以适应不同的网络条件。然而,这种机制在面对高质量、低延迟的内部网络时显得过于复杂和冗余。为此,TTPoE采用了一种固定的拥塞窗口机制,即通过硬件在SRAM缓冲区中记录已发送的数据,缓冲区的大小直接决定了拥塞窗口的大小。
当缓冲区满时,TTPoE会暂停发送新的数据包,直到收到对方的确认并释放缓冲区中的空间。这种机制简单且高效,特别适用于Tesla的低延迟、高带宽的内部网络环境。此外,TTPoE仍然保留了TCP协议中通过丢包来控制拥塞的思路,但由于其固定窗口的设计,TTPoE不需要像TCP那样频繁地调整窗口大小,从而减少了计算和管理的复杂性。
一句话总结:TTPoE完全在硬件中实现,其状态机相比TCP协议大大简化,从而提供更低的延迟。TCP协议在关闭连接时需要经历多个步骤,如发送FIN、等待确认、再确认等,最后进入TIME_WAIT状态。而TTPoE通过删除TIME_WAIT状态,并将关闭连接的过程从三个步骤简化为两个步骤,大幅减少了延迟。这种简化还包括在建立连接时,将TCP的三次握手(SYN、SYN-ACK、ACK)简化为两次握手。
TTPoE在Dojo超级计算机中的应用
为了实现TTPoE在Dojo超级计算机中的部署,Tesla设计了一种被称为Mojo NIC的网络接口卡。这种NIC(网络接口卡)具有PCIe Gen 3 x16接口和8 GB的DDR4内存,虽然这些硬件规格并不是最新的技术,但它们足够满足TTPoE的需求,并且能够显著降低成本。
Mojo NIC被称为“Dumb-NIC”,因为它的设计目标是尽可能简化和降低成本,使其能够在大规模部署时保持经济可行性。Mojo NIC的主要任务是通过TTPoE协议将数据从主机传输到Dojo超级计算机的计算节点。随着计算需求的增加,Tesla可以通过增加更多的Mojo NIC和主机节点来提高数据传输的带宽,以确保Dojo超级计算机在高负载下的性能。
Dojo超级计算机的核心任务之一是训练自动驾驶系统的深度学习模型,这需要处理大量的视频数据。为了确保这些数据能够快速、准确地传输到计算节点,TTPoE协议和Mojo NIC的结合提供了一个高效的解决方案。由于TTPoE协议的简化设计和硬件实现,数据传输的延迟得以大幅降低,确保了模型训练过程的高效性。
此外,Mojo NIC的设计还考虑到了系统的可扩展性。当计算需求增加时,Tesla只需增加更多的Mojo NIC和主机节点,就能够线性提高系统的总带宽。这种扩展方式不仅成本低廉,还能够确保系统的稳定性和高效性。
TTPoE的关键特性
- 低延迟:TTPoE简化了传统TCP流程,以减少延迟并提高高性能计算环境中的效率。
- 高带宽:该协议优化了AI工作负载的性能,能够处理大规模的数据传输。
- 硬件卸载:TTPoE设计为完全由硬件处理,这使其对软件透明,并且可能比标准TCP实现更快。
- 兼容性:TTPoE运行在标准以太网交换机上,保持与现有网络基础设施的兼容性。
与其他协议对比
与TCP/IP的对比
相较于传统的TCP/IP协议,TTPoE在延迟、带宽利用率和实现复杂性方面具有明显的优势。首先,TTPoE取消了TCP中冗长的连接和关闭过程,减少了不必要的等待时间,从而大幅降低了网络延迟。其次,TTPoE采用固定的拥塞窗口机制,通过硬件管理数据传输,从而避免了TCP中动态调整窗口带来的额外开销。最后,TTPoE的硬件实现使得其处理速度更快,且对上层应用透明,这简化了应用开发的难度。
与Infiniband的对比
Infiniband是一种广泛应用于高性能计算领域的网络技术,以其高带宽和低延迟著称。与Infiniband相比,TTPoE虽然在理论上提供的带宽和延迟略有差距,但其在成本和实现复杂性上具有显著优势。Infiniband依赖于一种由交换机控制的信用系统来管理拥塞,而TTPoE则通过丢包和重传机制来处理拥塞,这种机制更为简单,也降低了网络交换机的设计复杂性。
此外,TTPoE基于标准的以太网硬件实现,这意味着Tesla可以利用现有的以太网基础设施,而无需部署昂贵的Infiniband设备。对于Tesla这样需要大规模部署计算节点的企业来说,TTPoE的成本效益显得尤为重要。
写在最后
中国何时拥有自己的传输协议呢?