CN113592066B - 硬件加速方法、装置、设备及存储介质 - Google Patents
硬件加速方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113592066B CN113592066B CN202110781588.9A CN202110781588A CN113592066B CN 113592066 B CN113592066 B CN 113592066B CN 202110781588 A CN202110781588 A CN 202110781588A CN 113592066 B CN113592066 B CN 113592066B
- Authority
- CN
- China
- Prior art keywords
- neural network
- acceleration
- layer
- hardware
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 207
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013528 artificial neural network Methods 0.000 claims abstract description 207
- 239000010410 layer Substances 0.000 claims description 306
- 238000004364 calculation method Methods 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 59
- 238000013527 convolutional neural network Methods 0.000 claims description 52
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 239000013598 vector Substances 0.000 claims description 24
- 230000011218 segmentation Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 19
- 230000005284 excitation Effects 0.000 claims description 18
- 238000012549 training Methods 0.000 claims description 14
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 7
- 239000002356 single layer Substances 0.000 claims description 4
- 238000004590 computer program Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 239000000306 component Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 239000000969 carrier Substances 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Feedback Control In General (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种硬件加速方法、装置、设备、计算机程序产品及存储介质,该方法通过获取与当前神经网络对应的系统配置文件,通过系统配置文件对硬件加速器系统进行配置,再通过输入输出数据处理单元获取神经网络当前层的运算数据,将运算数据输入PE阵列,计算得到当前层的运算结果。再根据当前层的运算结果计算当前层的下一层的运算结果,直到得到神经网络的最后一层的运算结果,完成对神经网络的硬件加速。本发明通过根据神经网络获取系统配置文件,再利用系统配置文件对硬件加速器系统进行配置,使硬件加速器系统可以在适配不同神经网络的硬件加速的同时,对当前神经网络进行硬件加速的能效比最大化。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种硬件加速方法、装置、设备、计算机程序产品及存储介质。
背景技术
目前,随着人工智能技术的深入发展,以交叉融合为特征的集成化创新渐成主流,多种新兴技术交叉集成的价值将使人工智能发挥更大社会经济价值,尤其是随着物联网的普及,端侧应用场景更加繁杂,不仅数据流增长,数据种类也在不断增多,RNN(循环神经网络,适用于时态数据及其它类型的序列数据)和CNN(卷积神经网络,适用于分层或空间数据,从中提取未做标记的特征)硬件加速器作为人工智能芯片的核心部件,它的设计性能直接关系着人工智能芯片的性能和竞争力。目前用于实现AI算法的主要硬件载体是CPU、GPU、FPGA和ASIC。CPU通用性最强,但延迟严重,散热高,效率最低;GPU相对其他通用性稍强,算法训练高效,但推理运算效率低;ASIC可以更有针对性地进行硬件层次的优化,从而获得更好的性能,但在通用性方面则存在明显不足。
需要说明的是,人工智能算法部署时,目前主要采用GPU和专用硬件加速器实现,其中,GPU采用主流计算机架构下大规模并行指令集设计的思路,性能功耗比不高,不适合部署在边缘侧智能设备;专用硬件加速器针对某种特定算法可以实现高效加速,但在场景的适用性方面存在明显不足,切换应用场景后经常出现难以适配的困境,需要重新投入大量人力物力进行迭代开发,造成人工智能应用部署成本高和难以快速落地。
发明内容
本发明的主要目的在于提供一种硬件加速方法、装置、设备、计算机程序产品及存储介质,旨在解决如何在保证硬件加速的高通用性的同时,保证高能效比的技术问题。
为实现上述目的,本发明提供一种硬件加速方法,所述硬件加速方法应用于硬件加速器系统,所述硬件加速器系统包括输入输出数据处理单元与PE阵列,所述硬件加速方法包括以下步骤:
获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的所述当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果。
可选地,所述通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算的步骤包括:
通过所述输入输出数据处理单元获取所述神经网络的当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数;
将所述当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数输入所述PE阵列进行运算。
可选地,所述获取与当前神经网络对应的系统配置文件的步骤包括:
根据所述神经网络与算法训练结果确定输入向量维度数、隐藏层节点数、特征图分辨率、通道数与计算类型;
根据所述神经网络确定加速计算方式与加速控制方式,根据所述神经网络与所述硬件加速器的算力确定PE运算阵列子加速单元粒度,所述PE运算阵列子加速单元粒度用于确定所述PE阵列;
根据所述输入向量维度数、所述隐藏层节点数、所述特征图分辨率、所述通道数、所述计算类型、所述加速计算方式、所述加速控制方式与所述PE运算阵列子加速单元粒度得到所述系统配置文件。
可选地,所述根据所述神经网络确定加速计算方式的步骤包括:
确定所述神经网络的类型;
若所述神经网络的类型为CNN卷积神经网络,则确定的加速计算方式为,当前层全并行的计算方式;
若所述神经网络的类型为RNN循环神经网络,则确定的加速计算方式为,当前分割并行和不同分割间流水的计算方式。
可选地,所述根据所述神经网络确定加速控制方式的步骤包括:
确定所述神经网络的类型;
若所述神经网络的类型为CNN卷积神经网络,则确定的加速控制方式为,按帧按层独立的加速控制方式;
若所述神经网络的类型为RNN循环神经网络,则确定的加速控制方式为,当前时刻按输入向量维度数和所述隐藏节点数进行多次分割和流水线控制的加速控制方式。
可选地,所述硬件加速器系统包括系统配置模块、片内存储器与全局控制单元,所述根据所述系统配置文件对所述硬件加速器系统进行配置的步骤包括:
通过所述系统配置模块将所述系统配置文件写入所述片内存储器;
通过所述全局控制单元将所述片内存储器中的所述系统配置文件传输至所述输入输出数据处理单元与所述PE阵列;
根据所述系统配置文件对所述输入输出数据处理单元与所述PE阵列进行配置。
进一步地,为实现上述目的,本发明还提供一种硬件加速装置,所述硬件加速方法应用于硬件加速器系统,所述硬件加速器系统包括输入输出数据处理单元与PE阵列,所述硬件加速装置包括:
配置获取模块,用于获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
加速计算模块,用于通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
单层加速模块,用于通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
硬件加速模块,用于若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果。
进一步地,为实现上述目的,本发明还提供一种硬件加速设备,所述硬件加速设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的硬件加速程序,所述硬件加速程序被所述处理器执行时实现如上述所述的硬件加速方法的步骤。
进一步地,本发明还提供一种计算机程序产品,所述计算机程序产品包括硬件加速程序,所述硬件加速程序被处理器执行时实现如上所述的硬件加速方法的步骤
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有硬件加速程序,所述硬件加速程序被处理器执行时实现如上所述的硬件加速方法的步骤。
本发明通过获取与当前神经网络对应的系统配置文件,通过系统配置文件对硬件加速器系统进行配置,再通过输入输出数据处理单元获取神经网络当前层的运算数据,将运算数据输入PE阵列,计算得到当前层的运算结果。再根据当前层的运算结果计算当前层的下一层的运算结果,直到得到神经网络的最后一层的运算结果,完成对神经网络的硬件加速。本发明通过根据神经网络获取系统配置文件,再利用系统配置文件对硬件加速器系统进行配置,使硬件加速器系统可以在适配不同神经网络的硬件加速的同时,对当前神经网络进行硬件加速的能效比最大化。
附图说明
图1为本发明硬件加速设备实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本发明硬件加速方法第一实施例的流程示意图;
图3为本发明硬件加速方法一实施例中硬件加速器系统的结构示意图;
图4为本发明硬件加速装置较佳实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,人工智能算法部署时,目前主要采用GPU和专用硬件加速器实现,其中,GPU采用主流计算机架构下大规模并行指令集设计的思路,性能功耗比不高,不适合部署在边缘侧智能设备;专用硬件加速器针对某种特定算法可以实现高效加速,但在场景的适用性方面存在明显不足,切换应用场景后经常出现难以适配的困境,需要重新投入大量人力物力进行迭代开发,造成人工智能应用部署成本高和难以快速落地。
基于上述缺陷,本发明提供一种硬件加速设备,参照图1,图1为本发明硬件加速设备实施例方案涉及的设备硬件运行环境的结构示意图。
如图1所示,该硬件加速设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的硬件加速设备的硬件结构并不构成对硬件加速设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及硬件加速程序。其中,操作系统是管理和控制硬件加速设备与软件资源的程序,支持网络通信模块、用户接口模块、硬件加速程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的硬件加速设备硬件结构中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;处理器1001可以调用存储器1005中存储的硬件加速程序,并执行以下操作:
获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的所述当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果。
进一步地,所述通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算的步骤包括:
通过所述输入输出数据处理单元获取所述神经网络的当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数;
将所述当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数输入所述PE阵列进行运算。
进一步地,所述获取与当前神经网络对应的系统配置文件的步骤包括:
根据所述神经网络与算法训练结果确定输入向量维度数、隐藏层节点数、特征图分辨率、通道数与计算类型;
根据所述神经网络确定加速计算方式与加速控制方式,根据所述神经网络与所述硬件加速器的算力确定PE运算阵列子加速单元粒度,所述PE运算阵列子加速单元粒度用于确定所述PE阵列;
根据所述输入向量维度数、所述隐藏层节点数、所述特征图分辨率、所述通道数、所述计算类型、所述加速计算方式、所述加速控制方式与所述PE运算阵列子加速单元粒度得到所述系统配置文件。
进一步地,所述根据所述神经网络确定加速计算方式的步骤包括:
确定所述神经网络的类型;
若所述神经网络的类型为CNN卷积神经网络,则确定的加速计算方式为,当前层全并行的计算方式;
若所述神经网络的类型为RNN循环神经网络,则确定的加速计算方式为,当前分割并行和不同分割间流水的计算方式。
进一步地,所述根据所述神经网络确定加速控制方式的步骤包括:
确定所述神经网络的类型;
若所述神经网络的类型为CNN卷积神经网络,则确定的加速控制方式为,按帧按层独立的加速控制方式;
若所述神经网络的类型为RNN循环神经网络,则确定的加速控制方式为,当前时刻按输入向量维度数和所述隐藏节点数进行多次分割和流水线控制的加速控制方式。
进一步地,所述硬件加速器系统包括系统配置模块、片内存储器与全局控制单元,所述根据所述系统配置文件对所述硬件加速器系统进行配置的步骤包括:
通过所述系统配置模块将所述系统配置文件写入所述片内存储器;
通过所述全局控制单元将所述片内存储器中的所述系统配置文件传输至所述输入输出数据处理单元与所述PE阵列;
根据所述系统配置文件对所述输入输出数据处理单元与所述PE阵列进行配置。
本发明硬件加速设备的具体实施方式与下述硬件加速方法各实施例基本相同,在此不再赘述。
本发明还提供一种基于上述硬件加速设备的硬件加速方法。
参照图2,图2为本发明硬件加速方法第一实施例的流程示意图。
本发明实施例提供了硬件加速方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在硬件加速方法的各个实施例中,执行主体是硬件加速装置,硬件加速装置可以是硬件加速器系统,也可以是独立与硬件加速器系统以外的装置。
所述硬件加速方法应用于硬件加速器系统,所述硬件加速器系统包括输入输出数据处理单元与PE阵列,所述硬件加速方法包括:
步骤S10,获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
本实施例中的硬件加速方法适用于具有硬件加速功能的设备。
现有技术中,人工智能算法部署时,目前主要采用GPU和专用硬件加速器实现,其中,GPU采用主流计算机架构下大规模并行指令集设计的思路,性能功耗比不高,不适合部署在边缘侧智能设备;专用硬件加速器针对某种特定算法可以实现高效加速,但在场景的适用性方面存在明显不足,切换应用场景后经常出现难以适配的困境,需要重新投入大量人力物力进行迭代开发,造成人工智能应用部署成本高和难以快速落地。
在此背景下,为了解决如何在保证硬件加速的高通用性的同时,保证高能效比的技术问题,本实施例提出了一种硬件加速方法,通过获取与当前神经网络对应的系统配置文件,通过系统配置文件对硬件加速器系统进行配置,再通过输入输出数据处理单元获取神经网络当前层的运算数据,将运算数据输入PE阵列,计算得到当前层的运算结果。再根据当前层的运算结果计算当前层的下一层的运算结果,直到得到神经网络的最后一层的运算结果,完成对神经网络的硬件加速。本发明通过根据神经网络获取系统配置文件,再利用系统配置文件对硬件加速器系统进行配置,使硬件加速器系统可以在适配不同神经网络的硬件加速的同时,对当前神经网络进行硬件加速的能效比最大化。
在本实施例中,硬件加速器系统用于实现对RNN(循环神经网络)算法和/或CNN(卷积神经网络)算法的硬件加速。
硬件加速器系统主要包括ARM处理器、片外DDR4同步动态存储器、RNN&CNN硬件加速器IP和AXI总线。
本实施例采用一套共享的硬件载体满足不同场景的RNN或CNN算法加速需求,扩展了硬件加速单元的通用性和使用范围,所设计的RNN&CNN硬件加速器IP可以非常方便地部署在FPGA和ASIC上。
其中,RNN&CNN硬件加速器IP包括输入输出数据处理单元与PE阵列。
输入输出数据处理单元的功能为:完成数据读入、数据分发和数据输出功能。进行片外DDR存储器与片上数据的交互传输。主要包括神经网络的当前层(针对CNN,为当前层;针对RNN,当前层可以为当前切片)的激励读取、权值和偏置参数读取以及上层(针对CNN,为上层;针对RNN,上层可以为上个切片)的运算结果读取,在流水控制器的作用下分发给PE阵列进行计算,并将当前的计算结果进行存储。
PE阵列的功能为:PE阵列由4个PE子单元构成,单个PE子单元可完成当前层的RNN或CNN运算。负责运算阵列的分割、算子运算、运算合并及后处理和输出结果数据。支持在线灵活适配RNN和CNN神经网络算法运算。
根据神经网络获取系统配置文件,即获取与当前神经网络对应的系统配置文件,系统配置文件中包含系统配置信息,系统配置信息用于对硬件加速器系统进行配置。
再根据系统配置文件对硬件加速器系统进行配置,得到配置后的硬件加速器系统。根据不同的神经网络对硬件加速器系统进行相应的配置,可以使硬件加速器系统适配各种神经网络的硬件加速任务。
步骤S20,通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
在本实施例中,通过系统配置文件对硬件加速器系统进行配置之后,通过配置后的硬件加速器系统的输入输出数据处理单元获取神经网络的当前层的运算数据,该神经网络是利用硬件加速器系统进行硬件加速的神经网络,即需要硬件加速的神经网络,包括但不限于RNN(循环神经网络)与CNN(卷积神经网络)等。
当前层的运算数据是计算当前层的输出结果即运算结果所需要的数据,包括当前层的输入数据,当前层的激励函数,当前层的权重参数与偏置参数等。其中,若当前层为神经网络的第一层,则输入数据为初始数据,初始数据指直接提供给神经网络进行计算的数据,该初始数据未经过神经网络的任一层的计算。若当前层为神经网络的第一层以外的层,则当前层的输入数据为当前层的上一层的输出数据,该当前层的上一层的输出数据就是当前层的上一层的运算结果。
将当前层的运算数据输入配置后的硬件加速器系统的PE阵列,通过PE阵列根据当前层的运算数据进行计算,得到当前层的运算结果。
步骤S30,通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的所述当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
在本实施例中,从神经网络的第一层开始,不断计算神经网络的每一层的运算结果,直到得到神经网络的最后一层的运算结果,该最后一层的运算结果就是神经网络经过硬件加速器系统加速之后得到的输出结果,此时,硬件加速器系统完成了对神经网络算法的硬件加速。
得到到神经网络的当前层的运算结果之后,获取当前层的下一层的运算数据,即获取当前层的运算结果,以及当前层的下一层的激励函数、权重参数、偏置参数等运算数据,将当前层的下一层的运算数据输入PE阵列,通过PE阵列对当前层的下一层的运算数据进行计算,得到当前层的下一层的运算结果。
步骤S40,若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果。
在本实施例中,若当前层的下一层是神经网络的最后一层,则得到当前层的下一层之后,硬件加速器系统已经对当前神经网络完成硬件加速。
若当前层的下一层不是神经网络的最后一层,则重复上述步骤,获取当前层的下一层的下一层的运算数据,根据当前层的下一层的运算结果计算得到当前层的下一层的下一层的运算结果,直到得到神经网络的最后一层的运算结果,此时硬件加速器系统对神经网络完成硬件加速,得到神经网络最终的输出结果。
需要说明的是,在计算神经网络的某一层的运算结果时,都可以利用系统配置文件重新对硬件加速器系统进行配置,通过重新配置后的硬件加速器系统对神经网络的该层进行硬件加速。
通过上述方式,硬件加速器系统能够更好地兼容RNN和CNN硬件加速,降低同等加速需求场景下的芯片面积,提高通用硬件加速器的能效比,更适合在边缘计算AI芯片中部署。
本发明通过获取与当前神经网络对应的系统配置文件,通过系统配置文件对硬件加速器系统进行配置,再通过输入输出数据处理单元获取神经网络当前层的运算数据,将运算数据输入PE阵列,计算得到当前层的运算结果。再根据当前层的运算结果计算当前层的下一层的运算结果,直到得到神经网络的最后一层的运算结果,完成对神经网络的硬件加速。本发明通过根据神经网络获取系统配置文件,再利用系统配置文件对硬件加速器系统进行配置,使硬件加速器系统可以在适配不同神经网络的硬件加速的同时,对当前神经网络进行硬件加速的能效比最大化。
进一步地,提出本发明硬件加速方法第二实施例,上述步骤S20中,所述通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算的步骤包括:
步骤S201,通过所述输入输出数据处理单元获取所述神经网络的当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数;
步骤S202,将所述当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数输入所述PE阵列进行运算。
在本实施例中,当前层的运算数据包括,当前层的上一层的运算结果,当前层的激励函数、权重参数与偏置参数。
输入输出数据处理单元获取当前层的激励函数、权重参数和偏置参数的方式可以是:
输入输出数据处理单元对片外存储器(片外DDR4同步动态存储器)发送激励和参数数据读取请求,从片外存储器获得当前层(针对CNN,为当前层;针对RNN,当前层可以为当前切分)运算需要的当前层的激励函数、当前层的权重参数、当前层的偏置参数、以及当前层的上一层的运算结果。
获取当前层的运算数据之后,将运算数据经过数据同步化处理后,送入PE阵列中进行相关运算。
当前层的运算数据输入PE阵列进行运算后得到当前层的运算结果,再由输入输出数据处理单元将当前层的运算结果写入片外存储器,至此神经网络的当前层的硬件加速完成。重复对之后的每一层进行硬件加速,完成对神经网络的整体硬件加速。
本实施例通过输入输出数据处理单元获取神经网络的当前层的运算数据,可以快速准确的获取当前层的运算数据,从而实现对当前层的硬件加速。
进一步地,提出本发明硬件加速方法第三实施例,上述步骤S10中,所述获取与当前神经网络对应的系统配置文件的步骤包括:
步骤S101,根据所述神经网络与算法训练结果确定输入向量维度数、隐藏层节点数、特征图分辨率、通道数与计算类型;
步骤S102,根据所述神经网络确定加速计算方式与加速控制方式,根据所述神经网络与所述硬件加速器的算力确定PE运算阵列子加速单元粒度,所述PE运算阵列子加速单元粒度用于确定所述PE阵列;
步骤S103,根据所述输入向量维度数、所述隐藏层节点数、所述特征图分辨率、所述通道数、所述计算类型、所述加速计算方式、所述加速控制方式与所述PE运算阵列子加速单元粒度得到所述系统配置文件。
在本实施例中,获取与当前神经网络对应的系统配置文件的方式可以为,先根据神经网络获取系统配置信息,再根据系统配置信息生成系统配置文件,通过系统配置文件对硬件加速器系统进行配置。
本实施例根据在线配置的神经网络类型,对输入的数据和参数进行格式调整,灵活分配底层运算单元,最大化实现当前运算的计算效能,实现对RNN和CNN算法硬件加速的兼容设计。
获取系统配置信息的方式可以是:
根据神经网络的类型和算法训练结果生成输入向量维度数、隐藏层节点数、特征图分辨率和通道数、计算类型。算法训练结果指该需要进行硬件加速的神经网络的训练结果,即该神经网络经过训练数据训练好后的训练结果。
根据神经网络的类型确定硬件加速器系统的加速计算方式和加速控制方式。
根据目前主流神经网络RNN和CNN的特点以及硬件加速器系统的算力确定PE运算阵列子加速单元粒度,PE运算阵列子加速单元粒度用户构成PE阵列。其中,RNN LSTM神经网络4个门的计算是整个网络运算的首个环节,4个门并行计算理论上处理延时最短,CNN神经网络的绝大部分场景通道数不小于4,输入向量维度、隐藏层节点和特征图按16进行切分是兼顾运算效率和灵活性的最优方式,另外1024(4x16x16=1024)个MAC的加速单元算力适中,且便于扩展。综上所述,本实施例中最佳选择为4(并行输入通道数或并行处理gate数)x16(并行输出通道列数或并行输入向量维数)x16(并行输出通道数或并行计算隐藏层节点数)。
在确定输入向量维度数、隐藏层节点数、特征图分辨率、通道数、计算类型、加速计算方式、加速控制方式与PE阵列子加速单元粒度等系统配置信息之后,根据系统配置信息在线自动生成当前加速器任务的系统配置文件,当前加速器任务指硬件加速器系统对当前神经网络的运算过程进行硬件加速的任务。
获取系统配置文件之后,可以通过CPU接口写入硬件加速器系统的片内RAM中,在硬件加速器系统上电并完成系统配置后,由硬件加速器系统自动触发片内RAM配置循环自动读取,完成对硬件加速器系统的配置。
需要说明的是,系统配置信息还可以包括硬件加速器系统的工作状态,如果是调试模式则可以配置为跳转手动模式,该模式下层间(或slice)和帧间(或timestep)的跳转迁移均依赖于外部CPU下发触发信号;如果是正常业务模式则可以配置为自动模式,该模式下系统在上电且配置完成后,只需外部CPU给定一次触发信号便可实现加速器正常业务运行。
需要说明的是,本实施例可在一套共享的硬件加速载体上通过在线配置高效完成对RNN或CNN的算法加速,通过神经网络类型和算法特点,配置最合适的PE运算子单元粒度,动态选择最优的加速器控制方式和计算方式,最大效率地适配底层运算资源,在同等资源消耗下,大大扩展了硬件加速单元的通用性和使用范围,提高了硬件加速单元的能效比。通过在多个RNN和CNN网络上的加速器系统性能实际测试表明,该硬件加速器完全可以满足通用性和能效比的双重要求。
本实施通过根据神经网络与硬件加速器系统确定系统配置信息,进而生成系统配置文件对硬件加速器系统进行配置,可以适配不同的神经网络,从而提高硬件加速的通用性与能效比。
进一步地,提出本发明硬件加速方法第四实施例,上述步骤S102中,所述根据所述神经网络确定加速计算方式的步骤包括:
步骤S10211,确定所述神经网络的类型;
步骤S10212,若所述神经网络的类型为CNN卷积神经网络,则确定的加速计算方式为,当前层全并行的计算方式;
步骤S10213,若所述神经网络的类型为RNN循环神经网络,则确定的加速计算方式为,当前分割并行和不同分割间流水的计算方式。
在本实施例中,根据神经网络确定加速计算方式的方法可以是,首先,确定神经网络的类型。
若神经网络的类型为CNN(卷积神经网络),则选择当前层全并行的计算方式作为加速计算方式。
若神经网络的类型为RNN(循环神经网络),则选择当前分割并行和不同分割间流水的计算方式为加速计算方式。
其中,选择加速计算方式总体上基于一个原则,即当前的加速处理采用效率最高的处理机制,确保当前PE阵列计算资源高效运转,如果是对RNN算法加速,则采用当前分割并行和不同分割间流水的计算方式;如果是对CNN算法加速,则采用当前层全并行的计算方式。
本实施例通过根据神经网络的类型来选择加速计算方式,可以对不同的神经网络都能采用效率最高的加速处理机制,在满足硬件加速器系统的通用性的情况下提高了硬件加速器系统的能效比。
进一步地,提出本发明硬件加速方法第五实施例,上述步骤S102中,所述根据所述神经网络确定加速控制方式的步骤包括:
步骤S10221,确定所述神经网络的类型;
步骤S10222,若所述神经网络的类型为CNN卷积神经网络,则确定的加速控制方式为,按帧按层独立的加速控制方式;
步骤S10223,若所述神经网络的类型为RNN循环神经网络,则确定的加速控制方式为,当前时刻按输入向量维度数和所述隐藏节点数进行多次分割和流水线控制的加速控制方式。
在本实施例中,根据神经网络确定加速控制方式的方法可以是,首先,确定神经网络的类型。
若神经网络的类型为CNN(卷积神经网络),则选择按帧按层独立的加速控制方式。
若神经网络的类型为RNN(循环神经网络),则选择当前时刻按输入向量维度数和所述隐藏节点数进行多次分割和流水线控制的加速控制方式。
即基于加速需求,选择合适的加速控制方式。如果是对RNN算法加速,则采用当前时刻t按输入向量维度数和隐藏层节点数进行多次分割和流水线控制方式;如果是对CNN算法加速则采用按帧按层独立加速控制方式。
本实施例通过根据神经网络的类型来选择加速控制方式,可以对不同的神经网络都能采用最合适的加速控制方式,提高对神经网络进行硬件加速的效果,在满足硬件加速器系统的通用性的情况下提高了硬件加速器系统的能效比。
进一步地,提出本发明硬件加速方法第六实施例,上述步骤S10中,所述硬件加速器系统包括系统配置模块、片内存储器与全局控制单元,所述根据所述系统配置文件对所述硬件加速器系统进行配置的步骤包括:
步骤S1031,通过所述系统配置模块将所述系统配置文件写入所述片内存储器;
步骤S1032,通过所述全局控制单元将所述片内存储器中的所述系统配置文件传输至所述输入输出数据处理单元与所述PE阵列;
步骤S1033,根据所述系统配置文件对所述输入输出数据处理单元与所述PE阵列进行配置。
在本实施例中,硬件加速器系统包括系统配置模块、片内存储器与全局控制单元。参照图3,图3为硬件加速器系统的结构示意图。
RNN&CNN通用硬件加速器系统总体设计如图3所示。该硬件加速器系统主要由ARM处理器、片外DDR4同步动态存储器、RNN&CNN硬件加速器IP和AXI总线构成。ARM处理器将训练得到的权值和偏置以及激励数据写入片外DDR存储器,通过AXI4-Lite接口对加速器IP进行配置,并从片外DDR存储器中取出RNN加速器计算结果进行相应后处理。片外DDR存储器用于权值、偏置、激励和计算结果数据的存储。加速器IP完成对输入激励数据的RNN或CNN硬件加速并将计算结果通过AXI4总线写入片外DDR存储器,加速器IP与外部的输入输出接口采用标准的AXI4 BUS和AXI4-Lite接口。
系统配置模块的功能为:针对应用场景,系统启动后将线下生成的输入向量维度数、隐藏层节点数、特征图分辨率和通道数、计算类型和计算方式等配置信息通过AXI4-Lite写入片内SRAM或FF,配置完成后将当前RNN或CNN加速器配置信息同步更新到全局控制单元。
全局控制单元的功能为:包括配置控制和运算状态控制。配置控制就是在每层(layer,针对CNN)或每个切分片(slice,针对RNN)的开始运算时向硬件加速器系统各个模块同步发送输入向量维度、隐藏层节点数、特征图分辨率和通道数、计算类型和计算方式等配置信息。运算状态控制包括对流水状态的控制以及对单层RNN或CNN内部运算的控制,并调度存储单元和计算单元协调工作。
获取系统配置文件后,根据系统配置文件对硬件加速器系统进行配置的方式可以是:
通过系统配置模块将系统配置文件写入片内存储器中,再通过全局控制单元将片内存储器中存储的系统配置文件,传输至输入输出数据处理单元与PE阵列,根据系统配置文件对硬件加速器系统的输入输出数据处理单元与PE阵列进行配置。
即获取系统配置文件之后,通过系统配置模块将系统配置文件写入片内RAM或FF,并由全局控制单元完成系统配置信息同步刷新至输入输出数据处理单元和PE阵列,对输入输出数据处理单元与PE阵列进行配置。
需要说明的是,在计算神经网络的每一层的运算结果时,都可以先通过全局控制单元根据系统配置文件向硬件加速器系统的各个模块同步发送系统配置信息,对硬件加速器系统的各个模块进行配置,再计算每一层的运算结果,即在计算神经网络的每一层的运算结果之前,都可以通过全局控制单元利用系统配置文件重新对硬件加速器系统的各个模块进行配置。
本实施例通过系统配置模块与全局控制单元完成对硬件加速器系统的配置,使硬件加速器系统能够适配各种神经网络的硬件加速过程,提高了硬件加速器系统的通用性与能效比。
针对一个神经网络加速需求,首先根据网络类型和算法训练结果在线下生成输入向量维度、隐藏层节点数、特征图分辨率和通道数、计算类型和计算方式等配置信息,系统启动后,通过系统配置模块写入片内RAM或FF,并由全局控制单元完成配置信息同步刷新至输入输出数据处理单元和PE阵列,之后输入输出数据处理单元对片外存储器发送激励和参数数据读取请求,从片外存储器获得当前层或当前切分运算需要的数据,并经过数据同步化处理后,送入PE陈列进行相关运算,得到当前运算的计算结果后,再由输入输出数据处理单元写入片外存储器,至此当前层或当前切片的硬件加速完成,计算当前层之后的每一层的计算结果,直到得到神经网络的最后一层的计算结果,此时完成对神经网络整体的硬件加速。
本发明还提供一种硬件加速装置。
参照图4,图4为本发明硬件加速装置第一实施例的功能模块示意图。所述硬件加速装置包括:
配置获取模块10,用于获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
加速计算模块20,用于通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
单层加速模块30,用于通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的所述当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
硬件加速模块40,用于若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果。
此外,本发明还提出一种计算机程序产品。
计算机程序产品包括硬件加速程序,硬件加速程序被处理器执行时实现如上所述的硬件加速方法的步骤。
其中,在所述处理器上运行的硬件加速程序被执行时所实现的方法可参照本发明硬件加速方法各个实施例,此处不再赘述
此外,本发明还提出一种计算机可读存储介质。
计算机可读存储介质上存储有硬件加速程序,硬件加速程序被处理器执行时实现如上所述的硬件加速方法的步骤。
本发明计算机可读存储介质具体实施方式与上述硬件加速方法各实施例基本相同,在此不再赘述。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (6)
1.一种硬件加速方法,其特征在于,所述硬件加速方法应用于硬件加速器系统,所述硬件加速器系统包括输入输出数据处理单元与PE阵列,所述硬件加速方法包括以下步骤:
获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的所述当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果;
其中,所述获取与当前神经网络对应的系统配置文件的步骤包括:
根据所述神经网络与算法训练结果确定输入向量维度数、隐藏层节点数、特征图分辨率、通道数与计算类型;
根据所述神经网络确定加速计算方式与加速控制方式,根据所述神经网络与所述硬件加速器的算力确定PE运算阵列子加速单元粒度,所述PE运算阵列子加速单元粒度用于确定所述PE阵列;
根据所述输入向量维度数、所述隐藏层节点数、所述特征图分辨率、所述通道数、所述计算类型、所述加速计算方式、所述加速控制方式与所述PE运算阵列子加速单元粒度得到所述系统配置文件;
所述根据所述神经网络确定加速计算方式的步骤包括:
确定所述神经网络的类型;
若所述神经网络的类型为CNN卷积神经网络,则确定的加速计算方式为,当前层全并行的计算方式;
若所述神经网络的类型为RNN循环神经网络,则确定的加速计算方式为,当前分割并行和不同分割间流水的计算方式;
所述根据所述神经网络确定加速控制方式的步骤包括:
确定所述神经网络的类型;
若所述神经网络的类型为CNN卷积神经网络,则确定的加速控制方式为,按帧按层独立的加速控制方式;
若所述神经网络的类型为RNN循环神经网络,则确定的加速控制方式为,当前时刻按输入向量维度数和所述隐藏节点数进行多次分割和流水线控制的加速控制方式。
2.如权利要求1所述的硬件加速方法,其特征在于,所述通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算的步骤包括:
通过所述输入输出数据处理单元获取所述神经网络的当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数;
将所述当前层的上一层的运算结果,以及所述当前层的激励函数、权重参数和偏置参数输入所述PE阵列进行运算。
3.如权利要求1所述的硬件加速方法,其特征在于,所述硬件加速器系统包括系统配置模块、片内存储器与全局控制单元,所述根据所述系统配置文件对所述硬件加速器系统进行配置的步骤包括:
通过所述系统配置模块将所述系统配置文件写入所述片内存储器;
通过所述全局控制单元将所述片内存储器中的所述系统配置文件传输至所述输入输出数据处理单元与所述PE阵列;
根据所述系统配置文件对所述输入输出数据处理单元与所述PE阵列进行配置。
4.一种硬件加速装置,其特征在于,硬件加速方法应用于硬件加速器系统,所述硬件加速器系统包括输入输出数据处理单元与PE阵列,所述硬件加速装置包括:
配置获取模块,用于获取与当前神经网络对应的系统配置文件,根据所述系统配置文件对所述硬件加速器系统进行配置;
加速计算模块,用于通过配置后的硬件加速器系统的所述输入输出数据处理单元获取所述神经网络的当前层的运算数据,将所述运算数据输入所述配置后的硬件加速器系统的所述PE阵列进行计算,得到所述当前层的运算结果;
单层加速模块,用于通过配置后的硬件加速器系统的所述输入输出数据处理单元获取神经网络的所述当前层的下一层的运算数据,所述当前层的下一层的运算数据包括所述当前层的运算结果,将所述当前层的下一层的运算数据输入所述PE阵列进行计算,得到所述当前层的下一层的运算结果;
硬件加速模块,用于若所述当前层的下一层不是所述神经网络的最后一层,则根据所述当前层的下一层的运算结果继续计算所述当前层的下一层的下一层的运算结果,直至得到所述神经网络的最后一层的运算结果;
所述配置获取模块,还用于根据所述神经网络与算法训练结果确定输入向量维度数、隐藏层节点数、特征图分辨率、通道数与计算类型;根据所述神经网络确定加速计算方式与加速控制方式,根据所述神经网络与所述硬件加速器的算力确定PE运算阵列子加速单元粒度,所述PE运算阵列子加速单元粒度用于确定所述PE阵列;根据所述输入向量维度数、所述隐藏层节点数、所述特征图分辨率、所述通道数、所述计算类型、所述加速计算方式、所述加速控制方式与所述PE运算阵列子加速单元粒度得到所述系统配置文件;所述根据所述神经网络确定加速计算方式包括:确定所述神经网络的类型;若所述神经网络的类型为CNN卷积神经网络,则确定的加速计算方式为,当前层全并行的计算方式;若所述神经网络的类型为RNN循环神经网络,则确定的加速计算方式为,当前分割并行和不同分割间流水的计算方式;所述根据所述神经网络确定加速控制方式包括:确定所述神经网络的类型;若所述神经网络的类型为CNN卷积神经网络,则确定的加速控制方式为,按帧按层独立的加速控制方式;若所述神经网络的类型为RNN循环神经网络,则确定的加速控制方式为,当前时刻按输入向量维度数和所述隐藏节点数进行多次分割和流水线控制的加速控制方式。
5.一种硬件加速设备,其特征在于,所述硬件加速设备包括存储器、处理器以及存储在所述存储器上并可以在所述处理器上运行的硬件加速程序,所述硬件加速程序被所述处理器执行时实现如权利要求1-3中任一项所述的硬件加速方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有硬件加速程序,所述硬件加速程序被处理器执行时实现如权利要求1-3中任一项所述的硬件加速方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110781588.9A CN113592066B (zh) | 2021-07-08 | 2021-07-08 | 硬件加速方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110781588.9A CN113592066B (zh) | 2021-07-08 | 2021-07-08 | 硬件加速方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113592066A CN113592066A (zh) | 2021-11-02 |
CN113592066B true CN113592066B (zh) | 2024-01-05 |
Family
ID=78246973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110781588.9A Active CN113592066B (zh) | 2021-07-08 | 2021-07-08 | 硬件加速方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113592066B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11635893B2 (en) * | 2019-08-12 | 2023-04-25 | Micron Technology, Inc. | Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks |
CN117217269A (zh) * | 2022-05-31 | 2023-12-12 | 华为技术有限公司 | 一种神经网络加速器、加速方法以及装置 |
CN114860353A (zh) * | 2022-05-31 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种程序执行方法、系统、设备以及存储介质 |
CN116303791A (zh) * | 2023-03-22 | 2023-06-23 | 合肥申威睿思信息科技有限公司 | 一种基于加速系统的数据同步方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635944A (zh) * | 2018-12-24 | 2019-04-16 | 西安交通大学 | 一种稀疏卷积神经网络加速器及实现方法 |
CN110826710A (zh) * | 2019-10-18 | 2020-02-21 | 南京大学 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现系统及方法 |
CN111542839A (zh) * | 2018-12-13 | 2020-08-14 | 深圳鲲云信息科技有限公司 | 一种反卷积神经网络的硬件加速方法、装置和电子设备 |
CN111626414A (zh) * | 2020-07-30 | 2020-09-04 | 电子科技大学 | 一种动态多精度神经网络加速单元 |
CN111667051A (zh) * | 2020-05-27 | 2020-09-15 | 上海赛昉科技有限公司 | 适用边缘设备的神经网络加速器及神经网络加速计算方法 |
CN111742331A (zh) * | 2018-02-16 | 2020-10-02 | 多伦多大学管理委员会 | 神经网络加速器 |
CN112613605A (zh) * | 2020-12-07 | 2021-04-06 | 深兰人工智能(深圳)有限公司 | 神经网络加速控制方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2016203619A1 (en) * | 2016-05-31 | 2017-12-14 | Canon Kabushiki Kaisha | Layer-based operations scheduling to optimise memory for CNN applications |
US12061990B2 (en) * | 2017-10-17 | 2024-08-13 | Xilinx, Inc. | Static block scheduling in massively parallel software defined hardware systems |
WO2019213745A1 (en) * | 2018-05-08 | 2019-11-14 | The Governing Council Of The University Of Toronto | Neural network processing element |
US11446008B2 (en) * | 2018-08-17 | 2022-09-20 | Tokitae Llc | Automated ultrasound video interpretation of a body part with one or more convolutional neural networks |
-
2021
- 2021-07-08 CN CN202110781588.9A patent/CN113592066B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111742331A (zh) * | 2018-02-16 | 2020-10-02 | 多伦多大学管理委员会 | 神经网络加速器 |
CN111542839A (zh) * | 2018-12-13 | 2020-08-14 | 深圳鲲云信息科技有限公司 | 一种反卷积神经网络的硬件加速方法、装置和电子设备 |
CN109635944A (zh) * | 2018-12-24 | 2019-04-16 | 西安交通大学 | 一种稀疏卷积神经网络加速器及实现方法 |
CN110826710A (zh) * | 2019-10-18 | 2020-02-21 | 南京大学 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现系统及方法 |
CN111667051A (zh) * | 2020-05-27 | 2020-09-15 | 上海赛昉科技有限公司 | 适用边缘设备的神经网络加速器及神经网络加速计算方法 |
CN111626414A (zh) * | 2020-07-30 | 2020-09-04 | 电子科技大学 | 一种动态多精度神经网络加速单元 |
CN112613605A (zh) * | 2020-12-07 | 2021-04-06 | 深兰人工智能(深圳)有限公司 | 神经网络加速控制方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
An Energy-Efficient Deep Reinforcement Learning Accelerator With Transposable PE Array and Experience Compression;Changhyeon Kim等;《IEEE SOLID-STATE CIRCUITS LETTERS》;第2卷(第11期);第228-231页 * |
基于FPGA的神经网络加速器的规模可伸缩性研究;陈辰;《中国优秀硕士学位论文全文数据库信息科技辑》(第12期);第I135-276页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113592066A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113592066B (zh) | 硬件加速方法、装置、设备及存储介质 | |
Hu et al. | Dynamic adaptive DNN surgery for inference acceleration on the edge | |
US20210357759A1 (en) | Task processing method and device based on neural network | |
CN110069341B (zh) | 边缘计算中结合功能按需配置的有依赖关系任务的调度方法 | |
CN111258744A (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
Kästner et al. | Hardware/software codesign for convolutional neural networks exploiting dynamic partial reconfiguration on PYNQ | |
US11321607B2 (en) | Machine learning network implemented by statically scheduled instructions, with compiler | |
US20220129408A1 (en) | Data actor and data processing method thereof | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
CN110309269B (zh) | 应答处理方法及其系统、计算机系统及计算机可读介质 | |
CN108304925B (zh) | 一种池化计算装置及方法 | |
CN110717574A (zh) | 一种神经网络运行方法、装置及异构智能芯片 | |
CN111079923A (zh) | 适用于边缘计算平台的Spark卷积神经网络系统及其电路 | |
US11967150B2 (en) | Parallel video processing systems | |
US20220309609A1 (en) | Graph sampling and random walk acceleration method and system on GPU | |
Ting et al. | Dynamic sharing in multi-accelerators of neural networks on an FPGA edge device | |
US20210326189A1 (en) | Synchronization of processing elements that execute statically scheduled instructions in a machine learning accelerator | |
CN109657794A (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
Voss et al. | Convolutional neural networks on dataflow engines | |
US11631001B2 (en) | Heterogeneous computing on a system-on-chip, including machine learning inference | |
CN116451757B (zh) | 一种神经网络模型的异构加速方法、装置、设备及介质 | |
Wang et al. | Edge computing for artificial intelligence | |
CN114239816B (zh) | 一种卷积神经网络-图卷积神经网络可重构硬件加速架构 | |
Fu et al. | Joint optimization of data transfer and co-execution for DNN in edge computing | |
US11734605B2 (en) | Allocating computations of a machine learning network in a machine learning accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |