AI 集群今天既传输巨大的梯度向量,也传输诸如屏障同步或缓存查找之类的微小协调消息。当计算阶段缩小到毫秒级时,这些短交换的延迟就会成为瓶颈,因为网络无法将它们置于长批量传输之前。TCP 的发送方驱动的拥塞控制仅在队列形成后才起作用,且其字节流模型掩盖了消息边界,导致头行阻塞和 incast 陷阱——即短消息在最终跳处等待批量交通。斯坦福大学的约翰·奥斯特豪斯提出的 Homa 协议以崭新的设计解决了这些问题。它将每个远程过程调视为一个独立的 RPC,其长度从第一个数据包就可见,因而能够采用最短剩余处理时间(SRPT)调度,使较短的任务能够插入较长任务之前。接收器位于拥塞的下行链路,会发出分批的 GRANT 数据包,授权发送方按计划传输消息的部分,从而在队列形成附近控制流量。为了绕过交换机中已经等待的积压,Homa 在每个出端口使用多个硬件优先级队列,并动态为较短的消息分配更高优先级,使其能够越过在较低优先级队列中等待的长消息数据包。演示中的基准测试表明,Homa 相比 TCP 能够将短消息的第 99 百分位延迟降低约 13 倍,并且对最长消息的延迟改善近 2 倍。作者指出,要在实际 AI 应用中获得等效的提升以及与 RoCE 进行直接比较,还需要单独的测量。该协议因此提供了一种原则性的方法,在许多小消息与大量传输共存的环境中降低尾延迟,而不要求每个发送方自由发送。
这说明了文中描述的头行阻塞问题,在这种问题下 TCP 无法将短消息的优先级置于批量传输之前。
这表明了短消息延迟对计算阶段的影响,正如开头段落所述,微小的协调消息会导致瓶颈。
这支持 Homa 设计的观点:可见的消息长度使得 SRPT 调度成为可能,从而降低短消息的延迟。
这演示了 Homa 如何使用多个硬件优先级队列,让短消息能够跳过在较低优先级队列中等待的长消息。