浪潮信息的王德魁然后非常感谢这个Qualcomm给我们这次进入分享的机会我们主要分享的内容是基于K8s和ROKV2去构建大规模AR训练机群的一些实践本次Topic是由我和我的同事共同来完成的我这边已经主要分三部分第一部分是说AR机群去使用这种RDM网络和ROKV网络的一些背景还有我们在实验中遇到的一些问题第二部分是给大家详细讲解一下我们基于K8s去构建ROKV2的网络机群的一些方案第三部分是我们的一些方案测试这里类了一些大规模AR训练机组测试面临的一些网络问题我们知道其实在AR训练里主要面临的两个问题一个是这种显存墙的问题还是这种算力墙的问题显存墙就是说你需要有足够的显存去加载这个模型然后让这个任务能够跑起来然后算力墙就是说你需要让这个任务跑得足够快然后能够在合理的时间内把这个任务跑完交付给业务去做推理使用当然这其实这两个问题的解决都需要去通过增加节点来去解决这里其实隐藏着一个问题就是说网络问题就是说都需要以这种高速网络去来实现这种多机互联第二个问题是多打一的问题多打一的问题其实在AR训练里也是比较常见的出现的原因可能是有几个吧一个是这种交换机策略的导致的可能说是你的上层的交换机会把流量同时导到一个LIF交换机上去这样这时候可能会出现雍色还有就是说你的多个任务的rank0它可能在一个交换机下或者是在一个主机下当其他的rank去给它同步T2的时候这个时候还是会出现可能会出现雍色的还有可能就是说你这个本来的任务就需要高带宽但是你的基础设施是达不到这个能力的具有些数据统计就是说如果你的对于RDM的网络你如果是有一个0.01的丢包率其实你的吞吐就会降为0所以我们是需要构建一个无损的网络的第三方面我们知道就是说RDM的功能其实可以基于多种协议去实现像炒用的这种IB网络协议和ROCK网络协议但其实说它的通讯机制是不一样的我们在这种基础设施层或者是平台层是需要去屏蔽这种差异的第四个问题是这种GPU服务器搭载多张GPU卡以及多张高性能网卡导致的前些年我们在交付客户的时候其实大部分的GPU服务器通常都是只有一张高性能网卡或者根本就没有高性能网卡但是随着这些年尤其是现在大模型它需要至少两张四张甚至八张的高性能网卡这其实给这种资源调度和多期间的这种网络通信都带来一些挑战熟悉阿爹媒网络的大家都能知道它其实是一种Kona Bypass的然后是零考备的不需要Kona和CPU的参与数据的解剖和风暴其实是有这种硬件的网卡去完成的这其实带来了这种高带宽低誓言的特性我们之前在测试这个Rocket网络的时候有一个很明显的体现如果说是我们是用这种以太网的模式去测试Rocket网络的最大带宽通常需要绑定至少10个CPU才能测试出来但是如果说是我们使用阿爹媒网络的方式其实这种CPU利用率其实是很非常低的实现具有阿爹媒功能的协议有Ib,Rocket还有这种IwapIb的话它是一种比较常用的是一招完整的链路层道传输的规范但是它其实大家也都知道它其实是没法附用以太网设备的你可能是需要购买全部的Ib设备包括交换机 线栏 还有网卡Rocket它是基于以太网的它的最大优势应该就是说是其实是可以去附用以在以太网的设备其中Rocket V2它是基于UDP来实现的Iwap实现的它其实是由于它是基于TCP实现的它可能会消费更多的资源在ARG群里面其实不太常用的大家看左边这个图罗类了一下Iwap和Rocket的一些对比除了关注几个点一个是短短短的实验其实Rocket V2是会稍微多一些的第二个是这种流控机制流控机制的话其实Iwap的话它是基于自信任机制去做流控的也就是说发送方和接收方那你其实是需要互相确认有足够的buffer那我才才去发送这个数据的所以它天然是有这种流控特性的像Rocket V2的话你就需要使用PFC和E3A还有DCqloin这种常用的流控措施去做还有就是这种网络配置IP的话即使是零配置当然如果说你想用一些高级的功能的话可能你需要去购买一些UFM带的软件像Rocket V2的话可能它的手工配置会比较多一些这里是AR训练对高速网络的需求其实我们都知道数据兵型它其实是你本地的GPU它其实会完成局部T2的计算之后然后再通过高速网络去做同步这其实是会消耗大量的这种传统带宽的像现在比较火的这种大模型的3D兵型其实它不仅仅在T2同步的时候需要带宽它在这种前相计算和后相计算的时候也需要比较大的带宽像下面这里举了一个例子就是说如果我们是用128台节点去跑3D兵型我们可以看到它这种节点兼兵型就需要12JB的带宽然后节点兼数据兵型的话可能需要27.4JB这其实是需要意味着你至少需要有3张100G的高性能网卡来支持然后RB网络构建AR训练机群其实是一种比较常用而且是比较易用的比较容易运为的一个方式因为RB它实际上是基于这种OpenSM和RRD去做寻止和通讯的所以其实不需要做太多的网络软件的AR配置我们在基于KBIS和RB构建AR机群的时候其实只需要解决这种原数据交换的问题这个原数据交换就是说我的发送方和数据上的接收方能够知道对方的设备信息然后去做交互这个方案一其实说目前是我们比较用的比较多的我们直接把ARB卡全都挂带给容器挂带给铺的就可以了然后交给框架或者是底层的通信加速库去做识别然后去选择你使用的ARB卡方案二的话是基于这种SRV的方式之前也建告有一不少同学做过相似的分享其实这种方式可能说是会比这种第一个方案一会稍微复杂一些如果说是你想用于虚运机场景或者是想去做这种带宽的带宽流量的控制或者带宽的售卖基于SRV的方式可能是一种比较好的方式这里说一下这种流控的构建无损伪赛网这其实只是主要之内的这种ROCKY网络ROCKY网络其实现在着的我们采用的方式就是说基于PFC加ECN的方式PFC的话它其实说就是说你如果我的交换机设备检测到这种用色了我会去发送一个POSE帧到上有设备然后通知你你不要发送这个数据了然后ECN的话它其实是在这种包含里面增加了一个ECN的标识位然后说如果说是包含里出现了这种用色它会通知原服务去降低发送速率当然这是说的交换机设的控制其实在主机测容制测也需要做一些配置例如说你要告诉我的数据需要走正确的优先机对列还有告诉我我的数据包含里面需要带上ECN的标识最后一个问题是这种GPU资源碎片化这也是我们在适配如果可以为TOO这种网络的时候遇到了最大的挑战其实在对AR平台它的调度去都会避免去出现这种资源碎片化的问题通常的话AR平台我们也不会去限制这种算法人员如何去使用GPU资源你可以使用单张GPU卡两张单机多卡GPU显存算力GPUMIG实力还有GPU这种非用的场景都是可以的我们不会做任何限制但是说经过这种调度去的尽量的去避免这种资源资源化我们会去采用这种白色费责的算法尽量去优先使用一个交换机下面的资源一个是主机下面的一个GPU卡的资源但是其实经过多轮次的这种GPU资源分配之后其实最终还会出现GPU资源的碎片化也就是说在巡视图来看它其实就是说这种无序化的参考这张图蓝色的可能是蓝色的可能是这种空弦的在每个节点上它可能是属于不同的牛妈组它关联的GUNCAN王卡其实也是不一样的这里就带来了一个问题因为我们知道在GPU跨节点通信的时候它其实是基于牛妈亲和兴趣选择GUNCAN王卡的这时候就是说如果我的一个多机任务它选择了属于不同指望的GUNCAN王卡它其实是走不通的所以我们的平台也是需要去解决这个问题的第二部分给大家详细介绍一下我们的一些方案这是一个方案的软件价格其实这也应该是一个大部分的AI平台都有的价格基于K8S去做一层业务任务的管理资源管理运萎然后会有一个AI的调度器然后还会基于这种K8S以后的这种底下的Playing机制去做各种依购资源的适配这里我们其实是就是把ROCK王卡做了这种虚拟化把这种VF资源当做一种K8S资源去做参与了调度这里其实我们做了一个使用一类K8S资源去表示多类VF王卡的功能因为我们在参考社区的用法其实说是我们通常是会把一类VF资源当做一种资源去使用的但是其实我们在做这种任务创新的时候其实你不知道它会被调到哪个调换机下面也不知道它会被调到哪个一个节链下面这其实就出现问题我指定的VF资源和我最终使用的不一致这样会导致我的业务管理会稍微比较复杂一些因此我们把这种VF资源的指定由创建测下沉到这种资源分配测的时候去做自动的识别就是说你的任务调做到哪个节点调做到哪个立幅上面去我去做自动的识别让你加在给你去使用另外我们还会做这种若可以王卡的这种PF和VF的这种流量监控然后王卡如果有异常的话我们也还会去做些任务的容错网络管理这块我们还是使用这种Kalic网络去固定业务网络大家可以理解为就是刚才我说的这种员数据交换网络将这种VF作为这种RDM网络去给新链任务去使用另外刚才说到了这种跨子网我们其实还会做这种跨子网通信的一些管理还有一些路由策略的一些管理当然为了满足刚才说的这些功能我们对这种开源设计的这种SRVDevalPlaying然后还有MatiCNR都进行了加强去支持这种多VF的支持还有这种异常PF网卡的监测训练任务管理这应该是一个AI平台的一个基础能力主要包括这种四部分然后框架支持任务管理和资源调度还有任务运为Rocket相关的其实是在后面像这种任务管理和资源调度任务运为这一块这里其实有一个基源资源分数的能力其实我们是可以支持到同时去管理这种RB集群和ROCKY集群的当然我们知道你一个任务是不可能去同时使用RB网络和ROCKY网络的因为你在交换级层面是不同的所以会有一种资源分组然后参数封销这一块其实是说我们前期遇到的客户他其实是说他不知道我们用的集群网络是ROCKY所以他就去提销任务但是他其实走不通的因为在使用ROCKY的时候会有一些特殊的配置三法人员如果不知道的话他其实是跑不起来的然后我们会把这些配置都下停到平台层去做封装另外像这种数据集集节点缓存然后还有Checkpoint的持久化应该也是一个通用能力资源调度的层面其实我们还是依赖于这种KBIS以后的这种节点预选由于有选择机制增加了这种ROCKY网卡的一些支持让AI软件适配其实应该是我们云烟生做的云烟生去跑AR做的最多的事情这里主要是一些像NICO加速库的一些配置像任务运萎这块我们会增加在ROCKY的支持ROCKY V2的物理网络架构其实这个物理网络特殊其实说是不管是你使用RB网络还是说是使用ROCKY网络都会采用这种SPAN LEAF或者是FATATRY这种CLOS的网络架构然后同时支持这种交换机的横向扩展来满足你的集群规模的不断增加但是对于ROCKY的话其实我们会把这种ROCKY网卡划分到不同的VLAN里面去这里其实说一点其实我们会会让容器去使用这种物理的ROCKY网络我们会在这种交换机上去配去给容器分配ROCKY子网然后还有网关还有一些路由都会做配置因为我们会有这些配置所以我们会在一个训练任务情的时候都会加一个引力的container然后去做这种规则的注入这里是我们在试图的时候遇到的一个问题就是说我们前面说我们会用这种容器网络容器去使用这种物理网络其实我们台课用的时候其实遇到了很多问题就是有时候我们会在这样有时候会启动不起来然后通信建立不起来后来我们分析其实容器它是快速启动的但是说你训练机物理机它是分钟级的启动而且它会有一种机制去与这种交换机层去建立联系把自己的IP和Mac上报到的这种交换机但是容器的话可能就没有这么轻松了因为它启动的时候它没有这个机制去和交换机交互所以我们容器启动之后训练任务立马启动但是交换机上它其实没有这种路由表的信息的所以我们会增加台课的时候我们去调容交换机的一些Apple表现的一些老化时间还有容量配置其实在一定程度上能减轻这个问题但是其实最终没有解决这个问题后来我们是参考这种虚拟机和物理机的启动行为去做一个模拟我们在扣到启动的时候会主动的去访问你的交换机的网关主动去上报你的IP和Mac地址的信息当然这其实可能还是不是太够的我们还会做一些这种网络联通性的检测检测就是说在训练任务启动之前我要确保多机之间的Rocket网络和业网都是互通的能够保证这种训练任务的成功这里是我们经过多亚客户的交付总结出来的其实如果说我们如果是使用Rocket网络的话需要达到这样的一个效果就是任意的VF之间都需要能够点对点通信这里你弄到一为例的话其实就是说我弄到衣裳的Rocket一网卡的VF它需要和机晕中任意交换机下任意节点的任意VF能通信才可以这里是列了一些我们在视频中遇到的其他的一些问题算是一些坑吧给大家分享一下一个是这种GPU节点开启SRO虚拟化的时候它其实会导致GPU的P2P通信的实验增高带宽降低如果是使用一口气通信的时候它会超时很严重然后任务去任务就会失败其实会需要做一些特殊的配置来解决这个问题还有就是说注意Rocket网卡的SRO虚拟化它其实我们现在就是说使用的这种共享的方式但是说你如果想想去做这种带宽的售卖那可能需要做一些配置但其实我没认为在AR里面其实VF是需要去共享的因为你用的时候如果一个人用那就用百分之百的流量如果两个人用那我就是个百分之五十其实这种默认的特点就是满足需求的第三个是这种基于麦克威兰的方案当时我们也试过这种因为这种方案还是比较简单一些的但是其实我们知道麦克威兰它会基于这种在这个物理的网口上去生成紫节口这其实带来了一个问题就是说我们Rocket通信的时候会用一个GRD index的这个值如果用麦克威兰的话它其实不停地增长不停地增这样它导致我们去体作一个任务的时候它其实我们不知道GRD index到底是多少然后你的任务其实也是没法正常运行的还有就是说容器内它其实是可以使用到所有的PF和VF的那其实NICO它其实不知道会有哪一个它会选这种UP的那说如果有多的话它有可能会选错这里的选错是什么就是我给你分配了两个VF你其实只能用这两个VF因为我在容器里面是给你这两个VF准备好了这种网络的软件站你如果选用其他的那其实是没法跑成功的最后一个是这种ROCK网卡的最大VF数量的问题因为我们有一个客户他想用GPUMIG加VF去跑测试当然MIG一开大家都知道他一个节点上可能会有100多个这种100多个或者7、80个的MIG实力那其实这个VF数量就不够了我们看它的Release Note它在驱动的Release Note它是可以支持128个VF的但是说在ROCK场景的话由于受限于ROCK留表的限制而且我们需要给ROCK去配IP其实最大只能配56个VF最后是大模型的支持方案前面大家也看到了我们是使用RS2V的方式去满足这种GPU资源税变化的场景但是其实在大模型的训练微调还是推理其实它有一个特性就是说节点的GPU资源加速其实是会被独占的其实不需要GPU资源的联合分配所以今天这种特殊场景我们又做了一个新的方案我们还是会使用这种Kalik作员出去的交换网络但是说我们不会去使用主机网络去跑这个任务因为我们是基于CableFlow去做任务管理的CableFlow的好多组建它其实是不支持主机网络的这里我们就会把这种采用一种机制会把这种物理的Rocket Wanga直接透传到进度透传到这种容器里面去使用但是你的业务网络还是使用Kalik的子网为了支持这个我们又把Mati-CNN和S2-Wave development增加了这种Rocket Wanga的支持基于这种方案的话其实大模型的话它可以充分地利用这种ECO的通信优化特性在这种P2IN这种因为像这种NV的官方其实它对这种NIC加速库的优化之类的还其实主要是针对这种物理机场景的最后说一下我们的一些方案测试多基多卡的话其实我们这里是小规模的做了一下测试因为客户的话它可能说是不会开放给我们更多的机型去测试的然后两年来的话我们可以达到两级16卡我们会达到这种15.07卡的效果三级24卡我们可以达到22.069的效果其实加速北京达到94%左右然后我们由于是在这种容器内在泡泽内增加了一些这种网络规则所以我们做了一下这种加规则和不加规则的一些带宽和实验的测试我们在容器内做了打流带宽其实是没有什么差异的实验其实也是没有什么区别另外我们在物理机场做了这种对比就是我配网络规则还有不配你去跨网站通信还有不跨网站通信都去做了对比带宽和实验都是OK的这个是实验的测试下面有请我们同事过去大家下午好我叫王超感谢德国老师同事的分享下面我给大家介绍人工智能开发平台其实这个东西怎么讲其实基于咱们开源社区的一些库比浮漏还有我们自研的一些组件然后加上看台德老师提交的一些比如说类似于ROKIA, IB网络这样一些插件以及调度策略进行这样一个开发平台而且最开始我们是面向深度学习尤其今天大家都比较了解AIGC, AGI现在特别的爆火包括是CHATGPT, GPT4而且这种大模型训练需要这样一个开发平台包括这种训练加部署这样一个平台而且我们可以看到现在大家都记住在一些什么预训练还有比如说增量训练还包括反听但是将来这个肯定会这个落地我们是肯定也是意见到的将来会有更多的一些应用落地到这样一个平台上去包括这种训练包括这种推理的部署平台其实我们浪潮也是因为我们是专门做这种IG罗设施的其实我们包括自己也包括客户做了很多这样的一个大模型运用以及自己的一些运用我们在做自己的大模型实践之中其实我们也看到很多一些问题比如说包括这种因为我们之前也训练过签一模型在这个平台上同时有包括我们的算法而也做了一些相当的一些部署因为当时可以看到现在大家训练模型的时候会出现很多的问题包括这种数相和GPU如何去互联然后包括这种PPG数据怎么去过去怎么去使用包括在这个平台上去同时在正常如果部署起来之后这种千卡性能的一些优化然后包括这种GPU失效网卡失效我们也同时预计比如说因为NV家的卡也是不靠谱的经常会有些卡掉了或者让经常有些卡失效或者说比如说节点失效这东西怎么去处理怎么去避免怎么去把这种大模型训练给它给它remake起来或者是给它resume起来这都是一下我们期待去解决的一些问题同时在一些客户场景中实现的我们也包括这种看到这种比如说它具体使用中也出现这种酷的失效的那个通行性能低还有比如说看到我们这位老师介绍的这种ROCKET网络用不起来不稳定因为现在可以看到ROCKET网络使用因为现在IP大家都知道共和会比较紧张很多人都抢不到ROCKET网络现在这个发言大家也比较活而且很多都已经比如说某些金融客户或者某些国产化的一些需求ROCKET网络的要求还是比较高的他们也是需要这样一方面的经验还有整个的一个分布式的环境部署比较复杂因为其实因为我们做这位平台很多年前就已经必须到这种分布式这种大规模怎么去做但是那个时候也没有那种大模型也其实分布式大家都很简单也就极卡8卡 16卡32卡就跑起来了当然现在这种基本上都是上十几点上百几点去跑这种事情但是一旦配置起来会有很多很多的问题包括网络包括GPU包括互联包括数据使用包括调度性能包括一些看到没提到这种容错包括这种还有比如说断点区讯这种问题一下都可以暴露出来以前几点少但是量一上去了就产生制的问题了同时我们也看到真正在做大训练不能行的一些公司比如说像Mata或者OpenAI经常会遇见这种比如说包括硬件的软件的各种问题真正常会照这种其实可以看到这个图可以看到就是经常会出现一种断点它不会持续的做到一个训练但是这种经验其实也是我们想通过我们自身通过客户然后把这东西进入到我们这个平台进入到这个调度系统中整个这样一个包括我们的一个平台包括我们的经验进行进去其实这个就是我们基于这么多年那个想法还有我们现在对大步型训练的一个整体一个情况构建了这样一个平台包括下面这些从我们的高性能服务器AI大存储的RDMA整个介入然后整个通过这样一个算类调度系统其实我们自建了也使用了很多这种调度系统比如说包括刚才提到的Rocket失配的这些东西GunScheduler尤其数据缓存我们也做到了这样一个数据缓存开始这样系统就是提升在一个比如说其实就是相当于说白了就是一个节点缓存这样一个技术把这种常用的或者热数据缓存到当地节点中然后使用过程中通过这种数据缓存通过数据缓存轻和性调度这样一个快速的能把你的数据金拉起去了进行训练同时针对上一边我们也做了很多这种大木鱼训练的那种框架失配然后包括这种尤其像这种锻炼系统功能这种自动故障定位这种功能尤其是针对这种自动故障定位我们也做了很多包括这种监控系统也做了很多这种插架式的一些获取比如GPU 网卡还有节点数据使用这些出现的等等异常然后收集起来通过KBIS将统一调度还有调度策略通过这样一个系统就给你做到一个快速定位同时如果出现了这种不是咱们算法人员这种比如说Clash调发或者什么问题包括像针对一种芯片级别的网卡级别或者节点级别这种这种问题我们做到一阵眼快速融刺把你的训练进行快速的resume起来同时针对整个训练全周期包括数据使用看来也提到了在数据使用中我们有数据缓存的策略在调度度过程之后我们可以包括这种数据清和性网络清和性topology还有Gunscheduler以及包括这种如果针对训练起来中也包括这种故障定位融刺保持比如说训练保持这样一些技术保持你的训练全程命中期看它复杂网络看到我们同时也讲到了包括这种Rocket使用这口我就不多讲了这个其实就是更多的包括这种针对大模型训练或者帮这种分布训练来做一些优化只要针对其实就是一个是使用层面因为现在可以看到其实最开始可不可以浮漏共产储备也就是音乐比如在数据在数据再怎么去部署能快速地优化一下我们也基于这些做了很多的相当优化比如说因为在大家尤其在分布式配置都看得也讲到了包括下面的网络配置加那些适配网络的适配尤其现在很多下面的一些国产化的卡还有比如说NV价的卡怎么去混合使用怎么去网络怎么去混合调度这些配置咱们算法人员肯定是不会去关注的这些东西都会继承到我们这个KBIS继承我们调度系统以及下面这些DBSproclaim中去做这个事情还有咱们那个CRD去做这个事情整体上就是提供这样一个快速提交这样一个东西包括这种我们也同时针对针对性的设计的一种那种调度策略比如说数据进入进入看得起到网络清合性还有一些比如说IP ROCKET这样一些然后底层优化其实一开始我们也是用Couple Flow的一些operator像什么TF operator拍到是operatorMP operator但是实际在使用中尤其像分布式或者说比如说一旦上规模之后很多有很多的性能问题这块我们也做了相当优化比如说NPS怎么去批量提交像拍到这种分布式怎么支持大膀使用像最新的像Megatron然后咱们怎么去给它支撑起来这些都需要下面一些比如说具体网络的适配显卡的适配计算卡的适配还有一些网络的适配这个也是我们前几个版本新加的那种谭信用伸缩这样一个调度策略吧其实这个其实在开源社区当面也就看到很多了这个我们的初衷也是想解决两个问题吧一个是资源使用问题因为现在可以看到很多之前之前大家没有大批量购买采用卡的时候其实GPU比较卡比较贵还是比较担心这种资源利用率的问题这样一个谭信训练可以解决这种动态资源的扩缩容这样的比如说咱们选择这样一个动态的资源使用的话可以动态进行一个扩缩容比如说你确实因为现在节点中有很多是需要训练任务的话那我们可以把卡全全释放出来去跑这种训练任务但是如果一旦需要比如说有紧急任务啦或者说比如说有特别重要的一些比较弱势的这样的比如说上线推理的东西我们可以把这些动态任务的一些资源给它缩放出来给那些比如说推理任务或者是比较重要的训练任务去做这个事情同时针对现在这种大模型训练的问题其实我们也想通过这种弹性伸作的方式去解决这种多点虚讯这样的功能因为可以看到因为大家在训练的过程中可以避免不了有些卡突然就失效了有些几点就突然就荡掉了但是这个时候呢像以前吧或者像可能做过大模型的人就是只能自己手动去一个一个去踢出去因为我们有很多算法人员就是拿Self的脚本拿一个拿一个这种粒子的表去一个一个去踢出去弄的去但是我们想通过这样一个方式把这种比如说脏节点或者说是一些故障的节点自动的踢出去然后这样的话再把一些新的节点或者日备的节点给它加进来或者说直接就把这些没有用的节点直接踢出去然后整个一组一组的踢出去这样的话保证你这个训练是不用通过人为去check不用通过人为去监控这样一个事情这样的话你快速地把你就剪断你这样一个节点容错也就包括你故障容错还有就是你一个断点区讯这样把这个时间给你剪绝掉这个其实就是最后整个容错的一个简单的一个说法其实就是我们通过这种几个维度吧一个其实从用户视角它肯定不会关注底下怎么去做的它更多的就是包括我们的任务是什么样一个任务是一个容错的任务还是一个就是普通的任务然后它会接到一箱的一个信息就包括这种高级信息或者咱们的任务是具体在作争它会发生什么样的状态就是反馈到用户层面就是这些东西但是底层呢我们做了很多这种包括监控 监控级别包括任务级别的监控硬件级别的监控这硬件级别就包括比如GPU的网卡还有网络计算节检存储这些东西整个的是一套多维度的这样一个信息收集吧然后通过这样一个这些信息都会反映到用户层面上都会看到但是真正做的处理的时候我们会通过这样下面的一个整个一个容错这样一个这个样测了去真正去判判因为它不可能因为你一个因为它刚才MI这个命令不好使或者是这个节点出现了比如说网络不动就会这样你做一个容错通过这种多维度方式进行一个判断之后进行一个容错处理是比如说去重启你的Walker还是重启整个节点还是做到抗弹之前咱们说的那种弹性扩锁容这样一个这样一个动作整体上其实我也见到了整个SS就是包括也做到了这种从数据到训练到训练保持到整个容错最后包括最后就没有讲不准上线了因为那块我们还在持续去做优化一直在大模型现在我们看的也不是特别的轻但是包括训练包括这种训练保持我们做的很多这样的工作放到这个平台上去的行我这部分的介绍就结束了然后看看大家有什么问题你好我想问一下刚才在之前前一夜有讲到集群生粗的时候不是会有负本数量的变化吗我理解这个负本数量它理解成是可用的GPU数量然后是个变化是吗您说的是训练任务的负本吗对这个是就是说您刚才说的弹性任务那一页是吧对它就是说因为现在其实很多那种框架它是天然支持这种你可以设置一个最小负本数最大负本数这其实是它的work的数量反映到分布式的训练框架里面是可以反映出它这个GPU可用GPU数量的变化吗还说没有影响的这里其实说是你的GPU数量够用了或者说是不够用了或者集群你有些异常了它会触发你work的数量的减少是这样的对对OK然后另外一个的话就是我看两位研疆长研疆者在BPT里面都有提到过就是高速的那个必行存储系统对吧然后那就是在这个分布式训练这个长期里面的话这个分布式高性能的存储系统他们的就是负载大概都会是什么呢或者他们家里会有多大呢这个其实说是你如果说是用这种我们有这种节点缓存的功能如果说是主要是看训练任务需不需要有的时候它训练任务要对这种要求特别高你存储的满足不了了那你可以去使用这种节点缓存的功能就是在你的任务系统之前你先把你的数据下来再上去去跑但是这个负载的话可能我们也没有这个具体的数据应该是ok 好了然后那么再不是刚才提到会有一些checkpoint的对吧那比如说checkpoint的对应的一些参数会存储到那个盘里面还是说仅仅会缓存到某些内存支持的一些系统里面去目前都是会缓存到这个供养存储里面去的因为它可能说是你本来是在这个节点上运行下次它可能就去另外一个节点运行了必须是有支持才可以好 谢谢我想请教一下那个王老师就第一个是关于就是那个刚刚您提到就是我们在去分配比如说EPGPU的时候可能希望多个节点它在同一个交换机下这样可能达到更好的延迟那这一块调度器在做这个直接分配的时候它是怎么感觉到这个脱谱的这一块您能介绍一下吗目前我们其实说是其实你如果之前我们尝试过其实这种自动的感觉比如说是你是在哪一个死伴 哪个立斧其实目前还是做不到的我们会在这种资源管理层面去做告诉你你这个节点是哪一个交换机然后会基于这个参数去计算你这个交换机下面的整体资源利用率然后资源利用率太大大或者小我们去选择去使用它好 OK那第二个问题是应该是我们在时间上遇到的一个问题就是我们经常会遇到一个情况就是您可以多个节点的时候那有的节点它比如说单击8卡它单击上它的卡间的通信完全没有问题就比如说通过MVlink但是它和其他的这个节点比如说通过IB去通信的时候就有不同的情况我不知道咱们有没有遇到过这个问题不普通吗对我们其实也遇到过这个其实通常我们遇到的场景是什么就是说你这个节点上可能是有4个RB卡扣的但是我可能说是因为你的线不够我差了两个这时候就会造成一种脱补不平衡这个才是我们去反馈给MV了最终它们是通过去在NCCL这一层解决的然后去升级一个比较高的比较高版本的NCCL就可以解决OK好 谢谢你好那个我问一个实际中我们的问题就是也是基于K8S加ROFE就是用的方案也是那个VLAN加上MAT-CRI但是实际中我遇到的情况就是容器网络有的交换机之间是不通的不知道有没有遇到同样的问题您说的交换机通讯是具体是什么就是因为我是在容器内然后把这个ROFE的网卡挂进去的挂进去以后其实Kinical的网络是通的但是就是这个业务网络不通但是厂家给我的回馈是这个ROFE交换机的一个限制您这边是有几个ROFE网卡每台机器八张卡两张ROFE的网卡这可能就是说你没有做到这种点对点的通信你需要这种做到这种任意的ROFE网卡之间都能通信才可以你去做到这种去测打流能通才可以您说的这个通讯是说拼不通还是说是怎么不通就是容器网络中两个节点ROFE网卡因为网卡号它是随机的我发现对 是的这还有第二个问题就是网卡号随机的情况下我不知道这浪潮用什么样的策略的我们是把网卡号随机的情况下挂到环境辨量每次通过环境辨量的方式把它挂到容器里头解决它不通的问题对 差不多类似的方案就是我们会它都会它其实都会随机的去分配这时候你需要你的资源得打打打印需要知道你分配了哪一个VF然后我会把这个VF配置给NCCL然后另外比较奇怪的就是看slide中前面介绍了你用了ROFE网卡VF和PF的功能不是很理解为什么要用这个功能去解决GPU碎片化的问题您说的是我们为什么要选择slv这个方案吗对刚才其实我们其实说这个MAC VLAN的方案其实我们用过 尝试过因为它比较简单一些但是它其实我们通融是走不通的因为你虽然说是刚才说的方案就是说是它最终是能够互通你去做IDM打流其实也是可以通的它最终你说你不准的去充电一个新的容器它可以你看我们用MAC VLAN的时候它会就会分配一个紫节口嘛紫节口一直增多你ROKE的GRD INDEX会不停地增那这时候我们去通信的时候就是对方它不知道是谁所以就可能会通信失败但是在大模型的场景下是不用这个对 这是可以的好 谢谢你好你们介绍那个用ROKE V2的时候它其实用PFN或者ECN的时候多打一或者在训练或者其他的时候多打一的时候有这样的case把网卡打出POST让那个计算给POST这个没有那个就是打满是吧对就是你相当于没有打满过打满打满其实很容易就是我们直接用RB的第一个命令去测就可以了对 我觉得在真实跑的时候就类似于没有打出过在真实的时候我们知道其实它的训练任务都是这种就是播风一下的上来一下又下去了大部分就是说是一次冲到点其实这种场景还是不太好复线的对唐元光你这样的就是说如果大部分的计算任务都是GPU在跑那我用CPU来扛这些带宽压力是不是也可以你说的是就不用ROKE V2的直接用TCP来跑或者是UDP来跑你如果说用CPU跑去跑任务那肯定是可以的没问题对 因为你想大部分的时候是GPU在工作嘛CPU就是在传一下带宽这个时候机器的CPU可能是够的对 是如果你用CPU去跑任务那可能RDM的比较性不是太大我的意思对比方案的话就是说你为什么讲说跑门人员任务大部分任务是跑在GPU上的对这个时候对 大部分的训练任务都是跑在GPU上的对 这个时候CPU是比较空前的那我不用这么复杂的布置方案是不是更容易一点让业务跑起来其实我们之前测的时候就是客户里测就是说我们它可能就是当然我们也是偶然中发现这个问题的就是说是它去跑任务它没有去使用这个RB它可能说是直接使用ROCKY网卡它应该加速了3倍左右吧但是如果使用RDM的话它应该在这个基础上再double一下能够加速到6倍就是说你的意思是是因为带发厂的更快了 是吧对 我感觉应该是应用层这个应用层这方面的设计的问题就是说你去做通信的时候你有没有使用更多的通信可能默认在它我们都不用去去配更多的CPU只是默认方式去跑了所以它可能这带款体验不出来咱们先搁下来交流