本发明专利技术实施例公开了一种神经网络加速系统和方法,所述系统包括:数据处理模块,用于将卷积神经网络计算的输入数据从浮点数转为定点数;特征图拆分模块,用于根据第一预设规则将输入数据拆分为多个计算特征图qd
A neural network acceleration system and method
【技术实现步骤摘要】
一种神经网络加速系统和方法
本专利技术实施例涉及神经网络技术,尤其涉及一种神经网络加速系统和方法。
技术介绍
卷积神经网络在过去几年中取得显著发展,它目前是许多智能系统的基本工具。但是为了提高图像分类、图像识别等准确率,卷积神经网络的计算复杂度和对存储资源的消耗也在不断增加。因此,卷积神经网络加速已成为一个热门课题。对于卷积神经网络的硬件实现,近年来已经提出了一批基于FPGA或ASIC的加速器。这些加速器的设计从不同的方面来对卷积神经网络进行优化,例如优化卷积神经网络的计算资源,优化数据的输出,优化计算资源和片下存储器的访问等待。然而这些加速器的设计通常将卷积神经网络算法当成一个小黑盒,只优化了硬件结构,容易造成硬件加速后的卷积神经网络计算的准确率下降。
技术实现思路
有鉴于此,本专利技术实施例提供一种神经网络加速系统和方法,以减少神经网络计算需要使用的逻辑资源,提高数据传输速度。第一方面,本专利技术实施例提供一种神经网络加速系统,包括:数据处理模块,用于将卷积神经网络计算的输入数据从浮点数转为定点数;特征图拆分模块,用于根据第一预设规则将输入数据拆分为多个计算特征图qdj;第一计算模块,用于根据第二预设规则对每个计算特征图qdj进行计算得到多个第一输出特征图qoi;累加模块,用于依次对所有第一输出特征图qoi进行累加得到第二输出特征图;第二计算模块,用于根据第三预设规则对所述第二输出特征图进行处理得到输出数据。进一步的,所述第一计算模块包括:权值存储器,用于存储权值qw;卷积计算单元,用于根据所述计算特征图qdj和所述权值qw进行卷积计算得到第一输出特征图的第一部分支路加法树单元,用于根据第四预设规则对将所述计算特征图qdj进行计算得到第一输出特征图的第二部分第一输出特征图计算单元,用于将所述第一输出特征图的第一部分和所述第一输出特征图的第二部分相减得到所述第一输出特征图qoi。进一步的,所述数据处理模块还用于将所述权值存储器内存储的权值qw转化为定点数。进一步的,所述特征图拆分模块具体用于:根据预设步长将输入数据拆分为多个包括3*3矩阵数据结构的计算特征图qdj。进一步的,所述第二计算模块包括:偏置模块,用于将所述第二输出特征图加上预设偏置参数,得到输出偏置特征图;量化模块,用于将所述输出偏置特征图与预设量化参数进行计算,得到输出数据。进一步的,所述数据处理模块包括:第一数据处理单元,用于将卷积神经网络计算的输入数据从浮点数转为带符号定点数;第二数据处理单元,用于将带符号定点数转化为无符号定点数。第二方面,本专利技术实施例提供一种神经网络加速方法,包括:将卷积神经网络计算的输入数据从浮点数转为定点数;根据第一预设规则将输入数据拆分为多个计算特征图qdj;根据第二预设规则对每个所述计算特征图qdj进行计算得到多个第一输出特征图qoi;依次对所有第一输出特征图qoi进行叠加得到第二输出特征图;根据第三预设规则对所述第二输出特征图进行处理得到输出数据。进一步的,所述根据第二预设规则对每个所述计算特征图qdj进行计算得到多个第一输出特征图qoi包括:获取所述计算特征图qdj对应的权值qw;根据所述计算特征图qdj和所述权值qw进行卷积计算得到第一输出特征图的第一部分根据第四预设规则对所述计算特征图qdj进行计算得到第一输出特征图的第二部分将所述第一输出特征图的第一部分和所述第一输出特征图的第二部分相减得到所述第一输出特征图qoi。进一步的,所述根据第三预设规则对所述第二输出特征图进行处理得到输出数据包括:将所述第二输出特征图加上偏置参数,得到输出偏置特征图;将所述输出偏置特征图与量化参数进行计算,得到输出数据。进一步的,所述将卷积神经网络计算的输入数据从浮点数转为定点数包括:将卷积神经网络计算的输入数据从浮点数转为带符号定点数;将带符号定点数转化为无符号定点数。本专利技术实施例通过数据处理模块,用于将卷积神经网络计算的输入数据从浮点数转为定点数;特征图拆分模块,用于根据第一预设规则将输入数据拆分为多个计算特征图qdj;第一计算模块,用于根据第二预设规则对每个计算特征图qdj进行计算得到多个第一输出特征图qoi;累加模块,用于依次对所有第一输出特征图qoi进行累加得到第二输出特征图;第二计算模块,用于根据第三预设规则对所述第二输出特征图进行处理得到输出数据。通过将浮点数转化为定点数,使得卷积神经网络的计算在需要更少的逻辑资源的同时不影响计算的准确性,占用的存储资源也大幅减少,数据传输速度加快。附图说明图1为本专利技术实施例一提供的一种神经网络加速系统的结构示意图;图2为本专利技术实施例一中一个输入特征图的示意图;图3为本专利技术实施例一中输入特征图拆分为计算特征图的示意图;图4为本专利技术实施例二提供的一种神经网络加速系统的结构示意图;图5为本专利技术实施例三提供的一种神经网络加速系统的结构示意图;图6为本专利技术实施例四提供的一种神经网络加速系统的结构示意图;图7为本专利技术实施例五提供的一种神经网络加速方法的流程示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一计算模块为第二计算模块,且类似地,可将第二计算模块称为第一计算模块。第一计算模块和第二计算模块两者都是计算模块,但其不是同一计算模块。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本专利技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。实施例一图1为本专利技术实施例一提供的一种神经网络加速系统的结构示意图,可适用于卷积神经网络的计算。如图1所示,本专利技术实施例一提供的一种神经网络本文档来自技高网...
【技术保护点】
1.一种神经网络加速系统,其特征在于,包括:/n数据处理模块,用于将卷积神经网络计算的输入数据从浮点数转为定点数;/n特征图拆分模块,用于根据第一预设规则将输入数据拆分为多个计算特征图qd
【技术特征摘要】
1.一种神经网络加速系统,其特征在于,包括:
数据处理模块,用于将卷积神经网络计算的输入数据从浮点数转为定点数;
特征图拆分模块,用于根据第一预设规则将输入数据拆分为多个计算特征图qdj;
第一计算模块,用于根据第二预设规则对每个计算特征图qdi进行计算得到多个第一输出特征图qoi;
累加模块,用于依次对所有第一输出特征图qoi进行累加得到第二输出特征图;
第二计算模块,用于根据第三预设规则对所述第二输出特征图进行处理得到输出数据。
2.如权利要求1所述的系统,其特征在于,所述第一计算模块包括:
权值存储器,用于存储权值qw;
卷积计算单元,用于根据所述计算特征图qdj和所述权值qw进行卷积计算得到第一输出特征图的第一部分
支路加法树单元,用于根据第四预设规则对将所述计算特征图qdj进行计算得到第一输出特征图的第二部分
第一输出特征图计算单元,用于将所述第一输出特征图的第一部分和所述第一输出特征图的第二部分相减得到所述第一输出特征图qoi。
3.如权利要求2所述的系统,其特征在于,所述数据处理模块还用于将所述权值存储器内存储的权值qw转化为定点数。
4.如权利要求1所述的系统,其特征在于,所述特征图拆分模块具体用于:
根据预设步长将输入数据拆分为多个包括3*3矩阵数据结构的计算特征图qdj。
5.如权利要求1所述的系统,其特征在于,所述第二计算模块包括:
偏置模块,用于将所述第二输出特征图加上预设偏置参数,得到输出偏置特征图;
量化模块,用于将所述输出偏置特征图与预设量化参数进行计算,得到输出数据。
6.如权利要求1所述的系统...
【专利技术属性】
技术研发人员:李远超,蔡权雄,牛昕宇,
申请(专利权)人:深圳鲲云信息科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。