CN115906917A - 一种基于模型算法划分的神经网络模型部署方法及装置 - Google Patents
一种基于模型算法划分的神经网络模型部署方法及装置 Download PDFInfo
- Publication number
- CN115906917A CN115906917A CN202211397117.9A CN202211397117A CN115906917A CN 115906917 A CN115906917 A CN 115906917A CN 202211397117 A CN202211397117 A CN 202211397117A CN 115906917 A CN115906917 A CN 115906917A
- Authority
- CN
- China
- Prior art keywords
- model
- algorithm
- data
- calculation
- algorithm module
- 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.)
- Granted
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 390
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000003062 neural network model Methods 0.000 title claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims abstract description 136
- 238000013461 design Methods 0.000 claims abstract description 33
- 230000001419 dependent effect Effects 0.000 claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 42
- 239000010410 layer Substances 0.000 claims description 34
- 230000008707 rearrangement Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 19
- 238000000638 solvent extraction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000005055 memory storage Effects 0.000 claims description 3
- 239000002356 single layer Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000005457 optimization Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- 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
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于模型算法划分的神经网络模型部署方法及装置,其中的方法首先针对Transformer模型中的资源消耗与时延进行分析,为模型的各层设置资源核时延的约束在指导后续模块设计。然后对神经网络模型中的算法划分为通用算法和模型相关算法以及基于模块的执行顺序。硬件架构不考虑特殊的模型算法,从而进行通用性设计来增加可扩展性。而模块则根据划分结果来依次设计,对于通用算法,对应模块由硬件架构中单元支持并实现;对于模型相关算法,对应模块则进行定制化设计,设计并导入算法函数和计算流程。最后根据执行顺序来调用各模块来运行整体模型推理系统,本发明对部署Transformer的模型推理系统在资源利用率和时延方面都有明显的提高。
Description
技术领域
本发明涉及神经网络模型部署技术领域,尤其涉及一种基于模型算法划分的神经网络模型部署方法及装置。
背景技术
随着深度学习技术的发展,神经网络模型的效果在图像,文本等多个领域已经远远超过了其他方法。伴随着智能设备概念的普及,神经网络扩展到了诸如智能手表,智能家居等设备上。通过智能系统,用户可以通过输入自然语言或图像作为交互的输入,智能系统返回对应的回复或操作。智能系统往往是以训练好的模型部署到硬件平台的形式而生成的模型推理系统,因此如何高效的部署神经网络模型是智能设备的关键问题。
与传统的应用场景相比,这类智能设备需要进行往往对资源消耗或功耗有着更加严格的要求,同时也注重实时性来保证用户的体验。传统的硬件平台例如本地GPU由于功耗过高在这类应用场景难以体现优势。而依靠云端传输的部署方案则由于网络质量的不稳定性难以保证实现性需求。因此例如ASIC,FPGA这类可以定制化的平台则成为该场景的主流平台。
神经网络模型部署的方法主要分为定制化设计以及覆盖层设计。定制化设计根据模型算法的特点设计出针对性的硬件架构,因此有着高功耗比的特点。但是其部署方法存在特殊性与局限性,难以扩展,部署周期长。覆盖层设计则是设计通用硬件架构来支持所有模型算法,因此具有较高的可扩展性与移植性。但是其可扩展性与硬件架构高度相关,可扩展性越强,硬件架构中单元数以及资源占用也越多。同时覆盖层设计缺少模型算法维度的优化,从而运行效率低于定制化设计。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
当前方法都存在各自的缺点,定制化设计存在低扩展性,部署周期长,覆盖层设计由于缺少模型算法维度的优化,硬件架构支持不足而导致的运行效率不足及低资源利用率问题。综合来说,目前的方法难以实现扩展性和运行效率之间的平衡。
发明内容
本发明提供了一种基于模型算法划分的神经网络模型部署方法及装置,用以解决或者至少部分解决现有技术中难以实现扩展性和运行效率之间的平衡的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种基于模型算法划分的神经网络模型部署方法,包括:
S1:根据神经网络模型的参数量与数据量对资源消耗与运行时延进行分析与评估,构建时延约束与资源约束;
S2:从神经网络模型抽取出与所有的算法以及对应的计算顺序,将所有的算法划分为通用算法和与模型功能相关的算法,并构成功能算法集合,根据神经网络模型的计算顺序设计功能算法集合中不同类型算法的执行顺序;
S3:根据构建的资源约束构建依次包括点乘单元,加法单元和数据重排单元的硬件架构,其中,所述点乘单元用于完成两个固定长度数据流的点乘计算;所述加法单元用于完成两个固定长度数据流的加法计算;所述数据重排单元用于在计算过程中对数据块的维度进行转换;
S4:根据功能算法集合中的通用算法构建通用算法模块,通用算法模块包括计算操作和基础数据处理操作,其中,所述通用算法模块中的计算操作由硬件架构中的点乘单元与加法单元实现;通用算法模块中的基础数据处理操作由硬件架构中的数据重排单元实现;根据功能算法集合中与模型功能相关的算法构建模型相关算法模块,模型相关算法模块包括计算操作、数据处理操作和其他计算操作,其中,所述模型相关算法模块中的计算操作根据模型功能相关的算法实现;模型相关算法模块中的数据处理操作由硬件架构中的数据重排单元实现,模型相关算法模块中的其他计算操作,导入算法所需的外部计算函数并设计对应的计算流程,同一个算法模块用以描述算法相同但规模和参数不同的计算,提取出区分算法相同但规模和参数不同的计算的条件作为超参数;
S5:根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序,将算法模块的调用顺序、算法模块以及硬件架构组成模型推理系统,完成神经网络模型的部署。
在一种实施方式中,步骤S1采用分层方式计算神经网络模型的时延约束与资源约束,每一层参与计算的数据包括输入数据、模型参数和输出数据,分别对应输入矩阵,权重矩阵和输出矩阵,尺寸分别为[D1,D2,D3],[D1,D3,D4]以及[D1,D2,D4],S1具体包括:
S1.1:根据神经网络模型中每一层中不同数据的尺寸和AXI总线端口数分别计算输入数据或模型参数从内部存储器加载至目标单元所需的时钟周期数和输出数据从内部存储器传输至外部存储器所需的时钟周期数:
尺寸中,第一个尺寸D1表示矩阵的通道维度大小,后两个尺寸分别表示高维度大小和宽维度大小,D2为输入矩阵的高维度大小和输出矩阵的高维度大小,D3为输入矩阵的宽维度大小和权重矩阵的高维度大小,D4为权重矩阵的宽维度大小和输出矩阵的宽维度大小,Adata表示用于传输数据的AXI总线的端口数目,AParameter表示用于传输模型参数的AXI总线的端口数目;
S1.2:根据硬件平台上可用的查找表数和数字信号处理元件数设置点乘单元与加法单元中单轮计算的数据长度,再计算对应的层中数据计算所需的时钟周期数:
其中,NLUT,NBRAM,NDSP分别表示硬件平台上可用的查找表数,块随机存储器数和数字信号处理元件数;
S1.3:根据步骤S1.1与步骤S1.2所得结果计算模型的某一层的总时钟周期数:
总时钟周期数(Ctotal)=max{Cin,Cparameter,Ccom}+Cout
S1.4:根据该层数据的尺寸计算该层计算过程中数据所需内部存储器存储空间与DSP资源消耗:
其中,T表示模型的层数;
步骤S1.5:根据单层的总时钟周期数,时钟周期和模型层数构建时延约束,由下述函数描述:
其中,L为时钟周期;
根据查找表数,块随机存储器数和数字信号处理元件数构建资源约束,由下述不等式描述:
Bin+Bparameter+Bout≤NBRAM
D3×D4≤2×NDSP
D3×D4≤NLUT。
在一种实施方式中,S3包括:
S3.1:设计指令分拣器,输入/输出口,局部控制器与数据/指令总线;
S3.2:根据点乘单元与加法单元中单轮计算的数据长度设计点乘单元与加法单元;
S3.3:根据数据块在存储空间中的格式与计算过程中的格式设计数据重排单元。
在一种实施方式中,在步骤S4之后,所述方法还包括:
当神经网络模型的架构存在多分支结构时,解除分支结构之间的数据依赖性,并确定多分支结构间相互并行各算法模块的调用顺序。
在一种实施方式中,当神经网络模型的架构存在多分支结构时,解除分支结构之间的数据依赖性,并确定多分支结构间相互并行各算法模块的调用顺序,包括:
确定多分支结构的输入数据以及每个分支结构的输入数据,通过对多分支结构的输入数据进行拆分,或者合并多分支结构的输出数据的方式以消除分支之间的数据依赖性;
将不同分支结构上的相同算法模块的运行顺序进行对齐;根据对齐后的算法模块来设置不同分支结构上的不同算法模块的调用顺序。
在一种实施方式中,在步骤S5根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序时,所述方法还包括:
将多分支结构之间的算法模块调用和单个算法模块的连续调用合并为一次调用,并导出最终的算法模块调用顺序。
在一种实施方式中,步骤S5包括:
S5.1:将算法模块调用顺序作为指令存储到内部块随机存取存储器中,模型参数、输入数据和输出数据均存储在外部动态随机存取存储器中;
S5.2:ARM核从内部块随机存取存储器读取指令后,对外部动态随机存取存储器中的数据进行读取,将读取的数据传输至数据重排单元进行处理,将本次调用对应的算法模块进入运行状态,当算法模块运行完成后向ARM核发出中断请求,开始算法模块调用顺序中的下一轮运行;
S5.3:模型推理系统运行完成,将最终输出数据存储至外部动态随机存取存储器中。
基于同样的发明构思,本发明第二方面提供了一种基于模型算法划分的神经网络模型部署装置,包括:
模型分析模块,用于根据神经网络模型的参数量与数据量对资源消耗与运行时延进行分析与评估,构建时延约束与资源约束;
模型算法划分模块,用于从神经网络模型抽取出与所有的算法以及对应的计算顺序,将所有的算法划分为通用算法和与模型功能相关的算法,并构成功能算法集合,根据神经网络模型的计算顺序设置功能算法集合中不同类型算法的执行顺序;
硬件架构构建模块,用于根据构建的资源约束构建依次包括点乘单元,加法单元和数据重排单元的硬件架构,其中,所述点乘单元用于完成两个固定长度数据流的点乘计算;所述加法单元用于完成两个固定长度数据流的加法计算;所述数据重排单元用于在计算过程中对数据块的维度进行转换;
算法模块设计模块,用于根据功能算法集合中的通用算法构建通用算法模块,通用算法模块包括计算操作和基础数据处理操作,其中,所述通用算法模块中的计算操作由硬件架构中的点乘单元与加法单元实现;通用算法模块中的基础数据处理操作由硬件架构中的数据重排单元实现;根据功能算法集合中与模型功能相关的算法构建模型相关算法模块,模型相关算法模块包括计算操作、数据处理操作和其他计算操作,其中,所述模型相关算法模块中的计算操作根据模型功能相关的算法实现;模型相关算法模块中的数据处理操作由硬件架构中的数据重排单元实现,模型相关算法模块中的其他计算操作,导入算法所需的外部计算函数并设计对应的计算流程,同一个算法模块用以描述算法相同但规模和参数不同的计算,提取出区分算法相同但规模和参数不同的计算的条件作为超参数;
推理系统生成模块,用于根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序,将算法模块的调用顺序、算法模块以及硬件架构组成模型推理系统,完成神经网络模型的部署。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
相对于现有技术,本发明的优点和有益的技术效果如下:
本发明提供的本发明提供的一种基于模型算法划分的神经网络模型部署方法,首先对神经网络模型中的资源消耗与时延进行分析,为模型的各层设置资源和时延的约束,用以指导后续算法模块的设计。然后对神经网络模型中的算法划分为通用算法和模型相关算法以及基于模块的调用顺序。通过模型划分架构,硬件架构可以不考虑特殊的模型算法,从而进行通用性设计来增加可扩展性。而算法模块则根据划分结果来依次设计,对于通用算法,对应算法模块由硬件架构中单元支持并实现;对于与模型功能的相关算法,对应算法模块则进行定制化设计,设计并导入算法函数和计算流程。最后根据算法模块调用顺序来调用各模块来运行整体模型推理系统,实现神经网络模型的部署,资源和时延约束则可以灵活的调整神经网络推理系统在运行效率和资源消耗之间的平衡。
在扩展性方面,本方案可以在各种基于矩阵运算的模型上实施,具有更强的扩展性。更主要的是在神经网络模型变更后,本方案可以有效的实现迁移,无需冗余设计。本方案先分析模型,如果模型中的算法相同则只需要修改算法模块调用顺序;如果模型中的算法不同则只需在算法模块设计时增加算法模块。在运行效率方面,在将模型中的算法分为通用算法和模型相关算法,通用算法(基于矩阵运算)由于计算模式固定,可以通过固化的硬件架构来实现更高效地计算。模型相关算法则是进行定制化设计。
本发明以模型算法划分的形式部署神经网络模型,通过模型相关算法模块保留定制化设计以及硬件架构统一地支持通用算法,在实现高扩展性的同时保证了较高的运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1:本发明提供的基于模型算法划分的神经网络模型部署方法的实现流程图;
图2:本发明实施例中模型划分流程图;
图3:本发明实施例中在可重构计算平台设计的硬件架构图;
图4:本发明实施例的在硬件架构中点乘单元的实现结构图;
图5:本发明实施例的在硬件架构中加法单元的实现结构图;
图6:本发明实施例的在硬件架构中数据重排单元的实现效果图;
图7:本发明实施例中基于模型算法划分的神经网络模型部署装置的结构框图;
图8:本发明实施例中一种计算机可读存储介质的结构框图;
图9:本发明实施例中一种计算机设备的结构图。
具体实施方式
本申请发明人通过大量的研究与实践发现:
现在方法主要依赖于对整体模型的定制化设计或设计硬件架构来支持整体模型。在当前的研究中,神经网络模型算法多样性让通用硬件架构难以支持所有算法也缺少算法维度的优化空间,同时定制化设计难以跟上神经网络模型算法迭代速度和适配新型神经网络模型。而实际上神经网络模型算法是基于矩阵运算和数据处理为基础进行改进或新增其他计算函数。神经网络模型存在着与硬件架构高度相关的通用算法,同时也存在需要定制化模块支持的模型相关算法,两者可以清晰地表示模型的通用程度和定制程度来更好地指导部署方案。
基于以上考虑,本发明提供了一种基于模型算法划分的神经网络模型部署方法及装置,以模型算法划分的形式将部署神经网络模型,由于模型相关算法模块保留定制化设计以及硬件架构统一地支持通用算法,实现高扩展性的同时保证高运行效率和资源利用率。
为达成上述目的,本发明的主要构思如下:
(1)从Transformer模型入手,进行模型中的算法进行划分,使用硬件架构支持通用算法,通过导入非线性函数实现模型相关算法;
(2)在FPGA开发板上实现Transformer模型的部署并进行分析;
(3)实现了算法维度以及矩阵运算两个维度的优化和部署,将本发明设计的方法在FPGA上进行验证,实验数据表明本发明设计的方法降低了资源消耗以及时延,对于Transformer模型通过模型算法划分的方法,实现了一定的优化。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种基于模型算法划分的神经网络模型部署方法,包括:
S1:根据神经网络模型的参数量与数据量对资源消耗与运行时延进行分析与评估,构建时延约束与资源约束;
S2:从神经网络模型抽取出与所有的算法以及对应的计算顺序,将所有的算法划分为通用算法和与模型功能相关的算法,并构成功能算法集合,根据神经网络模型的计算顺序设计功能算法集合中不同类型算法的执行顺序;
S3:根据构建的资源约束构建依次包括点乘单元,加法单元和数据重排单元的硬件架构,其中,所述点乘单元用于完成两个固定长度数据流的点乘计算;所述加法单元用于完成两个固定长度数据流的加法计算;所述数据重排单元用于在计算过程中对数据块的维度进行转换;
S4:根据功能算法集合中的通用算法构建通用算法模块,通用算法模块包括计算操作和基础数据处理操作,其中,所述通用算法模块中的计算操作由硬件架构中的点乘单元与加法单元实现;通用算法模块中的基础数据处理操作由硬件架构中的数据重排单元实现;根据功能算法集合中与模型功能相关的算法构建模型相关算法模块,模型相关算法模块包括计算操作、数据处理操作和其他计算操作,其中,所述模型相关算法模块中的计算操作根据模型功能相关的算法实现;模型相关算法模块中的数据处理操作由硬件架构中的数据重排单元实现,模型相关算法模块中的其他计算操作,导入算法所需的外部计算函数并设计对应的计算流程,同一个算法模块用以描述算法相同但规模和参数不同的计算,提取出区分算法相同但规模和参数不同的计算的条件作为超参数;
S5:根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序,将算法模块的调用顺序、算法模块以及硬件架构组成模型推理系统,完成神经网络模型的部署。
请参见图1,为本发明提供的基于模型算法划分的神经网络模型部署方法的实现流程图。
具体实施过程中,神经网络模型为标准Transformer模型。
部署方案包括算法模块(包含执行顺序)和硬件架构。推理系统的主要作用在基于本硬件架构的硬件平台上通过按执行顺序调用算法模块来进行模型推理任务。
总体来说,本发明基于模型算法划分的思路,公开了一种基于模型算法划分的神经网络模型部署方法及装置,对Transformer模型进行资源与时延约束分析,通过模型算法划分、硬件架构构建、模型推理系统生成的方式实现神经网络模型部署方案。使用HLS(HighLevelSynthesis)在FPGA平台ZCU102验证了Transformer模型部署的实验工作。本发明对部署Transformer的模型推理系统在资源利用率和时延方面都有明显的提高。
在一种实施方式中,步骤S1采用分层方式计算神经网络模型的时延约束与资源约束,每一层参与计算的数据包括输入数据、模型参数和输出数据,分别对应输入矩阵,权重矩阵和输出矩阵,尺寸分别为[D1,D2,D3],[D1,D3,D4]以及[D1,D2,D4],S1具体包括:
S1.1:根据神经网络模型中每一层中不同数据的尺寸和AXI总线端口数分别计算输入数据或模型参数从内部存储器加载至目标单元所需的时钟周期数和输出数据从内部存储器传输至外部存储器所需的时钟周期数:
尺寸中,第一个尺寸D1表示矩阵的通道维度大小,后两个尺寸分别表示高维度大小和宽维度大小,D2为输入矩阵的高维度大小和输出矩阵的高维度大小,D3为输入矩阵的宽维度大小和权重矩阵的高维度大小,D4为权重矩阵的宽维度大小和输出矩阵的宽维度大小,Adata表示用于传输数据的AXI总线的端口数目,AParameter表示用于传输模型参数的AXI总线的端口数目;
S1.2:根据硬件平台上可用的查找表数和数字信号处理元件数设置点乘单元与加法单元中单轮计算的数据长度,再计算对应的层中数据计算所需的时钟周期数:
其中,NLUT,NBRAM,NDSP分别表示硬件平台上可用的查找表数,块随机存储器数和数字信号处理元件数;
S1.3:根据步骤S1.1与步骤S1.2所得结果计算模型的某一层的总时钟周期数:
总时钟周期数(Ctotal)=max{Cin,Cparameter,Ccom}+Cout
S1.4:根据该层数据的尺寸计算该层计算过程中数据所需内部存储器存储空间与DSP资源消耗:
其中,T表示模型的层数,18k为块随机存储器数的位数;
步骤S1.5:根据单层的总时钟周期数,时钟周期和模型层数构建时延约束,由下述函数描述:
其中,L为时钟周期;
根据查找表数,块随机存储器数和数字信号处理元件数构建资源约束,由下述不等式描述:
Bin+Bparameter+Bout≤NBRAM
D3×D4≤2×NDSP
D3×D4≤NLUT。
具体来说,步骤S1评估模型的资源消耗和时延,评估得到的目标函数和约束不等式的作用是根据平衡BRAM资源消耗,DSP资源消耗与运行效率。由于不同的硬件平台有不同的BRAM资源数量和DSP资源消耗。评估得到的资源消耗和时延可以为硬件架构构建与模型推理系统生成提供可行性测试和优化范围。
评估得到的硬件资源消耗和时延的具体作用为:提供步骤S3的硬件架构构建操作中资源消耗可行性范围;提供步骤S4的模型相关算法模块优化操作中资源消耗上限;提供步骤S5的模型推理系统优化操作提供时延范围。
具体实施过程中,步骤S1采用了分层方式来计算整体模型的存储空间与时延(时延=时钟周期数×时钟周期),假设模型根据计算流程可以分为T层,每层将上层的输出数据作为输出数据,该层的输出数据作为下一层的输入数据。某一层参与计算的数据可以分为输入数据,模型参数以及输出数据,三者分别对应输入矩阵,权重矩阵和输出矩阵以及尺寸分别为[D1,D2,D3],[D1,D3,D4]以及[D1,D2,D4]。硬件平台上可用的查找表数(LUT),块随机存储器数(BRAM)和数字信号处理元件数(DSP)为NLUT,NBRAM,NDSP,而用于传输数据和参数的AXI总线的端口数目分别为Adata,AParameter,时钟周期是L,[]表示取整操作。
在一种实施方式中,S3包括:
S3.1:设计指令分拣器,输入/输出口,局部控制器与数据/指令总线;
S3.2:根据点乘单元与加法单元中单轮计算的数据长度((F,G))设计点乘单元与加法单元;
S3.3:根据数据块在存储空间中的格式与计算过程中的格式设计数据重排单元。
请参见图3,为本发明实施例中在可重构计算平台上的硬件架构图,请参见图4与图5,为本发明实施例的在硬件架构中点乘单元,加法单元的实现结构图。请参见图6,为本发明实施例的在硬件架构中数据重排单元的实现效果图。
在具体实施过程中,在步骤S4中,根据Transformer模型导入GELU函数,LayerNrom算法所需的开方函数,SoftMax算法所需的指数函数和对数函数。
在一种实施方式中,在步骤S4之后,所述方法还包括:
当神经网络模型的架构存在多分支结构时,解除分支结构之间的数据依赖性,并确定多分支结构间相互并行各算法模块的调用顺序。
具体来说,根据神经网络模型中包括的算法是否与模型的功能相关,可以将算法分为通用算法和于模型功能先关的算法。
具体实施时,对神经网络模型中不同阶段的计算根据算法特征进行合并。用统一的算法模块来描述算法相同但规模和参数不同的计算,并提取出区分这些计算的条件作为超参数。提取出的超参数和涉及的不同类型算法的执行顺序在后续步骤中用于生成算法模块的调用顺序。算法模块在不同的调用下输入矩阵,权重矩阵的数据格式不同,超参数可以用来修改算法模块的计算规模来适配不同的数据格式。
若模型架构存在多分支结构,解除分支之间的数据依赖性并确定多分支间相互并行的各算法模块的调用顺序。将算法模块进一步划分为通用算法模块和模型相关算法模块。通用算法模块由乘法累加运算或数据格式转换操作组成;模型相关算法模块则存在非线性函数或其他特殊算法。再根据划分后的算法模块、超参数以及原神经网络模型计算顺序来设置算法模块的调用顺序。
在一种实施方式中,当神经网络模型的架构存在多分支结构时,解除分支结构之间的数据依赖性,并确定多分支结构间相互并行各算法模块的调用顺序,包括:
确定多分支结构的输入数据以及每个分支结构的输入数据,通过对多分支结构的输入数据进行拆分,或者合并多分支结构的输出数据的方式以消除分支之间的数据依赖性;
将不同分支结构上的相同算法模块的运行顺序进行对齐;根据对齐后的算法模块来设置不同分支结构上的不同算法模块的调用顺序。
具体实施过程中,可以通过设置额外的矩阵拆分模块来进行数据拆分。按照模型本身的计算顺序确定多条分支上各算法模块之间的运行顺序。
在一种实施方式中,在步骤S5根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序时,所述方法还包括:
将多分支结构之间的算法模块调用和单个算法模块的连续调用合并为一次调用,并导出最终的算法模块调用顺序。
具体来说,通过将算法映射到点乘和加法维度来对算法模块进行拆分。通用算法模块由乘法累加运算或数据格式转换操作组成;模型相关算法模块则存在非线性函数或其他计算函数。其中,针对模型相关算法模块中,记录算法所需的非线性函数或其他计算函数以及对应计算流程。最终导出算法模块集合。
保证划分后的算法模块可以实现模型中的所有算法,根据算法模块集合需要设计了对应的调用顺序,其中,所述调用顺序包含了整个模型推理周期中各算法模块调用的顺序。
将多分支之间的算法模块调用和单个算法模块的连续调用合并为一次调用来保证多分支间的并行计算以及减少指令所占内部存储空间,然后导出最终的算法模块调用顺序。
具体地,划分模型算法并导出执基于模块的执行顺序,算法模块集合的作用是区分模型中的通用算法和特有算法(与模型功能相关的算法)并以模型的形式实现。执行顺序的作用是保证划分后的功能模块能够精确地描述原模型的运行流程。
划分得到的算法模块集合和执行顺序的具体作用为:提供通用算法模块实现操作中模块数量和功能;提供模型相关算法模块实现操作中模块数量和功能;并在生成推理系统中,提供模型推理系统操作提供指令。
对于多分支结构之间的算法模块的调用,合并为一次调用,单个算法模块的连续调用合并为一次调用,其中,连续调用指一个算法模块在执行顺序中被连续调用多次。
请参见图2,为本发明实施例中的模型划分流程图。
在具体实施过程中,步骤S2所得的功能算法集合具体包括:矩阵乘法,GELU,SoftMax,LayerNorm,转置,矩阵拆分。
在一种实施方式中,步骤S5包括:
S5.1:将算法模块调用顺序作为指令存储到内部块随机存取存储器中,模型参数、输入数据和输出数据均存储在外部动态随机存取存储器中;
S5.2:ARM核从内部块随机存取存储器读取指令后,对外部动态随机存取存储器中的数据进行读取,将读取的数据传输至数据重排单元进行处理,将本次调用对应的算法模块进入运行状态,当算法模块运行完成后向ARM核发出中断请求,开始算法模块调用顺序中的下一轮运行;
S5.3:模型推理系统运行完成,将最终输出数据存储至外部动态随机存取存储器中。
本方案与(专利申请CN115130672A-一种软硬件协同优化卷积神经网络计算的方法及装置)的主要区别是:
a.本方案的适用范围更为广泛,可以在各种基于矩阵运算的模型(例如Transformer模型)上实施。而之前方案只能在卷积神经网络上实施(卷积神经网络也是基于矩阵运算)。
b.本方案的扩展性更强,之前方案在神经网络模型改变后,需要重复所有步骤。而本发明的方案先分析模型,如果模型中的算法相同,则只需要修改执行顺序(通过超参数修改模块的计算规模);如果模型中算法不同,则只需要设计与其对应的算法模块。
c.本方案的运行效率更高,将模型中的包含的算法分为通用算法和模型相关算法,通用算法(基于矩阵运算)由于计算模式固定,可以通过固化的硬件架构来实现更高效地计算。而之前的方案需要考虑不同卷积所对应的不同计算模型。模型相关算法则是类似与之间方案进行定制化设计。
因此,本发明的方法相对于现有方法来说,具有如下优点和有益技术效果:
1.区别a和b所带来的高扩展性;
2区别c所带来的高运行效率;
3.资源和时延约束可以灵活的调整方案在运行效率和资源消耗之间的平衡。
具体实施过程中,步骤S5之后,还包括S6:整体评估硬件架构的资源消耗与模型推理系统的时延。利用部署好的模型推理系统(例如Transformer模型)对输入数据“einemutter und ihr kleiner sohn genieβen einentag im freien.”进行翻译,获得结果“a mother and her son enjoy a beautiful day outdoors.”。
为了说明本发明在运行效率与可扩展性方面的效果,可见表1和表2的实验结果。表1中显示了本发明的实验和其他方法加速的数据对比,包含指标时钟频率、功耗、DSP(数字信号处理元件数消耗)、BRAM(块随机存储器数消耗)FPS(每秒传输帧数)、FPS/DSP(每秒传输帧数和数字信号处理元件数消耗的比值,用于衡量资源的利用率)。
方法1-方法3是本发明需要对比的基线方法。方法1是基于定制化设计的部署方法,它针对Transformer的多头注意力和前馈神经网络算法进行针对性的算法优化并设计对应的硬件单元,因此方法1的FPS是本方法的1.04倍,但是由于定制化的硬件单元结构和计算流程更为复杂,因此它的DSP消耗远大于本发明,达到了11.1倍,而计算流程的延长可以将暂存的数据更加均衡地分配在计算流中,因此BRAM消耗也相对减少。在综合对比运行效率和资源消耗,本发明资源利用方面率的FPS/DSP是方法1的10.6倍。方法2是基于覆盖层设计的部署方法,它针对Transformer的非线性函数进行线性拟合并和其他线性计算一起映射到通用硬件架构,因此它缺少算法维度的优化,同时用于向量计算的单元所占资源应大于本方法。在DSP消耗是本方法的3.2倍与BRAM消耗相似情况下,方法2的FPS仅是本方法的0.75倍。而在资源利用率方面,本发明的FPS/DSP是方法2的4.32倍。方法3则是基于参数全量化的部署方法,因此它的计算精度会受到限制。它的目标模型的参数量要大于本发明的标准Transformer模型,因此资源消耗与FPS指标仅供参考,但FPS/DSP指标则证明本发明可以在更高的计算精度下更好地利用资源实现神经网络模型算法。
表1本发明与其他方法运行Transformer类模型在运行效率与资源消耗指标上的对比
指标/方法 | 方法1 | 方法2 | 方法3 | 本发明 |
时钟频率 | - | 200M | 214M | 200M |
功耗 | 25.96W | 20W | 9.8 | 9.9W |
DSP | 6840 | 2020 | 1751 | 617 |
BRAM | 345.9 | 526.5 | 838 | 597.5 |
FPS | 101.79 | 73.69 | 22.74 | 97.64 |
FPS/DSP | 0.0148 | 0.0365 | 0.0129 | 0.158 |
表2显示了本发明在不同模型之间扩展并快速部署的效果对比。标准Transformer是本实验的基线模型。当目标模型为Lite-Transformer时,模型增加了额外的卷积计算。根据本发明步骤,对应层的时延与资源约束重新计算;硬件架构不变;算法模块集合需要新增卷积模块;模块设计步骤则需要设计其对应的模块来拆解卷积循环并映射至点乘单元与数据重排单元;模型推理系统的算法模块集合和调用顺序增加对应模块。由于计算与模块的增加,Lite-Transformer的DSP与BRAM消耗分别增加了146和124.2,而额外的卷积分支则增加了并行计算压力,从而导致FPS的降低。当目标模型为Linformer时,模型增加了用于投影的通用算法。根据本发明步骤,对应层的时延与资源约束重新计算;硬件架构不变;算法模块集合不变;模块设计步骤不变;模型推理系统的调用顺序减少对应的SoftMax模块以及增加对应的矩阵乘法模块。由于没有新增算法反而减少了SoftMax模块的调用,Linformer在资源消耗不变的情况下有着更高的FPS。
表2本发明扩展其他Transformer类模型在运行效率与资源消耗指标上的对比
指标/模型 | Transformer | Lite-Transformer | Linformer |
时钟频率 | 200M | 200M | 200M |
功耗 | 9.9W | 11.2W | 9.5W |
DSP | 617 | 763(+146) | 617(+0) |
BRAM | 597.5 | 721.7(124.2) | 597.5(+0) |
FPS | 97.64 | 83.24 | 110.02 |
FPS/DSP | 0.158 | 0.109 | 0.179 |
实施例二
基于同样的发明构思,本实施例提供了一种基于模型算法划分的神经网络模型部署装置,请参见图7,该装置包括:
模型分析模块201,用于根据神经网络模型的参数量与数据量对资源消耗与运行时延进行分析与评估,构建时延约束与资源约束;
模型算法划分模块202,用于从神经网络模型抽取出与所有的算法以及对应的计算顺序,将所有的算法划分为通用算法和与模型功能相关的算法,并构成功能算法集合,根据神经网络模型的计算顺序设置功能算法集合中不同类型算法的执行顺序;
硬件架构构建模块203,用于根据构建的资源约束构建依次包括点乘单元,加法单元和数据重排单元的硬件架构,其中,所述点乘单元用于完成两个固定长度数据流的点乘计算;所述加法单元用于完成两个固定长度数据流的加法计算;所述数据重排单元用于在计算过程中对数据块的维度进行转换;
算法模块设计模块204,用于根据功能算法集合中的通用算法构建通用算法模块,通用算法模块包括计算操作和基础数据处理操作,其中,所述通用算法模块中的计算操作由硬件架构中的点乘单元与加法单元实现;通用算法模块中的基础数据处理操作由硬件架构中的数据重排单元实现;根据功能算法集合中与模型功能相关的算法构建模型相关算法模块,模型相关算法模块包括计算操作、数据处理操作和其他计算操作,其中,所述模型相关算法模块中的计算操作根据模型功能相关的算法实现;模型相关算法模块中的数据处理操作由硬件架构中的数据重排单元实现,模型相关算法模块中的其他计算操作,导入算法所需的外部计算函数并设计对应的计算流程,同一个算法模块用以描述算法相同但规模和参数不同的计算,提取出区分算法相同但规模和参数不同的计算的条件作为超参数;
推理系统生成模块205,用于根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序,将算法模块的调用顺序、算法模块以及硬件架构组成模型推理系统,完成神经网络模型的部署。
由于本发明实施例二所介绍的装置为实施本发明实施例一中基于模型算法划分的神经网络模型部署方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的装置都属于本发明所欲保护的范围。
实施例三
基于同一发明构思,请参见图8,本发明还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。
由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于模型算法划分的神经网络模型部署方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,如图9所示,包括存储器401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器执行上述程序时实现实施例一中的方法。
由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于模型算法划分的神经网络模型部署方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于模型算法划分的神经网络模型部署方法,其特征在于,包括:
S1:根据神经网络模型的参数量与数据量对资源消耗与运行时延进行分析与评估,构建时延约束与资源约束;
S2:从神经网络模型抽取出与所有的算法以及对应的计算顺序,将所有的算法划分为通用算法和与模型功能相关的算法,并构成功能算法集合,根据神经网络模型的计算顺序设计功能算法集合中不同类型算法的执行顺序;
S3:根据构建的资源约束构建依次包括点乘单元,加法单元和数据重排单元的硬件架构,其中,所述点乘单元用于完成两个固定长度数据流的点乘计算;所述加法单元用于完成两个固定长度数据流的加法计算;所述数据重排单元用于在计算过程中对数据块的维度进行转换;
S4:根据功能算法集合中的通用算法构建通用算法模块,通用算法模块包括计算操作和基础数据处理操作,其中,所述通用算法模块中的计算操作由硬件架构中的点乘单元与加法单元实现;通用算法模块中的基础数据处理操作由硬件架构中的数据重排单元实现;根据功能算法集合中与模型功能相关的算法构建模型相关算法模块,模型相关算法模块包括计算操作、数据处理操作和其他计算操作,其中,所述模型相关算法模块中的计算操作根据模型功能相关的算法实现;模型相关算法模块中的数据处理操作由硬件架构中的数据重排单元实现,模型相关算法模块中的其他计算操作,导入算法所需的外部计算函数并设计对应的计算流程,同一个算法模块用以描述算法相同但规模和参数不同的计算,提取出区分算法相同但规模和参数不同的计算的条件作为超参数;
S5:根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序,将算法模块的调用顺序、算法模块以及硬件架构组成模型推理系统,完成神经网络模型的部署。
2.如权利要求1所述的基于模型算法划分的神经网络模型部署方法,其特征在于,步骤S1采用分层方式计算神经网络模型的时延约束与资源约束,每一层参与计算的数据包括输入数据、模型参数和输出数据,分别对应输入矩阵,权重矩阵和输出矩阵,尺寸分别为[D1,D2,D3],[D1,D3,D4]以及[D1,D2,D4],S1具体包括:
S1.1:根据神经网络模型中每一层中不同数据的尺寸和AXI总线端口数分别计算输入数据或模型参数从内部存储器加载至目标单元所需的时钟周期数和输出数据从内部存储器传输至外部存储器所需的时钟周期数:
尺寸中,第一个尺寸D1表示矩阵的通道维度大小,后两个尺寸分别表示高维度大小和宽维度大小,D2为输入矩阵的高维度大小和输出矩阵的高维度大小,D3为输入矩阵的宽维度大小和权重矩阵的高维度大小,D4为权重矩阵的宽维度大小和输出矩阵的宽维度大小,Adata表示用于传输数据的AXI总线的端口数目,AParameter表示用于传输模型参数的AXI总线的端口数目;
S1.2:根据硬件平台上可用的查找表数和数字信号处理元件数设置点乘单元与加法单元中单轮计算的数据长度,再计算对应的层中数据计算所需的时钟周期数:
其中,NLUT,NBRAM,NDSP分别表示硬件平台上可用的查找表数,块随机存储器数和数字信号处理元件数;
S1.3:根据步骤S1.1与步骤S1.2所得结果计算模型的某一层的总时钟周期数:
总时钟周期数(Ctotal)=max{Cin,Cparameter,Ccom}+Cout
S1.4:根据该层数据的尺寸计算该层计算过程中数据所需内部存储器存储空间与DSP资源消耗:
其中,T表示模型的层数;
步骤S1.5:根据单层的总时钟周期数,时钟周期和模型层数构建时延约束,由下述函数描述:
其中,L为时钟周期;
根据查找表数,块随机存储器数和数字信号处理元件数构建资源约束,由下述不等式描述:
Bin+Bparameter+Bout≤NBRAM
D3×D4≤2×NDSP
D3×D4≤NLUT。
3.如权利要求2所述的基于模型算法划分的神经网络模型部署方法,其特征在于,S3包括:
S3.1:设计指令分拣器,输入/输出口,局部控制器与数据/指令总线;
S3.2:根据点乘单元与加法单元中单轮计算的数据长度设计点乘单元与加法单元;
S3.3:根据数据块在存储空间中的格式与计算过程中的格式设计数据重排单元。
4.如权利要求1所述的基于模型算法划分的神经网络模型部署方法,其特征在于,在步骤S4之后,所述方法还包括:
当神经网络模型的架构存在多分支结构时,解除分支结构之间的数据依赖性,并确定多分支结构间相互并行各算法模块的调用顺序。
5.如权利要求1所述的基于模型算法划分的神经网络模型部署方法,其特征在于,当神经网络模型的架构存在多分支结构时,解除分支结构之间的数据依赖性,并确定多分支结构间相互并行各算法模块的调用顺序,包括:
确定多分支结构的输入数据以及每个分支结构的输入数据,通过对多分支结构的输入数据进行拆分,或者合并多分支结构的输出数据的方式以消除分支之间的数据依赖性;
将不同分支结构上的相同算法模块的运行顺序进行对齐;根据对齐后的算法模块来设置不同分支结构上的不同算法模块的调用顺序。
6.如权利要求5所述的基于模型算法划分的神经网络模型部署方法,其特征在于,在步骤S5根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序时,所述方法还包括:
将多分支结构之间的算法模块调用和单个算法模块的连续调用合并为一次调用,并导出最终的算法模块调用顺序。
7.如权利要求1所述的基于模型算法划分的神经网络模型部署方法,其特征在于,步骤S5包括:
S5.1:将算法模块调用顺序作为指令存储到内部块随机存取存储器中,模型参数、输入数据和输出数据均存储在外部动态随机存取存储器中;
S5.2:ARM核从内部块随机存取存储器读取指令后,对外部动态随机存取存储器中的数据进行读取,将读取的数据传输至数据重排单元进行处理,将本次调用对应的算法模块进入运行状态,当算法模块运行完成后向ARM核发出中断请求,开始算法模块调用顺序中的下一轮运行;
S5.3:模型推理系统运行完成,将最终输出数据存储至外部动态随机存取存储器中。
8.一种基于模型算法划分的神经网络模型部署装置,其特征在于,包括:
模型分析模块,用于根据神经网络模型的参数量与数据量对资源消耗与运行时延进行分析与评估,构建时延约束与资源约束;
模型算法划分模块,用于从神经网络模型抽取出与所有的算法以及对应的计算顺序,将所有的算法划分为通用算法和与模型功能相关的算法,并构成功能算法集合,根据神经网络模型的计算顺序设置功能算法集合中不同类型算法的执行顺序;
硬件架构构建模块,用于根据构建的资源约束构建依次包括点乘单元,加法单元和数据重排单元的硬件架构,其中,所述点乘单元用于完成两个固定长度数据流的点乘计算;所述加法单元用于完成两个固定长度数据流的加法计算;所述数据重排单元用于在计算过程中对数据块的维度进行转换;
算法模块设计模块,用于根据功能算法集合中的通用算法构建通用算法模块,通用算法模块包括计算操作和基础数据处理操作,其中,所述通用算法模块中的计算操作由硬件架构中的点乘单元与加法单元实现;通用算法模块中的基础数据处理操作由硬件架构中的数据重排单元实现;根据功能算法集合中与模型功能相关的算法构建模型相关算法模块,模型相关算法模块包括计算操作、数据处理操作和其他计算操作,其中,所述模型相关算法模块中的计算操作根据模型功能相关的算法实现;模型相关算法模块中的数据处理操作由硬件架构中的数据重排单元实现,模型相关算法模块中的其他计算操作,导入算法所需的外部计算函数并设计对应的计算流程,同一个算法模块用以描述算法相同但规模和参数不同的计算,提取出区分算法相同但规模和参数不同的计算的条件作为超参数;
推理系统生成模块,用于根据功能算法集合中不同类型算法的执行顺序、超参数与时延约束设计通用算法模块和模型相关算法模块的调用顺序,将算法模块的调用顺序、算法模块以及硬件架构组成模型推理系统,完成神经网络模型的部署。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至7中任一项权利要求所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211397117.9A CN115906917B (zh) | 2022-11-09 | 2022-11-09 | 一种基于模型算法划分的神经网络模型部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211397117.9A CN115906917B (zh) | 2022-11-09 | 2022-11-09 | 一种基于模型算法划分的神经网络模型部署方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115906917A true CN115906917A (zh) | 2023-04-04 |
CN115906917B CN115906917B (zh) | 2024-01-30 |
Family
ID=86481714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211397117.9A Active CN115906917B (zh) | 2022-11-09 | 2022-11-09 | 一种基于模型算法划分的神经网络模型部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115906917B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN111033529A (zh) * | 2017-08-15 | 2020-04-17 | 赛灵思公司 | 神经网络的架构优化训练 |
CN111242289A (zh) * | 2020-01-19 | 2020-06-05 | 清华大学 | 一种规模可扩展的卷积神经网络加速系统与方法 |
US20210056420A1 (en) * | 2018-05-10 | 2021-02-25 | Panasonic Semiconductor Solutions Co., Ltd. | Neural network construction device, information processing device, neural network construction method, and recording medium |
CN113076938A (zh) * | 2021-05-06 | 2021-07-06 | 广西师范大学 | 一种结合嵌入式硬件信息的深度学习目标检测方法 |
CN113780542A (zh) * | 2021-09-08 | 2021-12-10 | 北京航空航天大学杭州创新研究院 | 一种面向fpga的多目标网络结构的构建方法 |
CN115130672A (zh) * | 2022-06-08 | 2022-09-30 | 武汉大学 | 一种软硬件协同优化卷积神经网络计算的方法及装置 |
CN115238851A (zh) * | 2021-04-22 | 2022-10-25 | 辉达公司 | 神经网络的内核生成 |
-
2022
- 2022-11-09 CN CN202211397117.9A patent/CN115906917B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111033529A (zh) * | 2017-08-15 | 2020-04-17 | 赛灵思公司 | 神经网络的架构优化训练 |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
US20210056420A1 (en) * | 2018-05-10 | 2021-02-25 | Panasonic Semiconductor Solutions Co., Ltd. | Neural network construction device, information processing device, neural network construction method, and recording medium |
CN111242289A (zh) * | 2020-01-19 | 2020-06-05 | 清华大学 | 一种规模可扩展的卷积神经网络加速系统与方法 |
CN115238851A (zh) * | 2021-04-22 | 2022-10-25 | 辉达公司 | 神经网络的内核生成 |
CN113076938A (zh) * | 2021-05-06 | 2021-07-06 | 广西师范大学 | 一种结合嵌入式硬件信息的深度学习目标检测方法 |
CN113780542A (zh) * | 2021-09-08 | 2021-12-10 | 北京航空航天大学杭州创新研究院 | 一种面向fpga的多目标网络结构的构建方法 |
CN115130672A (zh) * | 2022-06-08 | 2022-09-30 | 武汉大学 | 一种软硬件协同优化卷积神经网络计算的方法及装置 |
Non-Patent Citations (3)
Title |
---|
NING ZHAO: "Exponential passive filtering for a class of neutral-type neural networks with time-varying mixed delays", 《2017 29TH CHINESE CONTROL AND DECISION CONFERENCE (CCDC)》 * |
王昊楠: "卷积神经网络的算法优化与高效部署", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 2 * |
赵子龙;赵毅强;叶茂;: "基于FPGA的多卷积神经网络任务实时切换方法", 南京大学学报(自然科学), no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN115906917B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
US10656962B2 (en) | Accelerate deep neural network in an FPGA | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
CN111242282B (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
CN110008952B (zh) | 一种目标识别方法及设备 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
US20220004858A1 (en) | Method for processing artificial neural network, and electronic device therefor | |
CN112052958A (zh) | 模型训练的方法、装置、设备及计算机可读存储介质 | |
EP3637327A1 (en) | Computing device and method | |
CN110826706A (zh) | 用于神经网络的数据处理方法和装置 | |
CN116762080A (zh) | 神经网络生成装置、神经网络运算装置、边缘设备、神经网络控制方法以及软件生成程序 | |
CN109102468B (zh) | 图像增强方法、装置、终端设备及存储介质 | |
US11551087B2 (en) | Information processor, information processing method, and storage medium | |
CN117201308A (zh) | 网络资源分配方法、系统、存储介质及电子设备 | |
CN115130672B (zh) | 一种软硬件协同优化卷积神经网络计算的方法及装置 | |
CN109740733B (zh) | 深度学习网络模型优化方法、装置及相关设备 | |
CN115906917A (zh) | 一种基于模型算法划分的神经网络模型部署方法及装置 | |
CN115496181A (zh) | 深度学习模型的芯片适配方法、装置、芯片及介质 | |
JP2021056734A (ja) | 情報処理装置、情報処理方法、情報処理プログラム | |
CN114897133A (zh) | 一种通用可配置的Transformer硬件加速器及其实现方法 | |
US11410036B2 (en) | Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program | |
CN114356738A (zh) | 预估执行神经网络模型所需时间的方法及相关产品 | |
CN114358253A (zh) | 一种神经网络模型的时间预估方法及相关产品 | |
CN114462592A (zh) | 模型训练方法、装置、电子设备及计算机可读存储介质 | |
Pan et al. | Hierarchical resampling algorithm and architecture for distributed particle filters |
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 |