本
文
摘
要
图文原创:亲爱的数据
原文传送门:
漫画数据中心网络“卷”AI:迟到不可怕,可怕的是别人都没迟到mp.weixin.qq.com/s/u_n8TPm1uLtdCzzFqpNL4g迟到不可怕,可怕的是别人都没迟到。
这一点人工智能(AI)听后产生了强烈共鸣。
AI模型越来越大,哪怕用计算集群训练,时间也可能长达几周。安排得不好,长达数月。
世界是你们的,也是我们的,但归根到底是那些会造词的。谷歌公司的GShard论文中“用”了一个AI新量词:22.4 TPU Year。
用我大学英语四级的水平翻译一下,一个AI模型在一个TPU 处理器上训练时间长达22.4年。
“十八年后又是一条好汉……”这话听上去气势顿时少了一半。
AI大模型代表的是大算力时代,意味着只要运行在云计算数据中心里,兴师动众是标配。
因为需要在计算集群上进行分布式训练,大致是这样一个过程:
先在分布式并行计算中做任务分解,计算集群的每个服务器节点分别执行一部分计算,你干一点, *** 一点,缩短工作时间。队友们分别计算,再数据同步,再分别计算。
一轮一轮迭代,周而复始。
每个计算的周期之后,整个集群批量同步,不同节点的计算之间有数据依赖和共享,需要将数据通过网络在不同节点间传输。
如今,深度学习训练中大部分的计算和数据都在GPU上,模型越来越大,GPU队友就越多。
千卡上阵,万卡莫辞。
当网络异常,就会有队友迟到,拖了大家后腿。
量少,可以等。
量大,不能忍。
2人分工,2000人分工,20000人分工,情况各殊。搞不好,并行比串行还慢。一顿操作猛如虎,队伍速度原地杵。
队友间的分工方法可以有所不同。
数据大,分工可以切数据,或者切大模型。
切数据就是,先将数据切分,切分后的数据被送至各个训练节点。
每个节点上都有完整的模型,进行一番运算后得到结果,最后,将多个节点运算结果合在一起。
切大模型到最后也是将多个运算结果合在一起。
如果哪位还没有算完,或者算完了,但没有同步,大家就得等它。
AI这个场景不仅仅传输速度要快,还不能有短板,就好比盛水木桶。
难点总结出来了,在云计算数据中心网络中,做到一个平均数容易,想做到没有短板,很难。
这里就谈到网络的一个术语叫SLA(服务级别协议),用来管理网络服务的表现。
SLA里面经常会提到“长尾延迟”,比如说一个团队,99.9%的队员在5us内按时抵达,剩下0.01%的队员没有按时,我们就说 P999 的延时SLA是5us。
这个时候,你可以吐槽AI娇生惯养。
AI会习惯性解释一下:“ *** 活的时候,传输任务很多。”
也就是说,AI应用运行在云计算数据中心的网络里,大量的数据需要网络传输和交互。对于网络传输的要求高,即使微秒级别的网络异常也会使应用受影响。
AI还可能会强调一句:“任何网络的抖动,都会造成我们性能下降。”
云计算数据中心网络给AI打工,活儿不好干。
普通人用网,选一个参数:带宽。
数据中心网络很复杂,仅用个别参数就不够了,这里更像一种对服务质量(QoS)的承诺:“你得给我保障不差于某一水平线的能力”。
怎么办?数据中心网络就好比一个路网。
一种是让路更宽。增加网络带宽,从一车道(10Gbps)到十车道(100Gbps),到四十车道(400Gbps)。
一种是抄近道。
这时候,RDMA网卡红光满面,高兴地说:“我来啦。”
它的本领是绕过CPU。
展开讲就是,RDMA这一技术可以绕过CPU进行数据传送,也就是直接将数据传送到CPU内存(或者GPU内存,或者其他任何设备内存),绕过之前那些由CPU进行的处理工作,这样势必减少CPU了消耗。
无需CPU读取,是抄了一把好近道。
不止于此,大型互联网公司都在基于自己的业务,改进了RDMA协议,自研了RDMA网卡,以满足大规模组网的需求。
无论抄近道也好,加车道也好,这些都是理想情况,理性很丰满,现实很骨感。
无限制的增加车道不仅仅成本上无法持续,而且上下高速,并道等情况下依然会出现拥塞。
早晚高峰加上节假日,车流方向还不同,更不用说一旦出了车祸,堵死了,那就趴在方向盘上祈祷吧。
数据中心的网络远比路况还复杂,本质上除了资源以外,还需要全局的协同优化,这是个复杂的系统工程。
是哪些东西在协同呢?网络内部各元素需要深度协同,但远远不够,端和网也需要协同。
端的范围在扩大,服务器or网卡被称为端,服务器上运行的计算,存储,数据库等应用也是端。
它们一起和数据中心交换机网络协同,叫端网融合。
网络历经三个阶段:经典网络,软件定义网络,可预期(predictable)网络。
(更多阅读,请看:数据还有5纳秒抵达战场,漫画数据中心网络)
技术更迭,网络设备的本质也发生了变化。
比如,虽然都是交换机,经典网络里的厂商黑盒交换机和互联网定义下的白盒交换机却是两套不同的网络系统,不同的管理运维方式,和端侧协同的方式也各不相同。
这种不同,是本质上的不同。
而端网融合是可预期网络实现的主要手段。
怎么理解“可预期网络”呢?
严格地说,软件定义,硬件加速(依赖芯片可编程,从而提供更加可靠可预期的网络性能)。
阿里云基础设施网络事业部总经理蔡德忠,告诉我:可预期网络从性能的角度看,转换成技术术语,就是带宽可以保证,延迟可以保证,特别是长尾延迟可以保证,这才是可预期。”
没有攻下长尾延迟的网络,给AI干活很难保证质量。
可预期网络有很多技术的细节。
简单讲,把网络理解为管道。传输数据,网络的带宽,网络拓扑,网络中的拥塞或者故障,仅仅网知道不行,端也需要知道,也就是需要及时传递给端上的AI计算。
比如,在3层CLOS数据中心网络架构里,任意2台服务器之间通信,最多通过五台交换机,可是,数据中心网络的超大规模,中间能走的道路就有上千上万条。
怎么走,又如何分配带宽?
这时候,AI通信数据根据带宽需求可以被分配到不同的路径上,均匀地打散,同时辅助路径探测,以一定的周期去探测每一条路径,相当于测量每一条路径的带宽、延迟等等参数。
再根据这些探测的结果,实时地做路径优化。
网络提供实时信息,端才能做更好地选择。
简而言之,网知道,端也得知道,二者需要实时协同。
传统网络无论拥塞丢包还是故障丢包,这个应用都有它自己的方式处理重新传输。
因为传统端和网分层解耦, 是Best Effort(尽力而为)的思想。
传统上,端把网当作一个黑盒,反正,端上有探测机制,大不了重传。
尽力了还做不到,就算了,任务推给别人(端)吧。
这种思路,对于过去的 IT 负载是行得通的。但是 AI 是不同于以往的IT负载,老办法不行了。
如今的网络技术虽然支持大规模可扩展,然而,它是为传统IT而设计的。面对AI,新的瓶颈在所难免。
新问题需要新思路,端网融合新架构就应运而生了。
路径资源分配和路径状态的实时探测还只是初级的端网融合的思想,高端队友已经在基础网络协议层面做功课了,网络传输协议里面融入了计算和存储的关键信息,跨域全栈进行优化,才是更高境界。
要迟到了,偏偏一路红灯,赶时间,恰恰遇上车祸,可太糟心了。这算是“可预期网络”反面教材了。
数字社会基础设施不能这样。
它的特质应该是,超级安全可靠,成本低且运营高效,且提供可预期的网络性能,数据中心网络如此,更大的广域网络也是如此。