当前位置: 首页 > 专利查询>浙江大学专利>正文

深度神经网络硬件加速的数据输入装置与方法制造方法及图纸

技术编号:20390826 阅读:37 留言:0更新日期:2019-02-20 03:13
本发明专利技术提供了一种深度神经网络硬件加速的数据输入装置,包括PE阵列组、三重输入缓冲、权重缓冲、输出缓冲和控制器;三重输入缓冲与PE阵列组一一对应的相连,且PE阵列组和输出缓冲一一对应的相连;每个三重输入缓冲通过总线与输入特征图存储区相连;控制器分别与输入特征图存储区以及每个三重输入缓冲相连;权重缓冲通过总线与权重存储区相连,且权重缓冲与每个PE阵列组相连;每个输出缓冲通过总线与输出特征图存储区相连。本发明专利技术还提供一种利用上述装置进行的深度神经网络硬件加速的数据输入方法,通过对三重输入缓冲的设计,实现数据传输时时延隐藏的目的的同时使数据重叠的部分可以直接复用,提高数据的复用率。

【技术实现步骤摘要】
深度神经网络硬件加速的数据输入装置与方法
本专利技术涉及神经网络算法的硬件加速实现设计领域,具体为深度神经网络硬件加速的数据输入装置与方法。
技术介绍
深度学习是机器学习的一个分支,相比于传统机器学习,深度学习可以从数据中学习更加复杂的特征表达,使得权重学习更加有效。深度学习目前推广到了机器学习的各个领域,在计算机视觉任务(如目标分类和识别、自动驾驶和手写识别)、大数据分析、自动语音识别等应用都接近了人类判别的性能。而深度神经网络具有更多的网络层数和参数个数,能够提取更加丰富的数据特征,从而使得机器学习获取更好的学习效果,卷积神经网络则是其中一种被广泛应用的结构。卷积神经网络的基本结构由卷积层、池化层、非线性层以及全连接层组成,其中核心层级结构是卷积层,其最大的特点就是局部感知和权值共享。利用层间局部空间相关性将相邻每一层的神经元节点只与和它相近的上层神经元节点连接,即局部感知。权值共享则是在卷积神经网络中,卷积层的每一个卷积滤波器重复的作用于整个感受野中,对输入图像进行卷积,卷积结果构成了输入图像的特征图,提取出图像的局部特征。卷积神经网络兼具高计算密集与访存密集的特点,而传统的通用计算平台CPU无法提供足够的计算算力,难以达到应用对实时性的要求。为解决上述问题,很多研究针对神经网络的特性,设计了相应的加速器,硬件平台包括FPGA(可编程逻辑阵列)、ASIC(专用集成电路)等。已有的神经网络加速器多采用二维空间结构,通过数据局部性和网络稀疏性来达到更高的能效,但未发掘片外存储到片上缓冲的数据复用。
技术实现思路
本专利技术要解决的技术问题是提供一种用于深度神经网络硬件加速的数据传输装置,以及利用该数据传输装置进行的数据传输方法,提高数据复用率,减小对带宽的需求,高效供给数据。为解决上述技术问题,本专利技术提出一种深度神经网络硬件加速的数据输入装置,数据输入装置与外部存储相连;所述外部存储中存放用于计算的输入特征图存储区、权重存储区以及输出特征图存储区;所述数据输入装置包括PE阵列组、三重输入缓冲、权重缓冲、输出缓冲和控制器;所述PE阵列组、三重输入缓冲和输出缓冲的数量均至少为1;所述三重输入缓冲与PE阵列组一一对应的相连,且PE阵列组和输出缓冲一一对应的相连;每个三重输入缓冲通过总线与输入特征图存储区相连;所述控制器分别与输入特征图存储区以及每个三重输入缓冲相连;所述权重缓冲通过总线与权重存储区相连,且权重缓冲与每个PE阵列组相连;每个输出缓冲通过总线与输出特征图存储区相连。作为本专利技术深度神经网络硬件加速的数据输入装置的改进:所述PE阵列组包括自适应移位取数单元Ⅰ、自适应移位取数单元Ⅱ、PE阵列Ⅰ、PE阵列Ⅱ以及累加单元;所述自适应移位取数单元Ⅰ和自适应移位取数单元Ⅱ均与三重输入缓冲相连;所述PE阵列Ⅰ分别与自适应移位取数单元Ⅰ、权重缓冲和累加单元相连;所述PE阵列Ⅱ分别与自适应移位取数单元Ⅱ、权重缓冲和累加单元相连;所述累加单元还与输出缓冲相连;所述PE阵列Ⅰ和PE阵列Ⅱ的大小为mxn,其中m表示该PE阵列可同时计算的卷积核个数,对应m个通道的输入特征图数据;n表示该PE阵列可同时计算的输出单元数,对应输入特征图数据上同一行的相邻n个输出。作为本专利技术深度神经网络硬件加速的数据输入装置的进一步改进:所述三重输入缓冲由缓冲区Ⅰ、缓冲区Ⅱ和缓冲区Ⅲ组成;所述缓冲区Ⅱ与的输入特征图存储区相连,用于读取输入特征图数据,并将其交错拷贝一份到缓冲区Ⅰ或缓冲区Ⅲ中;所述缓冲区Ⅰ和缓冲区Ⅲ均与对应的PE阵列组相连,PE阵列组交错读取缓冲区Ⅰ和缓冲区Ⅲ的数据作为输入。作为本专利技术深度神经网络硬件加速的数据输入装置的进一步改进:所述自适应移位取数单元Ⅰ由控制单元Ⅰ、移位寄存器Ⅰ以及移位操作计数器Ⅰ组成;所述控制单元Ⅰ分别与移位寄存器Ⅰ和移位操作计数器Ⅰ相连;所述移位寄存器Ⅰ分别与三重输入缓冲、PE阵列Ⅰ和控制单元Ⅰ相连;所述自适应移位取数单元Ⅱ由控制单元Ⅱ、移位寄存器Ⅱ以及移位操作计数器Ⅱ组成;所述控制单元Ⅱ分别与移位寄存器Ⅱ和移位操作计数器Ⅱ相连;所述移位寄存器Ⅱ分别与三重输入缓冲Ⅱ、PE阵列Ⅱ和控制单元Ⅱ相连。为解决上述技术问题,本专利技术还提出一种利用上述数据输入装置进行深度神经网络硬件加速的数据输入方法,包括以下步骤:S1、数据从外部存储传输到三重输入缓冲和权重缓冲;S2、每个PE阵列组分别读取与其相连的三重输入缓冲和权重缓冲中数据进行计算;S3、每个PE阵列组将步骤S2中计算结果存入输出缓冲,输出缓冲将其存入外部存储。作为深度神经网络硬件加速的数据输入方法的改进:所述数据包括权重数据和输入特征图数据;所述权重数据从权重存储区传输到权重缓冲;所述控制器控制输入特征图数据从输入特征图存储区传输到三重输入缓冲。作为深度神经网络硬件加速的数据输入方法的进一步改进:所述控制器控制输入特征图数据从输入特征图存储区传输到三重输入缓冲的步骤如下:注:控制器、三重输入缓冲为上述深度神经网络硬件加速的数据输入装置中的控制器和三重输入缓冲,故不再对其构成及信号传递关系做详细介绍。A、初始化源地址Rsrc、目标地址Rdst和取数行数寄存器Rline:所述三重输入缓冲的缓冲区Ⅱ首次访问输入特征图存储区时,控制器将源地址Rsrc和目标地址Rdst初始化为0,将取数行数寄存器Rline初始化为(K+1)/2;所述源地址Rsrc的值表示此次取数对应输入特征图数据的位置,此时相对首地址的实际偏移量为(WxC)xRsrc;所述目标地址Rdst的值表示此次取数存放在三重输入缓冲中的位置,此时相对缓冲区Ⅱ首地址的实际偏移量为(WxC)xRdst;所述取数行数Rline的值表示此次读取数据块(WxC)的块数,一次取数为(WxC)xRline的一组数据;注:输入特征图数据的尺寸为WxH,通道数为C。W代表输入特征图数据的宽,H代表输入特征图数据的高;三重输入缓冲总容量为3x(KxWxC/2),其中K表示卷积核尺寸。B、从(WxC)xRsrc处读取(WxC)xRline数据到三重输入缓冲的(WxC)xRdst位置(取数操作):所述控制器从相对输入特征图数据存储首地址偏移(WxC)xRsrc处读取(WxC)xRline的数据到三重输入缓冲的缓冲区Ⅱ中相对首地址偏移(WxC)xRdst的位置;C、更新Rsrc数值为(Rsrc+Rline),更新Rdst数值为(Rdst+Rline)%K:所述三重输入缓冲的缓冲区Ⅱ完成步骤B后,控制器将Rsrc的数值更新为(Rsrc+Rline),即下一组数据从上一组数据的结束处继续读取;所述控制器还将Rdst的数值更新为(Rdst+Rline)%K,即下一组数据的存放位置从上一组数据的结束处开始;D、判断是否为最后一组数:所述控制器根据步骤C更新后Rsrc判断此次取数是否为最后一组数;步骤C更新后的Rsrc=H,则判断结果为最后一组数,否则判断结果为非最后一组数;①、当判断结果为最后一组数时,则下一组数为下一个输出特征图第一行对应的输入数据,此时控制器将Rsrc、Rdst重置为0,将Rline更新为(K+1)/2;②、当判断结果为非最后一组数时,则进一步对Rsrc的数值进行判断,从而确定下一组输入数据需要读取的行数;E、重复上述步骤本文档来自技高网...

【技术保护点】
1.深度神经网络硬件加速的数据输入装置,数据输入装置(100)与外部存储(200)相连;所述外部存储(200)中存放用于计算的输入特征图存储区(210)、权重存储区(220)以及输出特征图存储区(230);其特征在于:所述数据输入装置(100)包括PE阵列组(110)、三重输入缓冲(120)、权重缓冲(130)、输出缓冲(140)和控制器(150);所述PE阵列组(110)、三重输入缓冲(120)和输出缓冲(140)的数量均至少为1;所述三重输入缓冲(120)与PE阵列组(110)一一对应的相连,且PE阵列组(110)和输出缓冲(140)一一对应的相连;每个三重输入缓冲(120)通过总线与输入特征图存储区(210)相连;所述控制器(150)分别与输入特征图存储区(210)以及每个三重输入缓冲(120)相连;所述权重缓冲(130)通过总线与权重存储区(220)相连,且权重缓冲(130)与每个PE阵列组(110)相连;每个输出缓冲(140)通过总线与输出特征图存储区(230)相连。

【技术特征摘要】
1.深度神经网络硬件加速的数据输入装置,数据输入装置(100)与外部存储(200)相连;所述外部存储(200)中存放用于计算的输入特征图存储区(210)、权重存储区(220)以及输出特征图存储区(230);其特征在于:所述数据输入装置(100)包括PE阵列组(110)、三重输入缓冲(120)、权重缓冲(130)、输出缓冲(140)和控制器(150);所述PE阵列组(110)、三重输入缓冲(120)和输出缓冲(140)的数量均至少为1;所述三重输入缓冲(120)与PE阵列组(110)一一对应的相连,且PE阵列组(110)和输出缓冲(140)一一对应的相连;每个三重输入缓冲(120)通过总线与输入特征图存储区(210)相连;所述控制器(150)分别与输入特征图存储区(210)以及每个三重输入缓冲(120)相连;所述权重缓冲(130)通过总线与权重存储区(220)相连,且权重缓冲(130)与每个PE阵列组(110)相连;每个输出缓冲(140)通过总线与输出特征图存储区(230)相连。2.根据权利要求1所述的深度神经网络硬件加速的数据输入装置,其特征在于:所述PE阵列组(110)包括自适应移位取数单元Ⅰ(111)、自适应移位取数单元Ⅱ(115)、PE阵列Ⅰ(112)、PE阵列Ⅱ(113)以及累加单元(114);所述自适应移位取数单元Ⅰ(111)和自适应移位取数单元Ⅱ(115)均与三重输入缓冲(120)相连;所述PE阵列Ⅰ(112)分别与自适应移位取数单元Ⅰ(111)、权重缓冲(130)和累加单元(114)相连;所述PE阵列Ⅱ(113)分别与自适应移位取数单元Ⅱ(115)、权重缓冲(130)和累加单元(114)相连;所述累加单元(114)还与输出缓冲(140)相连;所述PE阵列Ⅰ(112)和PE阵列Ⅱ(113)的大小为mxn,其中m表示该PE阵列可同时计算的卷积核个数,对应m个通道的输入特征图数据;n表示该PE阵列可同时计算的输出单元数,对应输入特征图数据上同一行的相邻n个输出。3.根据权利要求1或2所述的深度神经网络硬件加速的数据输入装置,其特征在于:所述三重输入缓冲(120)由缓冲区Ⅰ、缓冲区Ⅱ和缓冲区Ⅲ组成;所述缓冲区Ⅱ与的输入特征图存储区(210)相连,用于读取输入特征图数据,并将其交错拷贝一份到缓冲区Ⅰ或缓冲区Ⅲ中;所述缓冲区Ⅰ和缓冲区Ⅲ均与对应的PE阵列组(110)相连,PE阵列组(110)交错读取缓冲区Ⅰ和缓冲区Ⅲ的数据作为输入。4.根据权利要求3所述的深度神经网络硬件加速的数据输入装置,其特征在于:所述自适应移位取数单元Ⅰ(111)由控制单元Ⅰ(1111)、移位寄存器Ⅰ(1112)以及移位操作计数器Ⅰ(1113)组成;所述控制单元Ⅰ(1111)分别与移位寄存器Ⅰ(1112)和移位操作计数器Ⅰ(1113)相连;所述移位寄存器Ⅰ(1112)分别与三重输入缓冲(120)、PE阵列Ⅰ(112)和控制单元Ⅰ(1111)相连;所述自适应移位取数单元Ⅱ(115)由控制单元Ⅱ、移位寄存器Ⅱ以及移位操作计数器Ⅱ组成;所述控制单元Ⅱ分别与移位寄存器Ⅱ和移位操作计数器Ⅱ相连;所述移位寄存器Ⅱ分别与三重输入缓冲Ⅱ、PE阵列Ⅱ(113)和控制单元Ⅱ相连。5.利用如权利要求1~4任一所述的数据输入装置进行深度神经网络硬件加速的数据输入方法,其特征在于包括以下步骤:S1、数据从外部存储(200)传输到三重输入缓冲(120)和权重缓冲(130);S2、每个PE阵列组(110)分别读取与其相连的三重输入缓冲(120)和权重缓冲(130)中数据进行计算;S3、每个PE阵列组(110)将步骤S2中计算结果存入输出缓冲(140),输出缓冲(140)将其存入外部存储(200)。6.根据权利要求5所述的深度神经网络硬件加速的数据输入方法,其特征在于:所述数据包括权重数据和输入特征图数据;所述权重数据从权重存储区(220)传输到权重缓冲(130);所述控制器(150)控制输入特征图数据从输入特征图存储区(210)传输到三重输入缓冲(120)。7.根据权利要求6所述的深度神经网络硬件加速的数据输入方法,其特征在于:所述控制器(150)控制输入特征图数据从输入特征图存储区(210)传输到三重输入缓冲(120)的步骤如下:A、初始化源地址Rsrc、目标地址Rdst和取数行数寄存器Rline:所述三重输入缓冲(120)的缓冲区Ⅱ首次访问输入特征图存储区(210)时,控制器(150)将源地址Rsrc和目标地址Rdst初始化为0,将取数行数寄存器Rline初始化为(K+1)/2;所述源地址Rsrc的值表示此次取数对应输入特征图数据的位置,此时相对首地址的实...

【专利技术属性】
技术研发人员:刘鹏黄心忆李宏亮
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1