[发明专利]稀疏GRU神经网络加速的实现方法和装置有效
申请号: | 202110195253.9 | 申请日: | 2021-02-20 |
公开(公告)号: | CN112906887B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 龙湘蒙;支小莉;童维勤;张庆杰 | 申请(专利权)人: | 上海大学 |
主分类号: | G06N3/082 | 分类号: | G06N3/082;G06N3/04;G06N3/063 |
代理公司: | 上海梵恒知识产权代理事务所(普通合伙) 31357 | 代理人: | 李文凤 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 稀疏 gru 神经网络 加速 实现 方法 装置 | ||
1.一种稀疏GRU神经网络加速的实现方法,其特征在于,包括以下步骤:
S1、使用CPU或GPU训练GRU神经网络模型,并对训练后的模型参数进行剪枝和量化;使用三元组方法存储稀疏的参数矩阵,并对模型的输入进行量化;
S2、使用buffer将存储模型参数的三元组和量化后的输入传输至FPGA的外部存储器中;
S3、在FPGA中实现稀疏GRU神经网络的计算,并将最终结果传输至所述外部存储器中;
所述在FPGA中实现稀疏GRU神经网络的计算具体包括:
通过加速器实现稀疏GRU神经网络的计算,所述加速器包括输入读取模块、模型参数解码模块、上一时刻状态传递模块、计算模块和输出写回模块;
所述输入读取模块包括输入读写单元,用于从FPGA的外部存储器中读取GRU神经网络的输入;
所述模型参数解码模块包括重置更新门解码计算单元和候选值解码计算单元,用于将稀疏GRU网络的模型参数即三元组解码并向量化,依次发送给计算模块;
所述上一时刻状态传递模块包括状态传递单元,用于在初始时刻h0生成初始状态值和在ht时刻(t不为0)接收的上一时刻的状态值,对其向量化后发送给计算模块;
所述计算模块,包括当前状态值的计算,并将最终状态值发送输出写回模块的输出写回单元;
所述输出写回模块,包括所述输出写回单元,用于获取最终时刻的输出并写回FPGA的外部存储器。
2.如权利要求1所述的稀疏GRU神经网络加速的实现方法,其特征在于,所述使用三元组方法存储稀疏的参数矩阵具体包括:
将参数矩阵分为n*m块,以块为单位进行排序;在进行稀疏矩阵压缩时,保持分块的顺序,序号靠前的块中的元素存储在序号靠后的块中的元素之前。
3.如权利要求1所述的稀疏GRU神经网络加速的实现方法,其特征在于,所述重置更新门解码计算单元用于解码重置门的权重和更新门的权重,并将其向量化,依次发送给计算模块;在对解码后的重置门的权重和更新门的权重进行向量化的过程中,将相同输入计算的重置门权重参数和更新门权重参数放置于同一结构体中;
候选值解码计算单元解码候选值的权重,并将其向量化,依次发送给计算模块。
4.如权利要求3所述的稀疏GRU神经网络加速的实现方法,其特征在于,所述重置更新门解码计算单元和候选值解码计算单元根据稀疏矩阵后的三元组进行解码;遍历权重矩阵结合当前三元组的行和列判断解码后的参数是否存在当前矩阵中,若存在设为三元组的值,否则设为0;分块进行发送。
5.如权利要求1所述的稀疏GRU神经网络加速的实现方法,其特征在于,所述状态传递单元在初始时刻h0生成全部值均为0的初始状态值,在ht时刻(t不为0)接收由计算模块发送的上一时刻状态值,即ht-1时刻计算出的状态值,对其向量化后发送给计算模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110195253.9/1.html,转载请声明来源钻瓜专利网。