《智能计算系统》第七章

第七章 深度学习处理器架构

​ 为了满足智能终端的实际应用需求,DLP-S在DLP的基础上对控制部件、运算部件和存储部件进行了优化,在降低功耗的同时提升了性能。

7.1 单核深度学习处理器

​ DLP-S在DLP的基础上进行了优化,主要体现在如下四个方面:

​ (1)在控制模块中设计了多发射队列,使得没有依赖关系的指令可以并行发射,从而支持指令级并行。

​ (2)在向量运算单元中添加更多的运算操作组合,提高性能和灵活性。

​ (3)在矩阵运算单元中采用低位宽的运算器,并且支持稀疏数据,减少运算能耗。

​ (4)在存储模块中采用TLB和LLC减少了访存的延迟。

7.1.1 总体架构

​ 图为DLP-S的总体架构示意图。DLP-S包括三大模块,即控制模块、运算模块和存储模块。

​ 控制模块包括取指单元IFU(Instruction Fetch Unit)和指令译码单元IDU(Instruction Decode Unit)。运算模块包括向量运算单元VFU(Vector Function Unit)和矩阵运算单元MFU(Matrix Function Unit)。存储模块包括权重存储单元WRAMW(Weight RAM)和神经元存储单元NRAM(Neuron RAM)和直接内存存取单元DMA(Direct Memory Access)。

​ DLP-S执行一次深度学习运算的流程具体如下:

​ (1)IFU通过DMA从DRAM中读取程序指令,然后经过IDU 进行译码后分发给DMA、VFU 和 MFU。

​ (2)DMA接收到访存指令(读tensor指令,包括地址, 数据量等信息)后从DRAM读取神经元tensor至NRAM,读取权值tensor至WRAM。

​ (3)VFU接收到指令后从NRAM中读取神经元tensor,并对神经元tensor进行预处理(如边界扩充等),然后发送给MFU。

​ (4)MFU接收到指令后从VFU接收经过预处理的神经元tensor,并从WRAM中读取权重tensor,完成矩阵运算后将结果发送给VFU。

​ (5)VFU对输出神经元tensor进行后处理(如激活、池化等)。

​ (6)VFU将运算结果tensor写回NRAM。

​ (7)DMA将输出神经元tensor从NRAM写回到DRAM。

​ 由上述流程可以知道神经元tensor数据流的走向为:DRAM->NRAM->VFU->(MFU->VFU->)NRAM->DRAM,权重的数据流走向为:DRAM->WRAM->MFU。

7.1.2 控制模块

​ 控制模块负责取指令和翻译指令两个基本功能,这两个功能分别由IFU和IDU完成。

​ IFU抽象视图如下:

包括地址生成器AGU(Address Generator Unit)、 指令高速缓存ICache(Instruction Cache)、指令回填单元RB(Refill Buffer)、指令队列IQ(Instruction Queue,用来缓存PC和指令)。

​ IFU首先通过AGU得到当前PC值,如果PC在ICache命中,则直接从ICache中读出指令,如果不命中,将PC和预取指令条数发给RB,RB向DMA发送指令回填请求,DMA根据PC从DRAM读取对应的指令到ICache中,完成取指令操作。

​ IDU的抽象视图如下:

包括译码单元Decoder 、指令发射队列(Issue Queue):Control IQ,Compute IQ,Memory Access IQ和算数逻辑单元ALU。

​ Decoder接收来自IFU的指令并进行译码,然后根据指令类型发送给对应的指令发射队列。指令具体分为三类:控制指令、运算指令和访存指令。在三类指令在没有依赖关系的情况下可以并行执行,三个队列也是队内有序,队间无序,但是如果不同队列的指令间存在依赖关系,就会在两者之间插入同步指令(SYNC),以保证程序执行的正确性。最后ALU用来完成标量运算和分支跳转等功能。

7.1.3 运算模块

​ 运算模块包括向量运算单元VFU和矩阵运算单元MFU。

​ 向量运算单元VFU完成输入神经元的前处理和输出神经元的后处理 ,包括向量流水单元和转置单元,向量流水单元承载向量运算功能,转置单元承载数据重新摆放功能。

​ MFU采用分布式设计,由M个PE构成,M个PE之间采用H树的方式进行连接,采用低位宽定点运算器减少MFU的功耗。

7.1.4 存储单元

​ DLP-S的存储单元主要包括NRAM、WRAM和DMA三个部分,将内部的SRAM和外部的DRAM统一编址,称为虚拟地址,这样可以直接实现内部SRAM的高速访问和外部DRAM的间接访问。需要注意的是,片内无需虚实地址转换,片内外需要虚实地址转换。并且DLP-S为了减少对DRAM的访存开销,设计了TLB缓存常用页表以及LLC缓存经常访问的DRAM数据。

7.2 多核深度学习处理器

​ DLP-M采用多核处理器分层结构设计,如图所示,DLP-M可以分为Chip-Cluster-Core三个层级,即一个DLP-M由多个DLP-C互联构成,一个DLP-C由多个DLP-S构成。

​ 在Chip层级,DLP-M包括五个部分,外部存储控制器 、外设通信模块 、片上互联模块 、同步模块GBC(Global Barrier Controller)和四个DLP-C。

​ 在Cluster层级,一个DLP-C由四个DLP-S 和一个存储核MEMCORE(Memory Core)构成。

​ 存储核主要功能是存储和通信。存储:DLP-S共享数据 ,通信:DLP-C与片外DRAM,DLP-C之间,多个DLP-S之间的通信。

作者

Cindy

发布于

2021-12-03

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×