CN111260036A - 一种神经网络加速方法和装置 - Google Patents
一种神经网络加速方法和装置 Download PDFInfo
- Publication number
- CN111260036A CN111260036A CN202010060295.7A CN202010060295A CN111260036A CN 111260036 A CN111260036 A CN 111260036A CN 202010060295 A CN202010060295 A CN 202010060295A CN 111260036 A CN111260036 A CN 111260036A
- Authority
- CN
- China
- Prior art keywords
- convolution
- size
- function
- neural network
- optimal
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims abstract description 89
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 47
- 230000007704 transition Effects 0.000 claims abstract description 18
- 230000002068 genetic effect Effects 0.000 claims abstract description 17
- 230000003044 adaptive effect Effects 0.000 claims abstract description 10
- 238000011156 evaluation Methods 0.000 claims abstract description 10
- 238000004364 calculation method Methods 0.000 claims abstract description 4
- 238000005457 optimization Methods 0.000 claims description 10
- 238000013135 deep learning Methods 0.000 abstract description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000002986 genetic algorithm method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
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/0499—Feedforward 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Neurology (AREA)
- Genetics & Genomics (AREA)
- Image Analysis (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种神经网络加速方法和装置,方法包括:读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,确定拆分工作空间所使用因子的最细粒度;生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成多重背包的状态转移方程;使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络。本发明能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度,进而提高图形处理器利用率和工作效率。
Description
技术领域
本发明涉及神经网络训练领域,更具体地,特别是指一种神经网络加速方法和装置。
背景技术
随着科学计算技术的发展,神经网络已经取得了飞速的发展,同时由于GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,而不断应用到新的领域,由于GPU出色的并行处理能力,GPU被广泛的应用到神经网络的训练和推理,目前推理主要应用NVIDIA的tensorRT,而tensorRT调用cudnn来进行推理的加速。
随着GPU技术的发展,并行计算计算量已经可以达到Tflops的级别,可以为神经网络提供高效的推理速度,但是仍然不能够满足日益增长的训练和推理任务,因此如何更加高效的应用GPU就成为了关键。Cudnn是NVIDIA专门为深度学习开发的动态库,可以执行深度学习中的前向卷积、后向卷积、矩阵乘等操作,每种操作需要占用一定大小的显存(即workspace size),同时也与输入矩阵的维度大小有关,后向卷积同样如此。
Ucudnn是在cudnn基础上发展起来的。ucudnn的出现为GPU的高效利用提高了思路,在有限制的显存空间内(workspace size限制),通过把batchsize拆分成更小的batchsize并且选择最快的算法不仅可以加快网络的训练,也可以节省显存,但是ucudnn的一个明显的缺点是在进行网络训练不考虑workspace size限制(即workspace size足够大)情况下,卷积执行最快的算法就是占用workspace最大的算法(即卷积占用显存的大小和卷积执行最快的算法呈线性关系),因此没有起到加速的作用。
针对现有技术中深度学习动态库在显存足够大时没有加速效果的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种神经网络加速方法和装置,能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度,进而提高图形处理器利用率和工作效率。
基于上述目的,本发明实施例的第一方面提供了一种神经网络加速方法,包括执行以下步骤:
读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;
根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;
以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;
使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络。
在一些实施方式中,最优化加速求解架构包括:卷积运算效率边界条件、显存最大值边界条件、神经网络每层配置边界条件。
在一些实施方式中,最优化加速求解架构为完全NP问题。
在一些实施方式中,前向卷积函数和后向卷积函数包括由图形处理器的UCUDNN动态库提供的以下函数:前向卷积工作空间大小函数、前向卷积工作算法函数、后向卷积数据工作空间大小函数、后向卷积数据工作算法函数、后向卷积过滤器工作空间大小函数、后向卷积过滤器工作算法函数。
在一些实施方式中,遗传算法的个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数加一,变量二进制位为20位,变异概率为0.1,交叉概率为0.9,编码步进量为2,每层网络参数配置为可配置级的大小的倒数。
本发明实施例的第二方面提供了一种神经网络加速装置,包括:
处理器;以及
存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现以下步骤:
读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;
根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;
以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;
使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络。
在一些实施方式中,最优化加速求解架构包括:卷积运算效率边界条件、显存最大值边界条件、神经网络每层配置边界条件。
在一些实施方式中,最优化加速求解架构为完全NP问题。
在一些实施方式中,前向卷积函数和后向卷积函数包括由图形处理器的UCUDNN动态库提供的以下函数:前向卷积工作空间大小函数、前向卷积工作算法函数、后向卷积数据工作空间大小函数、后向卷积数据工作算法函数、后向卷积过滤器工作空间大小函数、后向卷积过滤器工作算法函数。
在一些实施方式中,遗传算法的个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数加一,变量二进制位为20位,变异概率为0.1,交叉概率为0.9,编码步进量为2,每层网络参数配置为可配置级的大小的倒数。
本发明具有以下有益技术效果:本发明实施例提供的神经网络加速方法和装置,通过读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络的技术方案,能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度,进而提高图形处理器利用率和工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的神经网络加速方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度的神经网络加速方法的一个实施例。图1示出的是本发明提供的神经网络加速方法的流程示意图。
所述神经网络加速方法,如图1所示,包括执行以下步骤:
步骤S101:读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;
步骤S103:根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;
步骤S105:以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;
步骤S107:使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,最优化加速求解架构包括:卷积运算效率边界条件、显存最大值边界条件、神经网络每层配置边界条件。
在一些实施方式中,最优化加速求解架构为完全NP问题。
在一些实施方式中,前向卷积函数和后向卷积函数包括由图形处理器的UCUDNN动态库提供的以下函数:前向卷积工作空间大小函数、前向卷积工作算法函数、后向卷积数据工作空间大小函数、后向卷积数据工作算法函数、后向卷积过滤器工作空间大小函数、后向卷积过滤器工作算法函数。
在一些实施方式中,遗传算法的个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数加一,变量二进制位为20位,变异概率为0.1,交叉概率为0.9,编码步进量为2,每层网络参数配置为可配置级的大小的倒数。
根据本发明实施例公开的方法还可以被实现为由CPU(中央处理器)执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据具体实施例来进一步阐述本发明的具体实施方式。
在workspace size足够大的情况下,最优化加速过程的求解相当于求解NP完全问题:
其中,Mk(c)和Tk(c)分别表示卷积执行空间大小和执行时间的长短,Bk(c)表示在当前配置下的batchsize大小,xk,c表示在网络层k层时的配置,为1时表示当前配置被选中。公式(2)中M表示GPU显存大小,公式(1)单位为batchsize/s,衡量ucudnn的卷积运算效率,Ck表示网络层为k时的可配置集,K为网络总层数。
根据公式可以看出对于可配置集的搜索复杂度非常大,约为其中Mmin表示当前选用占用最小workspace size的卷积算法,显然是不能够在实际运算当中进行搜索的。因此将该问题转化为多重背包问题,则多重背包问题的状态转移方程为:
其中适应函数为公式(1)。
最后采用遗传算法方法来搜索全局最优解。设定可配置集Ck的大小,并确定拆分workspace的因子的最细粒度值,当Ck的最大配置值为32时可将workspace最细拆分为1/32,选中M大小,可以通过GPU的信息获得显存大小。
例如,设置个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数+1,变量的二进制位为20位,变异概率为0.1,交叉概率为0.9,由于训练时的batchsize一般为2的倍数,因此编码时可以以2为步进量,而每层网络参数配置为1/n(n为1中Ck中的配置),表示拆分workspace的因子,而在网络中拆分后micro batchsize的大小和算法的选择主要通过递减batchsize来获取空间和算法的确切值来和当前最快的算法作比较来找出合适的micro batchsize和算法。
获取WorkspaceSize和Algorithm的函数分别为:cudnn Get ConvolutionBackward Data Workspace Size和cudnn Get Convolution Backward Data Algorithm,cudnn Get Convolution Backward Filter Workspace Size和cudnn Get ConvolutionBackward Filter Algorithm(后向卷积)、cudnn Get Convolution Forward WorkspaceSize和cudnn Get Convolution Forward Algorithm(前向卷积),通过遗传算法的迭代,最终可以找到最优值。
从上述实施例可以看出,本发明实施例提供的神经网络加速方法,通过读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络的技术方案,能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度,进而提高图形处理器利用率和工作效率。
需要特别指出的是,上述神经网络加速方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于神经网络加速方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度的神经网络加速装置的一个实施例。神经网络加速装置包括:
处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现以下步骤:
读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;
根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;
以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;
使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络。
在一些实施方式中,最优化加速求解架构包括:卷积运算效率边界条件、显存最大值边界条件、神经网络每层配置边界条件。
在一些实施方式中,最优化加速求解架构为完全NP问题。
在一些实施方式中,前向卷积函数和后向卷积函数包括由图形处理器的UCUDNN动态库提供的以下函数:前向卷积工作空间大小函数、前向卷积工作算法函数、后向卷积数据工作空间大小函数、后向卷积数据工作算法函数、后向卷积过滤器工作空间大小函数、后向卷积过滤器工作算法函数。
在一些实施方式中,遗传算法的个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数加一,变量二进制位为20位,变异概率为0.1,交叉概率为0.9,编码步进量为2,每层网络参数配置为可配置级的大小的倒数。
从上述实施例可以看出,本发明实施例提供的神经网络加速装置,通过读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于可配置级的大小来确定拆分工作空间所使用因子的最细粒度;根据总显存大小、可配置级的大小、和最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;以最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为最优批次尺寸和最优网络层配置来加速神经网络的技术方案,能够在任何大小的显存环境下都提高深度学习动态库的神经网络运行速度,进而提高图形处理器利用率和工作效率。
需要特别指出的是,上述神经网络加速装置的实施例采用了所述神经网络加速方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述神经网络加速方法的其他实施例中。当然,由于所述神经网络加速方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述神经网络加速装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种神经网络加速方法,其特征在于,包括执行以下步骤:
读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于所述可配置级的大小来确定拆分工作空间所使用因子的最细粒度;
根据所述总显存大小、所述可配置级的大小、和所述最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;
以所述最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于所述最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;
使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代所述状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为所述最优批次尺寸和所述最优网络层配置来加速神经网络。
2.根据权利要求1所述的方法,其特征在于,所述最优化加速求解架构包括:卷积运算效率边界条件、显存最大值边界条件、神经网络每层配置边界条件。
3.根据权利要求1所述的方法,其特征在于,所述最优化加速求解架构为完全NP问题。
4.根据权利要求1所述的方法,其特征在于,所述前向卷积函数和所述后向卷积函数包括由图形处理器的UCUDNN动态库提供的以下函数:前向卷积工作空间大小函数、前向卷积工作算法函数、后向卷积数据工作空间大小函数、后向卷积数据工作算法函数、后向卷积过滤器工作空间大小函数、后向卷积过滤器工作算法函数。
5.根据权利要求1所述的方法,其特征在于,所述遗传算法的个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数加一,变量二进制位为20位,变异概率为0.1,交叉概率为0.9,编码步进量为2,每层网络参数配置为所述可配置级的大小的倒数。
6.一种神经网络加速装置,其特征在于,包括:
处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现以下步骤:
读取用于执行神经网络计算的图形处理器可用的总显存大小,设定可配置级的大小,并基于所述可配置级的大小来确定拆分工作空间所使用因子的最细粒度;
根据所述总显存大小、所述可配置级的大小、和所述最细粒度生成用于确定使卷积执行最快的最优批次尺寸和最优网络层配置的最优化加速求解架构;
以所述最优化加速求解架构中的卷积运算效率边界条件作为适应函数,来生成基于所述最优批次尺寸、卷积时间复杂度、和卷积空间复杂度的多重背包的状态转移方程;
使用以前向卷积函数和后向卷积函数作为评价依据的遗传算法来迭代所述状态转移方程直到获得收敛的批次尺寸和网络层配置,并将其作为所述最优批次尺寸和所述最优网络层配置来加速神经网络。
7.根据权利要求6所述的装置,其特征在于,所述最优化加速求解架构包括:卷积运算效率边界条件、显存最大值边界条件、神经网络每层配置边界条件。
8.根据权利要求6所述的装置,其特征在于,所述最优化加速求解架构为完全NP问题。
9.根据权利要求6所述的装置,其特征在于,所述前向卷积函数和所述后向卷积函数包括由图形处理器的UCUDNN动态库提供的以下函数:前向卷积工作空间大小函数、前向卷积工作算法函数、后向卷积数据工作空间大小函数、后向卷积数据工作算法函数、后向卷积过滤器工作空间大小函数、后向卷积过滤器工作算法函数。
10.根据权利要求6所述的装置,其特征在于,所述遗传算法的个体数目为40,最大迭代次数为2000,变量维数为神经网络的网络层数加一,变量二进制位为20位,变异概率为0.1,交叉概率为0.9,编码步进量为2,每层网络参数配置为所述可配置级的大小的倒数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010060295.7A CN111260036B (zh) | 2020-01-19 | 2020-01-19 | 一种神经网络加速方法和装置 |
US17/793,732 US11676002B2 (en) | 2020-01-19 | 2020-08-26 | Neural network accelerating method and device with efficient usage of total video memory size of GPUs |
PCT/CN2020/111401 WO2021143143A1 (zh) | 2020-01-19 | 2020-08-26 | 一种神经网络加速方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010060295.7A CN111260036B (zh) | 2020-01-19 | 2020-01-19 | 一种神经网络加速方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111260036A true CN111260036A (zh) | 2020-06-09 |
CN111260036B CN111260036B (zh) | 2023-01-10 |
Family
ID=70949307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010060295.7A Active CN111260036B (zh) | 2020-01-19 | 2020-01-19 | 一种神经网络加速方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11676002B2 (zh) |
CN (1) | CN111260036B (zh) |
WO (1) | WO2021143143A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021143143A1 (zh) * | 2020-01-19 | 2021-07-22 | 苏州浪潮智能科技有限公司 | 一种神经网络加速方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
US20190294413A1 (en) * | 2018-03-23 | 2019-09-26 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
CN110443357A (zh) * | 2019-08-07 | 2019-11-12 | 上海燧原智能科技有限公司 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
CN110633785A (zh) * | 2018-06-21 | 2019-12-31 | 清华大学 | 一种卷积神经网络的计算方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572587B (zh) * | 2014-12-23 | 2017-11-14 | 中国电子科技集团公司第三十八研究所 | 数据矩阵相乘的加速运算方法和装置 |
CN109902808B (zh) * | 2019-02-28 | 2023-09-26 | 华南理工大学 | 一种基于浮点数位变异遗传算法优化卷积神经网络的方法 |
CN111260036B (zh) * | 2020-01-19 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种神经网络加速方法和装置 |
-
2020
- 2020-01-19 CN CN202010060295.7A patent/CN111260036B/zh active Active
- 2020-08-26 US US17/793,732 patent/US11676002B2/en active Active
- 2020-08-26 WO PCT/CN2020/111401 patent/WO2021143143A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
US20190294413A1 (en) * | 2018-03-23 | 2019-09-26 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
CN110633785A (zh) * | 2018-06-21 | 2019-12-31 | 清华大学 | 一种卷积神经网络的计算方法及系统 |
CN110443357A (zh) * | 2019-08-07 | 2019-11-12 | 上海燧原智能科技有限公司 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021143143A1 (zh) * | 2020-01-19 | 2021-07-22 | 苏州浪潮智能科技有限公司 | 一种神经网络加速方法和装置 |
US11676002B2 (en) | 2020-01-19 | 2023-06-13 | Inspur Suzhou Intelligent Technology Co., Ltd. | Neural network accelerating method and device with efficient usage of total video memory size of GPUs |
Also Published As
Publication number | Publication date |
---|---|
US20230091385A1 (en) | 2023-03-23 |
CN111260036B (zh) | 2023-01-10 |
WO2021143143A1 (zh) | 2021-07-22 |
US11676002B2 (en) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3499428A1 (en) | Method and electronic device for convolution calculation in neutral network | |
CN107797962B (zh) | 基于神经网络的计算阵列 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
CN117574970A (zh) | 用于大规模语言模型的推理加速方法、系统、终端及介质 | |
CN113163004A (zh) | 一种工业互联网边缘任务卸载决策方法、装置及存储介质 | |
CN111260036B (zh) | 一种神经网络加速方法和装置 | |
KR20220114228A (ko) | 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치 | |
CN107122231A (zh) | 一种基于蒙特卡络模拟法的数据流调度优化方法 | |
CN114117896B (zh) | 面向超长simd管线的二值规约优化实现方法及系统 | |
TWI812524B (zh) | 藉由算數及/或逐位元單元執行條件敘述的方法及系統 | |
CN115481364A (zh) | 基于gpu加速的大规模椭圆曲线多标量乘法的并行计算方法 | |
CN114860192A (zh) | 一种基于fpga的图神经网络高乘法器利用率的稀疏稠密矩阵乘法阵列 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
Maliţa et al. | Deep learning in low-power stereo vision accelerator for automotive | |
CN111738432A (zh) | 一种支持自适应并行计算的神经网络处理电路 | |
CN113377546B (zh) | 通信避免方法、装置、电子设备和存储介质 | |
CN110059814A (zh) | 一种基于fpga的查找表式卷积运算硬件结构 | |
Yang et al. | Value-driven synthesis for neural network ASICs | |
Schmid et al. | Fix sort: A good strategy to perform segmented sorting | |
Sutisna et al. | Reinforcement Learning Accelerator using Q-Learning Algorithm with Optimized Bit Precision | |
CN117112145B (zh) | 训练模型分配方法、装置、计算机设备和存储介质 | |
Alam et al. | Fast GPU-Based Generation of Large Graph Networks From Degree Distributions | |
US20230259579A1 (en) | Runtime predictors for computation reduction in dependent computations | |
Kanasugi et al. | Hardware implementation of evolutionary algorithms using dynamic reconfiguration technology | |
Pugdeethosapol et al. | Accelerating Block-Circulant Matrix-Based Neural Network Layer on a General Purpose Computing Platform: A Design Guideline |
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 |