00:00
爸爸,Hello,大家好,我是钟米,今天我们接着上一节课或者上一个汇报呢,给大家去讲了寒武纪科技里面的MU03的整体的芯片的架构,特别是它的cost,那现在我们呃,不再回顾整体的课程了,而是直接的进入到我们的寒武纪上一节里面给大家去汇报的寒武纪芯片的一个零三的架构,在上一期的内容里面呢,其实已经给大家汇报过MOU03的整个卡特里面呢,就分开了四个IPU,一个MPU作为协作,负责我们的share RA,把我们的内存,把我们的显存包的数据分发到给不同的IPU,今天呢,我们详细的去展开IPU和Lu里面的细节的内容,现在来打开看看m lu03里面的核心内容,就是它的I PU Co到底是长什么样子。
01:00
首先呢I呢,嗯,主要执行逻辑比较简单,首先呢就执行我们的指令控制,接着呢去做一些数据的搬运,把我们的数据呢,真正搬运到核心的模块里面,给我们的AI Co或者我们的pencil测Co进行计算,那整体的逻辑呢,没什么太多的神秘,那下面我们逐个模块来看看它的逻辑是怎么支持它的整体的运算的。那首先第一个很重要的核心呢,就是control unit,负责对我们的指令啊,特别是一些控制的指令,计算的指令进行读取译码,还有发射dispatch到真正的硬件去执行的,那这里面呢,提到指令发射呢,就很有意思了,因为它呃航武器里面呢,它的指令呢,是自研的指令,可以被负责计算和缓存的调度器dispatch到具体的alu了,T fu呢,还有v fu呢,当然还有两个DM里面那DM就是data memory ass这个模块去做。
02:00
这个队列并行呢,去做一个执行,那刚才提到的DMA啊,就是data memory access呢,这两个绿色的框框,实际上是实现我们PMY的DN读和写的操作,简单来说就是数据的搬运工,同时呢,它可以实现IPO里面的register,这里面呢,呃,这个和这个都是我们的寄存器嘛,实现我们的寄存器跟片内的web之间的一个读写的原子性的操作。另外的话,Move DMA呢,主要是实现我们右边的两个wait和VM之间的一个数据的传输和类型的转换,所以呢,可以看到IODMA,还有move DMA跟我们的weight w,还有W呢,是都放在下面,之间的物理距离呢,是比较近的。接着我们看看另外两个cash,这里面呢,有I cash和va cash,那I cash呢,具体指的是我们的指令的款存I是里面的大小只有64KB,假设航武机里面呢,每条指令是。
03:00
是512BIT,那64KB呢,就可以缓存1024,也也就是1000多条不同的指令,那具体有没有1000多条同的指令呢,我觉得应该是没有这么多的,因为整个IPU,它计算逻辑呢非常的简单,那第二个呢,就是V的cash v的catch,我觉得可以不用太过的去强调,其实它用的并不是很多,接着我们看看另外一个模块啊,就是我们的waitw和neal,这两个呢,你可以看到wait,呃,跟ne呢,其实是比较呃明确的的名字,首先呢,我们看看呢,一共有768KB,负责存储我们的输入的数据呢,还有我们中间产生的feature map的数据里面呢,就要求整个程序是需要16去对齐的,这个时候呢,就非常讲究我们程序怎么去写我们的科了,怎么去写我们的算子呢,或者我们的编译器呢,一定要做16BIT对齐,另外的话,第二个VM呢,就是我们的V图M,专门去存储我们的权重的数据或者优化器。
04:00
里面的一些数据,呃,说白了就是我们的静态内存,存的都是这个VM在里面,这里面的wait vm相比VM呢稍微大一点点,有1024KB,那这里面呢,需要巴比特去对齐的,接下来我们看看一个比较,呃,我觉得也是非常非常重要的模块,就是alu啊,作为一个标量的数据运算逻辑单元呢,大部分的基础的运算都会在alu里面,那AOCPU已经非常多了,包括我们的传统的GPU也是非常多,之前的视频呢也给大家去汇报过,那这里面有两个内容,一个是GPR,一个是SG啊,反正G呢,就是大家理解它为一个寄存器就行了,整个GPR的位宽呢有48倍的,除立提速以外呢,所有的操作呢,都会加载到GP里面,才能够参与A的算数逻辑的运算。另外的话,Sigg呢,就相对来说比GPR要。
05:00
小一点点呢,它的位宽是32BIT,用于存储一些硬件特定的属性,例如P计算的,还有另位的索引,那这些还是用的啊,基本上系统级的用了,我们真正的数据呢,会计算呢,会用在HGP,接着是最最最最最核心的内容,整个的AI的计算核心那有两个,一个是ten function unit,我们的t fu,一个是VE function unit,我们的呃,V fu啊,具体是实现张量的计算,向量的计算,最后就是输输出,那输输出呢,就是通过我们的wait vm和牛球VM,最后呢,通过我们的move DMA和iodma呢,把我们的数据搬运搬出,整体的逻辑呢,大概是这样的,现在我们看看整个IPU的指令流水,那刚才我们提到整个I开呢是缓存,我们的一个cash的,最后通过control unit呢,去把我们的数据或者把我们的指令呢从我们的ike获取出来。接着通过。
06:00
我们刚才层次的一个模块,其实呃,没怎么介绍,它是一个调度的模块,那这里面有个schedule,而我们的alu呢,V fu呢,T fu呢,还有两个VM呢,呃,并行的调入起来,最后他们可以执行流水的操作,可以并行的同时的去运算,那这里面呢,有四路流水,一路流水呢是A1U,另外一路流水呢,就是v fu和t fu,最后两路流水呢,就是数据的搬运,数据搬运分别为两路流水,而流水之间呢,A ruu,它可以踩踏重叠,做一个快速的复用,呃,T f u v fu也可以。而IO之间呢,就需要串行的进行搬运或执行相关的指令,在一款IPU里面,或者在一款AI芯片里面呢,复制完计算之后,我们需要把数据往外传,所以呢,有了m PU memory process unit,我们现在打开MPU整个的核心,那这里面呢,很重要的一个功能呢,就是单个cast之间。
07:00
这一个整一个的是他们内部的SHERA,粉粉的框框呢跟dog cast之间呢,就是she跟she之间互相的通讯的,主要是负责这个工作,那接着呢,我们看看MPU里面的一个核心,打开看看,那这里面呢,绿色的有两个比较重要的内容,一个A第一,一个呢是Costa DMA,另外一个呢是Google DMA,啊Costa DMA呢,就负责我们的cost跟Costa之间的数据的传输,那数据呢来源于我们的shem,负责IPO里面的GPR跟片外的内存,还有GPR跟SH,还有SHM跟DM之间的一个数据的传输,所以这个呢度更细,这个呢力度更大一点点,整体的需要ma这一个粉粉的拈呢,一共有CMB,有点类似于GPU里面的L缓存,在整个MPU里面最核心的模块呢,就是SHVM了,那SHVM呢,一共有4MB,相当于GPU里面对标。
08:00
的L1的缓存,主要是给出具体要需要等待计算和存储的数据了,现在我们看看MOU03里面的这个片类呢,通讯,片类的通讯到底是怎么样的,实际上呢,Costa的核心我们按照等级的力度去划分呢,它有一个Costa类的通讯,有个A之间的通讯,那这里面呢,有些小小的箭头啊,不知道大家刚才有没有留意这些小小的箭头,呃,我们已经立马进去了,就是我们的数据之间应该怎么去通讯的,我们在下面这个内容呢,就会给大家去汇报一下,现在我们看看右边的这个图,这个图非常感人,里面呢,我们把MPU啊里面只提取了share one来看看它之间的数据是怎么通路的,那需我们刚才可以简单的理解它为一个Le的存,L的存呢,通过move DMA呢,去把我们的数据呢搬进来,那数据搬进来之后呢,我们可以给到一个g PR xieg,或者相关的指令呢,给到I cash,真正要把我们的。
09:00
指令读取出来给到真正的运算的时候呢,是是通过真正的IO的DMA去把I cash的数据读取出来给到我们的controller,然后去分发,那controller去分发的时候呢,就就会通过S8呢,把数据读写和存储在we wem和neutral we里面,实现我们整个数据的通路,或者真正的核心的IPU的计算。那第二个内容呢,就是我们MPU跟MPU之间的通讯呢,那上面呢是整一块MPU,下面这个呢,就是SH呢,是另外一块MPU的一个简图,MPU跟M之间的通讯呢,就是通过Costa DMA之间进行通讯的,而小班之间呢,也可以通过刚才讲的那种方式呢,通过IPO进行通讯,那这个呢,是上一个简单的这一个内容,另外的话,我们可以看到它还有另外一个小箭头啊,最后呢,就是片外的显存或者HBM,它是通过SV走,我们的GODM呢,通过上面。
10:00
这次的这个global DMA呢,跟我们的DVM呢,真真进行一个互联互通,把数据搬进来,很快就到了我们差不多最后一个环节了,我们来思考一下,首先我提出第一个点就是寒武纪呢,它属于比较典型的自研的一个domain specific architecture,就自研的DA的计算架构呢,跟特斯拉都久的存算一体架构和BM的进存架构各自有什么优缺点吗?这个也是希望引起我们一个非常关于AI芯片很核心的一个思考。第二个呢,就是相对于GPU的通用架构而言,寒武纪的软件赞,我们都知道啊,它里面的指令都是自研的,那随着眼镜架构的发展呢,它有多大的继承性呢?哎呀,困得不行呢,现在已经接近两点多了,我录完要睡了,那我们简单的回顾了一下,就是主要是讲了MOU这个零三的第。
11:00
让它架构里面的一个Costa,一个简单的核心处呢,有四个IPU,一个MPU,然后我们打开看了IPU里面每个模块之间是怎么工作的,每个模块跟模块之间怎么配合,接着我们看呢,MPU里面也是每个模块怎么工作的,最后来到了就是互联互通,我们的数据应该怎么传输和计算,那就去看我们的数据的链路的流动的方式,通过我们的DMA呢,跟我们的VM之间呢,怎么去互相的传输的,那今天的内容呢,就到这里为止。现在中米会把所有的视频呢,一对一的全部都展开在这里面,每个视频都有详细的介绍哦,欢迎打开和吐槽,给我一键三连给我一键三连啊,谢谢各位,拜了个拜。
我来说两句