本发明专利技术公开了一种稀疏加速单元、计算方法及稀疏神经网络硬件加速系统。所述稀疏加速单元,包括N个计算单元和i级稀疏加法树,所述计算单元为乘法器结构,所述稀疏加法树采用二叉树结构连接,即:上一级稀疏加法树的稀疏加法器数量是下一级的两倍,上一级的每两个稀疏加法器同时连接下一级的一个稀疏加法器;第一级稀疏加法树的稀疏加法器数量为N/2;各级稀疏加法树的稀疏加法器数据位宽依次递增1bit。所述稀疏神经网络硬件加速系统,包括多个所述稀疏加速单元,可兼容多种稀疏神经网络算法模型。本发明专利技术还公开了一种稀疏加速计算方法,基于稀疏加速单元硬件架构解决了稀疏矩阵不规则计算问题,同时在不损失效率下兼容密集型矩阵运算加速。阵运算加速。阵运算加速。
【技术实现步骤摘要】
稀疏加速单元、计算方法及稀疏神经网络硬件加速系统
[0001]本专利技术涉及集成电路领域及人工智能领域,具体涉及系统级别的集成电路芯片领域,特别涉及一种稀疏加速单元、计算方法及稀疏神经网络硬件加速系统。
技术介绍
[0002]神经网络已经在图像识别、目标检测、语音识别和自然语言处理等诸多领域受到广泛应用, 并逐渐成为主导算法,但是,复杂的人工智能应用通常需要更复杂的更深的神经网络模型,这些模型包含庞大的参数量和运算量。尽管最近的研究进展表明,网络压缩例如模型剪枝已成为减轻计算负担的有效手段,但模型剪枝引起的神经网络连接不规则性,阻止了现有的运算加速器如CPU、GPU、FPGA等充分利用神经网络的稀疏性。此外,大多数现有的运算加速器都聚焦于密集型的深度神经网络,无法高效解决稀疏神经网络模型中不规则的计算问题。
技术实现思路
[0003]为克服现有技术存在的缺陷,本专利技术公开了一种稀疏加速单元、计算方法及稀疏神经网络硬件加速系统。
[0004]本专利技术所述稀疏加速单元,包括N个计算单元和i级稀疏加法树,其中i=log2N, 所述计算单元为乘法器结构,所述稀疏加法树采用二叉树结构连接,即:上一级稀疏加法树的稀疏加法器数量是下一级的两倍,上一级的每两个稀疏加法器同时连接下一级的一个稀疏加法器; 第一级稀疏加法树的稀疏加法器数量为N/2;各级稀疏加法树的稀疏加法器数据位宽依次递增1bit;所述稀疏加法器的功能为:若本次输入的两组数据索引相同,则将两个输入数据相加作为输出结果,并将两组数据索引中任意一个作为输出索引;否则将数据索引较小的一组输入数据和数据索引作为输出结果,将数据索引较大的一组数据锁存,同时从数据索引较小的一组输入端口载入新的数据进行下一次运算;优选的,所述稀疏加法器包括比较器、加法器和寄存器,比较器和加法器的两个输入端分别连接稀疏加法器的两个输入端,比较器的输出端连接加法器和输出控制器,加法器的输出端连接输出控制器,所述输出控制器连接加法器的输出端、比较器的输出端和稀疏加法器的输出端,并连接寄存器,由输出控制器根据比较器的比较结果进行输出和数据锁存。
[0005]稀疏神经网络硬件加速系统,包括稀疏存储编解码模块和与稀疏存储编解码模块连接的稀疏数据中间处理模块,所述稀疏数据中间处理模块还连接有权重分配模块和移位寄存器单元,所述权重分配模块和移位寄存器单元均连接有多个稀疏加速单元,所述稀疏加速单元还连接有输出处理模块,所述输出处理模块的输出端与所述稀疏数据中间处理模块连接;优选的,所述稀疏数据中间处理模块包括全局缓存和与全局缓存连接的多组数据
预处理单元,所述数据预处理单元包括相互连接的算数逻辑单元和数据整形单元,所述全局缓存与所述输出处理模块的输出端连接;优选的,所述输出处理模块包括与每个稀疏加速单元连接的一个输出缓存,各个输出缓存连接数据处理单元。
[0006]稀疏加速计算方法,基于稀疏神经网络硬件加速系统,包括如下步骤:步骤1. 按照计算配置对输入数据进行预取和排布形成稀疏矩阵,稀疏矩阵的维度为稀疏加速单元中计算单元的数量N;步骤2. 对所述稀疏矩阵采用列索引稀疏编码方法,即编码为(有效元素值,列索引)的形式,逐行输入所述稀疏加速单元,逐行输入即每一时钟周期输入稀疏矩阵一行的数据;步骤3.所述稀疏加速单元进行计算并输出结果;优选的,所述步骤1中稀疏矩阵数量为多个,对每一稀疏矩阵分别重复步骤1至3,输出结果暂存在全局缓存中,当全部稀疏矩阵计算完成后,在全局缓存中的全部数据拼接形成计算结果输出;优选的,还包括对暂存在全局缓存中的数据进行计算操作,所述计算操作包括池化操作和激活函数操作。
[0007]本专利技术采用通用稀疏神经网络硬件加速系统架构,可兼容多种稀疏神经网络算法模型,例如LeNet、VGGNet、GoogleNet、ResNet、YOLOv2、YOLOv3、MobileNet、Inception
‑
v2、Inception
‑
v3、Transformer等稀疏化算法模型,通过稀疏加速单元硬件架构高效解决稀疏矩阵不规则计算问题,同时在不损失效率的情况下兼容密集型矩阵运算加速。
附图说明
[0008]图1为本专利技术所述稀疏神经网络硬件加速系统的一种具体实施方式示意图。
[0009]图2为本专利技术所述稀疏加速单元的一种具体实施方式示意图。
[0010]图3为本专利技术所述稀疏加法器的一种具体实施方式示意图。
具体实施方式
[0011]下面对本专利技术的具体实施方式作进一步的详细说明。
[0012]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术具体实施方式及相应的附图对本专利技术技术方案进行清楚、完整地阐述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0013]本专利技术所述稀疏神经网络硬件加速系统,包括稀疏存储编解码模块和与稀疏存储编解码模块连接的稀疏数据中间处理模块,所述稀疏数据中间处理模块还连接有权重分配模块和移位寄存器单元,所述权重分配模块和移位寄存器单元均连接有多个稀疏加速单元,所述稀疏加速单元还连接有输出处理模块,所述输出处理模块的输出端与所述稀疏数据中间处理模块连接;其中,稀疏加速单元负责接收移位寄存器单元输出的输入特征数据和权重分配模块输出的权重数据进行矩阵乘法运算加速,兼容稀疏矩阵乘法和密集矩阵乘法运算;
移位寄存器单元用于缓存和整形每个稀疏加速单元计算所需要的输入特征数据;权重分配模块根据输入数据的分配模式,从数据整形单元载入权重数据并分配给稀疏加速单元;稀疏数据中间处理模块用于对输出处理模块返回的稀疏矩阵运算结果数据进行存储和处理,输出处理模块对稀疏加速单元输出的计算结果进行缓存并根据系统控制器的配置将缓存的计算结果返回稀疏数据中间处理模块。
[0014]如图1所示给出本专利技术所述稀疏神经网络硬件加速系统的一个具体实施方式,包括总线接口、稀疏存储编解码模块、全局缓存、算数逻辑单元、数据整形单元、移位寄存器单元、权重分配模块、稀疏加速单元、输出缓存、数据处理单元、系统控制器、配置接口和中断输出;所述总线接口与稀疏存储编解码模块连接,所述稀疏存储编解码模块和全局缓存连接,所述全局缓存与算术逻辑单元、数据整形单元、数据处理单元连接,所述算术逻辑单元与全局缓存、数据整形单元连接,所述数据整形单元与全局缓存、算术逻辑单元、移位寄存器单元、权重分配模块连接,所述移位寄存器单元与数据整形单元、稀疏加速单元连接,所述权重分配模块与数据整形单元、稀疏加速单元连接,所述稀疏加速单元与移位寄存器单元、权重分配模块、输出缓存连接,所述输出缓存与稀疏加速单元、数据处理单元连接,所述数据处理单元与输出缓存、全局缓存连接,所述系统控制器与稀疏存储编解码模块、全局缓存、算数逻辑单元、数据整形单元、移位寄存器单元、权重分配模块、稀疏加速单元、输出缓存、数据处理单元、配置接口本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.稀疏加速单元,其特征在于, 包括N个计算单元和i级稀疏加法树,其中i=log2N,所述计算单元为乘法器结构,所述稀疏加法树采用二叉树结构连接,即:上一级稀疏加法树的稀疏加法器数量是下一级的两倍,上一级的每两个稀疏加法器同时连接下一级的一个稀疏加法器; 第一级稀疏加法树的稀疏加法器数量为N/2;各级稀疏加法树的稀疏加法器数据位宽依次递增1bit;所述稀疏加法器的功能为:若本次输入的两组数据索引相同,则将两个输入数据相加作为输出结果,并将两组数据索引中任意一个作为输出索引;否则将数据索引较小的一组输入数据和数据索引作为输出结果,将数据索引较大的一组数据锁存,同时从数据索引较小的一组输入端口载入新的数据进行下一次运算。2.如权利要求1所述稀疏加速单元,其特征在于,所述稀疏加法器包括比较器、加法器和寄存器,比较器和加法器的两个输入端分别连接稀疏加法器的两个输入端,比较器的输出端连接加法器和输出控制器,加法器的输出端连接输出控制器,所述输出控制器连接加法器的输出端、比较器的输出端和稀疏加法器的输出端,并连接寄存器,由输出控制器根据比较器的比较结果进行输出和数据锁存。3.稀疏神经网络硬件加速系统,其特征在于,包括稀疏存储编解码模块和与稀疏存储编解码模块连接的稀疏数据中间处理模块,所述稀疏数据中间处理模块还连接有权重分配模块和移位寄存器单元,所述权重分配模块和移位寄存器单元均连接有多个如权利要求1至2任意一项所述稀疏加速单元,所述稀疏加...
【专利技术属性】
技术研发人员:伍元聪,罗敏,西贝与非,金正权,
申请(专利权)人:成都甄识科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。