00:00
爸爸,爸爸。Hello,大家好,我是Z米,最近呢,我发现很多同学呢,对mvv link,特别是英伟达的MV link MV Switch呢非常的感兴趣,于是呢,我们又后补了一个英伟达在AI芯片里面,GPU详解里面补了一节MV Switch,那之前呢,只是给大家讲了一个系列的,还有一个系列的envy link,今天呢,我们来看一看eny Switch到底是个什么玩意哈,GE那这里面呢,我们会分开三个内容给大家去汇报和交流的,首先呢,第一个内容就是MV Switch的出现,为什么会有MV Switch,那第二个内容呢,我们去去看一看env switched到底长什么样子,里面有什么内容,它跟env link跟GPU之间又是怎么去连接的,因为有了MV Switch之后呢,大量的GPU,单体的GPU就可以组成一个非常庞大的服务器集群,那后面呢,我们就会去看一看。
01:05
英伟达的DGX服务器的介绍,最后呢,就以英伟达的官方公布的一个视频呢,去结束这一节内容。其实呢,我们在之前的一个系列里面呢,大量的去讲了GPU的整体的架构,那我们知道呢,GPU里面呢,有非常多的SM的核心,或者有非常多的GPC图形图像的处理处,首先呢,我们会使用塔来驱动我们的整个硬件,真正的去把我们的计算的内容执行起来,那这个时候呢,我们的库塔就写了非常多的线程,而GPU呢,会把我们实际的线程的工作分配到给,也就是白色的这条线,分配到给每每个GPC里面的SM进行真正的去执行,那这个时候呢,每个SM或者我们的扩也好,会利用我们的HBM的带宽,也就是我们的显存的内容里面的数据进行计算的,但是呢,BM是一个高带宽的memory,它不能够直接放在我们的SM旁边进行计算,还是有一定的距离的,预是呢,HBM就会把数据呢搬运到L2的cash l2的cash呢,会直接把数据呢搬运到SM旁边的。
02:14
的寄存器组里面进行真正的数据的计算,所以这里面呢就出现了两级的数据的搬运,从HBM到LL呢再到L,可能会到我们的念,假设我们的数据量非常大的时候呢,我希望通过一个CPU2个GPU同时的去处理非常多的并行的数据的时候呢,也就是我们看看右边的这个图,右边的这图里面呢,有一个CPU,但是呢,一个CPU里面控制两个GPU,同样呢,我们可以通过导的编程体系呢,去写一些给到GPU,真正的把线程执行起来,这个时候呢,GPU跟GPU之间的数据的交互就严重依赖于CPU进行一个分配和调度,而CPU呢,就会把我们两个GPU通过PC12个PCI的插槽进行数据的传输,而这个时候呢,PC的带宽就约束了GPU跟GPU之间互联的速率。
03:14
这也是很开始的时候,或者我们一开始买游戏卡的时候,买两块游戏卡猜到一块主板的这种情况,后来呢,GPU之间呢,就发明了或者使用了MV link gpc呢,也就是我们的图形图像处理处呢,就可以访问卡间的HBM,也就是通过我们下面绿色的这一个线处有多条MV link呢,从GPU0对GPU1里面的HB的数据呢进行访问,后来呢,当我们的GPU服务器出现的时候呢,我们的一台机器里面的CPU可能会挂一两个,甚至到四个,有了m link这个技术之后呢,就可以使得我们很多的GPU之间进行一个互联互通,单个GPU的驱动进程呢,就可以控制非常多的其他的GPU进行工作,假设我写了一个GP里面去运行,实际上呢,我可以把任务都分发到GPU9011 gpu23里面,同时的进行并行的计。
04:14
那这个时候呢,因为有了v link呢,HBN的内存呢,可以不受到其他进程的方式呢,进行互相的访问,而整个X呢,作为调节器进行独立的眼镜,提供更高的带宽,那这里面的MV link X8呢,就是我们MV Switch的原型,通过提供更多的MV link的对外的链路的接口去让我们更多的GPU连接在一起,于是呢,就出现了我们的env Switch,今天这条街最靓的仔。在MV Switch出现之前呢,其实更多的是以mvv link的发展的,是MV link的发展的,是伴随着mvv Switch的发展的,所以我们先看看第一代呢,是出现了mvv link的,也就是在2014年的时候把帕斯卡架构推出之后呢,就出现了第一代的MV,同期呢,MV Switch的出现呢,是在MV link的第二代,那下面呢,我们看一下整个MV Switch的发展,MV Switch的第一代呢,就是在VTE的福特架构,也就是2018年的时候去出现的,整体的GPU到GPU的带宽呢,是300GB到600GB到H100的900GB,而整体的互联的带宽是越来越高,那这个互联带宽越来越高,不是因为env Switch的发展的非常快,更多的是因为envv link的发展,而envv link的发展里面呢,最重要的一个参数呢,就是这里面MV link的链路数,从第一代的四个链路,到第二代的六个链路,再到第三代的12个链路,再到第四代一版里面的。
05:45
18个链路,因为MV link的链路束的约束呢,所以我们可以看到了,在整个mvwi的架构里面呢,其实是非常的强,相关第一代里面的 DGx1,也就是我们对应的P100呢,因为刚才讲到呢,一个GPU里面P100呢,一共有四个链路,所以P100的架构里面的对外互联的GPU跟GPU之间一共有四个方向,这是第一条,第二条,第三条,然后最后第四条,每一款GPU呢,都有四个链路对外出口,同时的我们往最后一个刚看,这里面是一条链路,两条链路,三条链路,四条链路,因为m link的链路数的约束,所以会限制了我们整个网络互联的top去到MV link的第二代,也就是对应的MV Switch的第一代,这里面我们可以看到呢,已经开始出现MV Switch了,在第二代的MV link里面呢,一款GPU里面呢,支持六路的MV link,所以我们一台主机里面呢,可以挂八台 gpu1235678,但是呢,每一台GPU里面。
06:45
那只能支持六路的MV link,因呢,我们可以关六个MV Switch MV Switch跟MV Switch之间呢,进行一个互联互通,因此呢,我们可以把八个GPU里面的同时互联起来,通过这种方式呢,去提升我们互联的带宽,这个时候呢,已经没有了左边第一代的这种拓,而是变成了一个互联互通的,我们可以从第一款GPU呢,到最后一款GPU呢,都保持相同的传输的率。
07:14
现在呢,我们回到了Amy Switch的这个内容里面,首先呢,我们还是回到第一代的Amy Switch Amy Switch实际上呢,是提供了18路的MV link的接口,使得英伟达呢能够设计出全五组全链路的16个GPU的系统,而每一块100的六路的MV link呢,会分别连接到六个不同的MV Switch上面,那当一款芯片或者单一块英伟达的V100的卡呢,就会连接六块MV Switch,八块V100呢与六块MV Switch形成一个全连接构成的一款基板,插在或者焊在我们整一个V100的服务器里面,接下来呢,我们打开地带MV Switch的一个电路图或者电路的硬造图,那整一款MV Switch呢,是一块独立的mvv link的芯片里面呢,就提供了高达18路的mvv link的接口,每个mvv link的接口呢。
08:15
能够支持最高50GB每秒的带宽,所以总共呢能够提供900GB每秒的带宽,那这个呢,是MV Switch自身的功能,不代表着我们整个服务器呢,能够提供900GB每秒的带宽,带宽能够传输多少呢?更多的是看我们有多少块GPU跟GPU之间的互联,那这个时候第一代啊,当时候是基于台积电的12纳米的技术的,一共拥有2B2个晶体管,也就是呃,20亿个晶体管,而第一代的MV Switch呢,我们可以看一下它整体的一个呃逻辑图,那这里面左边呢就是MV link,右边呢也是MV link上面,这里面有点位置呢,也放了两个envv link,这上面呢是有两个VV link,这里面呢有八个env link,这里面有八个envv link,所所以呢,我们一共呢,提供18个envv link的接口,中间有两个S,最后有一个控制的电路在这里面,而具体的参数呢,就是我们下面里面最重要的,我觉得是每个v link。
09:15
的双向的带宽也就是515GBPS,那P呢,就是一杠啊,所以就是呃,大概约等于50GB每秒的传输速率,因为有18个M,所以整体的双向的带宽呢,能够去到928GBPSLDST带宽的利用率,也就是读写的带宽的利用率呢,其实是能够去到80%,这就意味着刚才提到的每个GPU双向的带宽51.5gBPS呢,其实我们是不可能用到100%的,所以我们还会打个值,51.5乘以8%,这个就是我们实际的带宽的利用率,刚才看完了一些简单的硬件的电路逻辑之后呢,我们现在看一下第一代的m Switch的box,同样的方式,我们往右边的看,看右边的这整一个图呢,刚才讲到的X8呢,也就是GPU的X8呢,是作为MV link调节的四倍,而不是作为一般的网络的四倍去调节。我们非常。
10:15
多的env link,那一个en Switch呢,有18个env link,所以我们从零到17,实际上呢,我们在控制的时候呢,只是控制一款GPU就可以实现多块GPU之间呢进行并行的计算,适因为我们的数据包呢,在多块MV Switch里面的不断的去传输,而这里面的传输控制的逻辑呢,就是我们刚才讲到的逻辑控制电路了,它是用来控制和分发我们的数据包的,那具体呢,我们看一下每个po的逻辑,它可以做一些路由的分发,来做一些包的分类和传输转换呢,还有一些错误的校正,那内容呢,其实还是比较简单,更多的是对我们的数据呢进行处理,下面呢,我们结合整个GPU去看一下跟GPU之间的一个交互的方式,这里面很重要的一个内容呢,就是我们既然要对数据进行传输和分发,就需要知道数据的地址,那数据的地址呢,实际上我们获取的是一个物理的地址,而这个物理的地址实际上呢,我们在程序员控制的时候是不知道的,我们看到的都是虚拟地址,所以虚拟地址的物理。
11:15
地子的转换呢,是由我们的呃,计算单元,也就是图形图像处理处或者FM里面进行一个完成的MV link,最后呢,实际传输的就是我们对应的物理地址,而华飞虚拟地址通过这种方式呢,才能够更快的去索引到我们对应的数据到底放在哪里,接下来呢,我们看一下整个MV的一个简单的版本,首先呢,在没有M的情况下呢,我们GPU跟GPU其实是做一个互联的,这个互联呢,就非常讲究我们GPU之间的一个拓扑了,另外的话,有了MV4之后呢,我们就可以通过一个MV4对多个GPU呢进行一个互联,那这就是他们最重要的一个改变,原则上呢,我们可以通过添加更多的MV4SWITCH来支持更多的MV link,只要保证MV4SWITCH跟MV4SWITCH之间呢,进行一个互联,就可以实现更多的GPU连接,在一台服务器八个GPU呢?
12:15
就是最少可以通过三个MV4SWITCH进行构建的,因为我们刚才讲到了,呃,V100架构里面呢,MV link的链路呢,一共有六条,123456,而每个MV4SWITCH呢,对外最大能够接受18个,通过这种方式呢,可以变成我们一台V100的服务器,那这台V100的服务器里面呢,就有八个GPU,有三个M,而这里面呢,非常重要的一点就是任何一对GPU都可以完整的使用300GBPS双向的带宽,也就300GB每秒双向的带宽,从V100这个地方传输到另外一块A100,都可以完整的去使用300GB秒双向的带宽,这是非常的爽的,Oh my god,讲完第一代的MV Switch之后呢,我们看一下最新一代,也就是H100里面的一个MM之间的一个特点,采用了最先进的台积电的tsc,不,我们国家什么时候才能把它收回来的,四纳米的。
13:15
工艺,而且引用了sharp的加速,所以说整体来说呢,也就是合金为止,英伟达最能打的一款小型片框的一个小模组,而带宽呢,我们刚才讲的也是确实非常的惊人,GPU到GPU之间呢能够到达900GB每秒,那现在呢,最后我们看一下整个的block,刚才讲到了就加入了新的shop的模块,可以并行的去管理更多主shop,那对应的就是我们逻辑电路里面的,这里面的这些位置有了非常多shop的模块,对应的X8的带宽呢,也调整到能够跟右边的这个shop相匹配的数据的传输的速率,那新的MV link模块,那右边的这个就是新的MV link模块,刚才讲到了应该是一共有零到63,也就64个MV link的对外的连接,所以说呢,英伟达新一代的DTX服务器呢,基本上一块MV呢。
14:15
就能够解决八台服务器的问题了,当然了,越多肯定扩能带宽越好,把我们的nv link全都用起来,因为这里面最重要的还是nv link的链路数,单个的速率呢,其实是没有提升的,里面的提升呢,更多的是靠制成的工艺的提升。在这个视频的最后,我们看一下DX服务器的一个整体的介绍,去看一下英伟达的V版,里面的芯片呢,跟MV link MV Switch之间,还有pcie之间是怎么组合起来的。
15:08
卷的不行了,卷的不行了,记得一键三连加关注哦,所有的内容都会开源在下面这条链接里面。拜了个拜。
我来说两句