高速全连接计算的硬件实现装置与方法制造方法及图纸

技术编号:21091198 阅读:27 留言:0更新日期:2019-05-11 10:33
本公开提供一种高速全连接计算的硬件实现装置与方法。根据本发明专利技术的高速全连接计算的硬件实现装置(200)包括:权重存储模块(210),用于存储用于计算的权重数据,每次存储m组权重数据,直到所有输出通道的权重计算完成;向量存储模块(220),用于存储n个输入向量数据;输出寄存模块(230),用于实现计算结果的输出缓存;核心计算模块(240),用于使得由所述权重存储模块输入的m组权重数据与由所述向量存储模块输入的n个输入向量数据进行相乘,各个相乘结果分别与之前的有效结果相加,并在乘加计算的结果上加上对应的偏置值,将最终计算结果输出到所述输出寄存模块。

Hardware Implementation Device and Method of High Speed Full Connection Computing

【技术实现步骤摘要】
高速全连接计算的硬件实现装置与方法
本专利技术涉及人工神经网络,更具体涉及高速全连接计算的硬件实现装置与方法。
技术介绍
深度学习(DeepLearning)的概念源于人工神经网络(ANN)的研究,是机器学习中一种基于对数据进行表征学习的方法。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合底层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习比较经典的网络AlexNet的网络模型是卷积层(conv)+池化层(pooling)+全连接层(fc)+softmax层,全连接层起到将学习到的分布式特征表示映射到样本标记空间的作用。全连接层的每一个结点都与上一层的所有结点相连,用来把前面提取到的特征综合起来。图1是一个简单的人工神经网络结构的示意图。如图1所示,前向计算过程就是一个线性的加权求和的过程,全连接层的每一个输出都可以看成前一层的每一个结点乘以一个权重系数W,最后加上一个偏置值b得到。用矩阵形式可表达为:。神经网络的全连接层(FC)运算中,每一个输入都要与所有的权重进行乘加运算,所以涉及计算的数据量大,硬件带宽需求高。针对这一特点进行合理的设计将可达到降低数据的硬件带宽需求,提高计算效率的目的。
技术实现思路
如上所述,本专利技术针对神经网络的全连接层运算中的上述特点进行合理的设计,以达到降低数据的硬件带宽需求,从而提高计算效率的目的。本专利技术设计了一种专用电路,用于实现神经网络全连接运算。本专利技术的目的在于提供一种FC加速器的实现装置,以便FC计算数据复用高、接口需求低,实现高算力、高性能。为了实现上述目的,结合FC计算量大的特点,本专利技术提供一种高速FC计算的硬件实现装置及方法。根据本专利技术的第一方面,提供一种高速全连接计算的硬件实现装置,其可以包括:权重存储模块,用于存储用于计算的权重数据,每次存储m组权重数据,直到所有输出通道的权重计算完成;向量存储模块,用于存储n个输入向量数据;输出寄存模块,用于实现计算结果的输出缓存;核心计算模块,用于使得由所述权重存储模块输入的m组权重数据与由所述向量存储模块输入的n个输入向量数据进行相乘,各个相乘结果分别与之前的有效结果相加,并在乘加计算的结果上加上对应的偏置值,将最终计算结果输出到所述输出寄存模块。在根据本专利技术第一方面的高速全连接计算的硬件实现装置中,针对所述权重存储模块中的权重数据存储、所述向量存储模块中的输入向量数据存储和所述核心计算模块中的中间计算结果存储,可以采用乒乓缓存。在根据本专利技术第一方面的高速全连接计算的硬件实现装置中,所述核心计算模块可以包括m*n个计算核,从而可以同时实现m组权重数据和n个输入向量的相乘运算。在根据本专利技术第一方面的高速全连接计算的硬件实现装置中,m和n的取值可以是以下情况之一:m=4,n=4;m=8,n=4;或m=4,n=8。根据本专利技术的第二方面,提供一种高速全连接计算的硬件实现方法,其可以包括:(1)加载m组权重数据到权重存储模块中存储;(2)请求输入向量数据并将接收到的n个输入向量数据存储在向量存储模块;(3)当所述权重存储模块和所述向量存储模块均有可进行计算的数据时,分别从上述两个模块读取m组权重数据和n个输入向量数据并送入核心计算模块;(4)所述核心计算模块对分别接收到的权重数据和输入向量数据进行相乘运算,并将各个相乘结果与之前的有效结果相加,依次流水完成输入通道的数据乘加运算;(5)将步骤(4)的乘加运算结果与对应的偏置数据相加,完成本次计算对应的输入通道的所有全连接运算,并将运算结果输出给输出寄存模块;(6)所述输出寄存模块输出结果数据给目标接口;(7)重复步骤(1)到(6),直到所有全连接运算完成。在根据本专利技术第二方面的高速全连接计算的硬件实现方法中,针对所述权重存储模块中的权重数据存储、所述向量存储模块中的输入向量数据存储和所述核心计算模块中的中间计算结果存储,可以采用乒乓缓存。在根据本专利技术第二方面的高速全连接计算的硬件实现方法中,所述核心计算模块可以包括m*n个计算核,从而在步骤(4)可以同时实现m组权重数据和n个输入向量的相乘运算。在根据本专利技术第二方面的高速全连接计算的硬件实现方法中,m和n的取值可以是以下情况之一:m=4,n=4;m=8,n=4;或m=4,n=8。根据本专利技术的第三方面,提供一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行高速全连接计算的硬件实现方法,可以包括如下操作:(1)加载m组权重数据到权重存储模块中存储;(2)请求输入向量数据并将接收到的n个输入向量数据存储在向量存储模块;(3)当所述权重存储模块和所述向量存储模块均有可进行计算的数据时,分别从上述两个模块读取m组权重数据和n个输入向量数据并送入核心计算模块;(4)所述核心计算模块对分别接收到的权重数据和输入向量数据进行相乘运算,并将各个相乘结果与之前的有效结果相加,依次流水完成输入通道的数据乘加运算;(5)将步骤(4)的乘加运算结果与对应的偏置数据相加,完成本次计算对应的输入通道的所有全连接运算,并将运算结果输出给输出寄存模块;(6)所述输出寄存模块输出结果数据给目标接口;(7)重复步骤(1)到(6),直到所有全连接运算完成。在根据本专利技术第三方面的计算机可读介质中,m和n的取值可以是以下情况之一:m=4,n=4;m=8,n=4;或m=4,n=8。附图说明下面参考附图结合实施例说明本专利技术。在附图中:图1是一个简单的人工神经网络结构的示意图;图2是根据本专利技术的高速全连接计算的硬件实现装置的示意图;图3是根据本专利技术的高速全连接计算的硬件实现方法的流程图;图4是根据本专利技术的第一优选实施例的硬件实现装置的示意图;图5是根据本专利技术的第二优选实施例的硬件实现装置的示意图。具体实施方式附图仅用于示例说明,不能理解为对本专利技术的限制。下面结合附图和实施例对本专利技术的技术方案做进一步的说明。为了实现本专利技术的目的,结合全连接(FC)计算量大的特点,本专利技术提供一种高速FC计算装置,该装置包括但不限于权重存储模块、向量存储模块、输出寄存模块和核心计算模块等。图2是根据本专利技术的高速全连接计算的硬件实现装置的示意图。如图2中所示,下面描述根据本专利技术的高速全连接计算的硬件实现装置200的组成。权重存储模块210:该模块存储用于计算的权重数据。本设计采用权重共享的方式实现FC功能,即每次将部分的权重与所有的输入完成运算后,再更新权重数据,直到所有的输入向量全部被计算完成。优选地,设计采用每次缓存4组权重,乒乓缓存,直到所有输出通道的权重计算完成。向量存储模块220:由于设计采用的权重共享实现,所以对向量存储的需求较低,当有例如4个输入数据有效时即可开始计算,计算流水进行,这样仅需在该模块增加一些寄存来实现少量数据的寄存即可,设计采用两组寄存器,每组可以寄存4个数据,乒乓实现。当输入数据接口的带宽不足时,可将其缓存适当扩大,防止对计算效率造成影响。输出寄存模块230:其设计与输入存储模块类似,实现计算结果的输出缓存,可根据接口带宽而调节输出缓存大小,防本文档来自技高网...

【技术保护点】
1.一种高速全连接计算的硬件实现装置,包括:权重存储模块,用于存储用于计算的权重数据,每次存储m组权重数据,直到所有输出通道的权重计算完成;向量存储模块,用于存储n个输入向量数据;输出寄存模块,用于实现计算结果的输出缓存;核心计算模块,用于使得由所述权重存储模块输入的m组权重数据与由所述向量存储模块输入的n个输入向量数据进行相乘,各个相乘结果分别与之前的有效结果相加,并在乘加计算的结果上加上对应的偏置值,将最终计算结果输出到所述输出寄存模块。

【技术特征摘要】
1.一种高速全连接计算的硬件实现装置,包括:权重存储模块,用于存储用于计算的权重数据,每次存储m组权重数据,直到所有输出通道的权重计算完成;向量存储模块,用于存储n个输入向量数据;输出寄存模块,用于实现计算结果的输出缓存;核心计算模块,用于使得由所述权重存储模块输入的m组权重数据与由所述向量存储模块输入的n个输入向量数据进行相乘,各个相乘结果分别与之前的有效结果相加,并在乘加计算的结果上加上对应的偏置值,将最终计算结果输出到所述输出寄存模块。2.根据权利要求1所述的装置,其中,针对所述权重存储模块中的权重数据存储、所述向量存储模块中的输入向量数据存储和所述核心计算模块中的中间计算结果存储采用乒乓缓存。3.根据权利要求1所述的装置,其中,所述核心计算模块包括m*n个计算核,从而同时实现m组权重数据和n个输入向量的相乘运算。4.根据权利要求1所述的装置,其中,m和n的取值是以下之一:m=4,n=4;m=8,n=4;或m=4,n=8。5.一种高速全连接计算的硬件实现方法,包括:(1)加载m组权重数据到权重存储模块中存储;(2)请求输入向量数据并将接收到的n个输入向量数据存储在向量存储模块;(3)当所述权重存储模块和所述向量存储模块均有可进行计算的数据时,分别从上述两个模块读取m组权重数据和n个输入向量数据并送入核心计算模块;(4)所述核心计算模块对分别接收到的权重数据和输入向量数据进行相乘运算,并将各个相乘结果与之前的有效结果相加,依次流水完成输入通道的数据乘加运算;(5)将步骤(4)的乘加运算结果与对应的偏置数据相加,完成本次计算对应的输入通道的所有全连接运算,并将运算结果输出给输出...

【专利技术属性】
技术研发人员:康君龙张玉谢东亮
申请(专利权)人:北京深鉴智能科技有限公司
类型:发明
国别省市:北京,11

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

1