在2023年第四届中国数据中心绿色能源大会上,由CDCC、益企研究院、中国智能计算产业联盟联合打造的“算力经济 算网融合”专场备受关注。来自不同领域的专家、生态伙伴、用户共同探讨以算力为核心生产要素的算力基础设施的变革与发展。
大模型需要大算力,当算力和网络的发展呈现一体共生之势时,从算网协同到算网融合,业务需求的变化会通过CPU、GPU、存储等IT设备传导到网络架构层面,即数据中心作为基础设施也会相应的产生自上而下的变化,英伟达网络亚太区高级总监宋庆春受邀出席本次论坛并详细分享了“大模型时代的NVIDIA网络计算”。
以下内容根据现场演讲整理:
说到大模型,首先就要提一下ChatGPT。今年ChatGPT的出现标志着大模型时代已经来临了,所以ChatGPT出来以后在全世界掀起了大模型热潮。在这个热潮中最火的几家公司,一个是OpenAI,一个是微软,还有一个公司是Facebook,就是Meta。OpenAI在训练它的GPT3的时候,用了几千颗NVIDIA的GPU,花了两年时间最终训练出ChatGPT这么一个历史性的模型。在ChatGPT出来以后,OpenAI并没有停下来他们的脚步,一直在持续训练它的GPT4,甚至也在研究他们的GPT5。OpenAI和微软合作得非常紧密,现在它自己的算力远远不够了,用的就是微软的Azure公有云来训练它的新模型。
Meta也在用微软的公有云来训练它的大模型,叫OPT。还有在元宇宙应用中的各种模型。Meta除了自己建了多个超过万卡的集群以外,也在用微软的云在训练它的模型。
为什么大家都在选择微软的Azure云来训练他们的大模型呢?用微软的CTO一句话来讲,在微软的Azure云上有三个关键技术,能确保Azure的AI云能提供全世界最好的大模型的训练性能。在这里其中有两个因素跟网络相关,一个是NVIDIA的NVLink网络,一个就是NVIDIA的InfiniBand网络。所以今天我们的重心会放在网络上来进行讨论。
在几周前的Computex2023上,NVIDIA的CEO黄仁勋提出了未来数据中心市场的走向,数据中心正在往云的方向转型。未来数据中心会走向三个方向:第一个是传统的云,因为我们有很多传统业务需要传统的云来提供服务;第二个是生成式AI云,因为现在AI业务变得越来越多,我们的生活已经离不开AI了,为我们的用户提供AI云的服务,需要有非常强大的算力平台,在这个算力平台里就会包括计算平台,包括通信平台,所以生成式AI云也是未来的发展趋势;还有一个更大的云的趋势,这个云就是未来的AI工厂,大模型的出现标志着AI会往超大规模的场景上变化。
ChatGPT出现之前,大家对AI有一定了解的话,会看到AI有很多不同的分支,我们有基于计算视觉(Computing Vision,CV)的,有基于NLP自然语言处理的,还有专门针对多媒体的,模型的分支很多。但是当以GPT为代表的多模态的大模型出现以后,模型逐渐走向统一。当模型走向统一之后,未来提供训练服务的平台,其实会变成非常单纯、但是非常强大,有很大很大算力的平台。这个平台我们就叫它AI云,因为它跟传统的云和数据中心的目标完全不一样的,它追求的就是很单纯的几个模型,也许是一个,也许是有限的几个,但是我要让这个模型的性能发挥到淋漓尽致。所以在这里需要有最强的计算平台,像最强的GPU,也需要最强的网络平台。
当我们的训练平台把1个GPU,或者是1台GPU服务器拓展到几千个几万个GPU的时候,单一的高性能的GPU,或者单一的高性能服务器已经不再决定这个系统的性能。在这样的AI工厂里,NVLink加上InfiniBand(IB)网络,将是一个黄金搭档,会成为我们未来构建AI工厂必不可少的关键网络。
在生成式AI里面,我们可以用NVLink,也可以用InfiniBand,但是在生成式AI云上面,我们还要提供一些云的服务,所以会有一些用户比较倾向于用以太网。NVIDIA也向市场上推出了非常高性能的以太网,叫Spectrum-X,是一套以太网端到端的解决方案。Spectrum-X里面包括了NVIDIA的DPU、NVIDIA Spectrum-4以太网交换机,NVIDIA高性能的LINK-X的网线,以及上面运行的所有的软件,这是一个整体的Package。这样就解决了喜欢以太网的用户要追求高性能的需求。相比InfiniBand和InfiniBand + NVLink的组合,Spectrum-X的性能还是略微要低一些,但是相比起传统的数据中心的以太网,Spectrum-X的性能,借用国内常说的一句话,叫“遥遥领先”。所以对于我们在构建未来的生成式AI云、构建AI工厂,选择高性能网络是一个不可避免的趋势。
基于前面的讨论,NVIDIA提供了端到端的解决方案,包括了NVIDIA的交换机、NVIDIA的DPU、NVIDIA的CPU、NVIDIA的GPU。基于这么高性能的计算平台,我们可以来支持HPC的应用,支持AI的应用,支持数字孪生Omniverse的应用场景。这三个应用场景就可以涵盖未来刚才我谈到的三个云上所有的应用。
我们在谈生成式AI,在谈AI工厂的时候,性能是我们唯一的目标。最高的性能、最低的功耗,是我们两个最关键的追求,其他的都会让位于这两个追求。在数据中心里,在我们的AI工厂,在我们的生成式AI云里面,面临的主要是四个挑战。
首先,我们要挑战如何让我们里面的资源利用率更高。在AI的应用场景中,经常会出现计算的时候没有通信,通信的时候没有计算,如何解决这个问题呢?我们现在需要一个新的技术,让计算和通信实现重叠,这样就可以把通信时间隐藏在计算时间里。从应用的角度来讲,好像感觉到我这边没有通信了,这时应用的性能可以大幅度的提升。现在NVIDIA网络计算技术已经帮我们提供了答案,解决了问题。
其次,在大模型时代,比如说拿GPT3来说,我们在训练GPT3的时候一般需要128个GPU去跑一个模型,需要训练45TB的数据。如果跑一个模型来训练完45TB这么庞大的数据,可能要花好几年,在对大模型需求这么急迫的时期,肯定是来不及的。这时候就需要把模型分散在很多个GPU上。但是把任务和模型参数分散到很多个GPU以后,每个GPU之间就变成了强关联和紧耦合的状态。如果有一个GPU训练完了,另外一个GPU没有训练完,训练完的GPU向另外一个GPU传数据的时候,没有训练完的GPU的数据传输不过去,就导致每次迭代的时间都会被那个慢的GPU给拉长,这就会产生长尾。在我们的业务过程中,哪次通信出现了长尾,都会对我们的性能产生影响,怎么解决这个问题?NVIDIA通过自己的网络计算技术,解决了这个长尾问题。
第三,在云上可能有多个任务同时运行,我们需要有计算业务,需要存储业务,还需要做安全、管理等等这方面的工作,这时候每个任务有可能互相干扰,这种干扰我们叫它抖动(Jitter)。现在NVIDIA也通过NVIDIA的DPU网络计算技术,把这些问题都给解决了。
第四,我们提到了在未来的AI工厂里,或者生成式AI云里面,我们会跑多个不同的大任务。当我们在跑多个不同任务的时候,我希望每个任务都能达到最优的性能,它的性能跟只跑这一个任务的时候是一模一样的。而不是说跑一个任务的时候性能很好,因为我所有的资源都给它了,但是我跑多个任务的时候,多个任务之间互相干扰,导致每个任务的性能都不好——这不是我们想要看到的。所以,我们要做每个业务的性能隔离。现在NVIDIA也通过网络计算技术,实现了业务的性能隔离。从有数据中心以来,从来没有实现过任务的性能隔离,现在NVIDIA通过我们的网络技术率先实现了,这是一个里程碑式的创新。
谈到网络计算时候,我们会来谈两部分。一个是在我们的Host里面,我们需要插网卡和DPU,我们赋予了DPU一个计算能力。我们的网络不仅仅在数据中心里做数据的传输,网络还作为数据中心的计算单元之一,它直接参与到业务的计算当中来,这跟我们以前对网络的理解是不一样的。以前的网络只是转发数据和传输数据,现在不仅仅是转发和传输数据,也在做计算。这个图就介绍了用它参与计算,像UCC是专门用来做Collective操作,专门用来做集合通信操作的。集合通信操作在大模型训练里是非常非常重要的通信模型,可以通过DPU实现对集合通信的非常高性能的优化。
接下来谈一下为什么DPU成了我们的计算单元。在数据中心里,往往需要做一些安全加密,因为我们希望数据中心接受外来访问的时候不要造成安全隐患。用https去访问网页的时候,所用的数据加密方式就是IPSec。如果用CPU来跑IPSec,可能对100G的数据流量能加密的只有30%,70%没有办法加密。现在我们可以把加密的计算放到了NVIDIA DPU上面来做,可以对100G、200G、400G这样的网络流量实现100%的加密,同时它不消耗任何CPU资源。一方面,得到了最高的性能,另一方面,通过DPU的IPSec的卸载可以让CPU花在加解密的功耗大幅度降低,就可以节省电力。如果是一个1万台服务器的平台,在3年里可以节省到1400万美金的电费。
再有一个,我们通过我们的DPU网络计算技术可以实现GPU和DPU计算的完全重叠,经过合适的优化,它的重叠率可以达到100%,这意味着什么?意味着我的业务不会感知到通信,通信变成零了,实际上在它的背后有大量通信的,但是我们通过网络计算技术把通信隐藏在了计算背后。
刚才我们谈的是在Host端的网络计算,还有一个网络计算技术是在交换机端的网络计算。以前我们交换机只是转发数据,现在交换机不只是转发数据,它也直接参与到了AI训练里面来。我们可以举一个例子,在大模型的训练中,需要做数据并行的时候,会对数据做AllReduce的处理。AllReduce处理之前需要把数据传输到每一台服务器上,现在只要这个数据传到了交换机上,交换机就会把AllReduce这个操作做完了。
比如这个例子,这5个Host里面,它的数据做完计算,送到了交换机,交换机就会做一次AllReduce,它往后面送数据的时候,它就不用再把所有的原始数据再往上送了,只是把它做完AllReduce的一个数据再往后送就可以了。当送到最顶上的交换机以后,这时候顶上这个交换机就可以把送上来的所有数据都做完AllReduce,然后它再做一个广播(Broadcast)就可以把这个数据都返回到Host。通过这样的方式,可以让它在人工智能的训练里得到大幅度的性能提升。
大家可以看一下这个数据,这里列举了128个GPU、256个GPU,一直到1000个GPU来做训练的情况。如果用了交换机上的AllReduce(实线)的结果,它的性能比没有用交换机AllReduce(虚线)的结果大幅地提升了。同时,这是一个200G的网络,物理带宽只能达到200G,但实际上用了交换机上的网络计算技术后,带宽达到了240G、250G,甚至现在最新的数据可以达到260G,突破了传统的思维。在传统思维中,假设高速公路宽度只能跑4辆车,如果并排5辆车就跑不了。但是现在通过网络计算技术,即便是4车道的高速公路,可以让5辆车甚至是6辆车并行地跑,这完全颠覆了我们的概念。这就是通过交换机网络计算给我们带来的价值。
还有动态路由。面对一个非常大规模的网络的时候,我希望网络里的流量可以很均衡地分散开来。通过NVIDIA网络计算技术,交换机可以动态地估算每个链路上的繁忙状况,把流量平均分配到最合适的网络链路上去。
再有一个例子,当我们构建一个大模型训练集群的时候,一定不能假设这个集群不会出问题,一定要假设会出问题。当它出了问题以后,我们可以通过交换机的网络计算技术,自动就把这个问题规避过去,让我们的应用不会有任何的感知。
刚刚我们谈到了性能隔离,通过性能隔离技术,让它在AI工厂里每个业务都可以达到只运行一个模型的性能,各个模型之间不会有任何的干扰,与在超算里的业务场景一模一样。
最后做一个总结,为了能让我们的用户在训练它的模型的时候能更快的部署,NVIDIA有非常强大的一个参考架构,叫SuperPoD。这个参考架构中,NVIDIA在不停地进行优化和升级换代,为用户提供最新的软硬件一体化方案。NVIDIA自己搭建了基于InfiniBand的网络平台、基于以太网的训练平台,这样就可以给所有的用户提供第一手的帮助,能最快地分享到我们的用户手上去。
益企研究院秉承“全栈数据中心”理念,自2018年发起“数字中国万里行”。结合多年来对CPU、GPU等算力技术发展的持续追踪,最近发布业界首个以算网融合为核心的多元算力研究报告:《算力经济时代·2023新型算力中心调研报告》。2023年7月,我们将继续开启新一年度“数字中国万里行”,欢迎各位专家和从业者垂询。