一种基于增量综合的深度神经网络加速器协同设计方法转让专利
申请号 : CN202110010198.1
文献号 : CN112734011B
文献日 : 2021-12-28
发明人 : 梁云 , 肖倾城
申请人 : 北京大学
摘要 :
权利要求 :
1.一种基于增量综合的深度神经网络加速器协同设计方法,通过计算图修改检测方法识别上层应用的改变,再利用上层神经网络应用的改变修改层次化重用加速器硬件部分,增量构造深度神经网络加速器,减少深度神经网络加速器硬件的设计周期,从而提升加速器协同设计的效率;包括如下步骤:
1)将选取的深度神经网络模型DNN简化为计算图;
计算图中的结点为DNN模型中的层,对应于加速器硬件中的一个功能模块;计算图中边表示数据依赖关系,对应于加速器中功能模块间的数据通路;计算图划分为多个部分,每个部分为一张子图;
2)若未设置用于指导加速器硬件设计的加速器设计参考,则执行步骤3);若已有设置网络加速器设计参考,则执行步骤4);
3)构造神经网络加速器,作为协同设计的加速器设计参考,用于指导加速器硬件设计;
为每个深度神经网络构造专属的加速器硬件,并对FPGA平台进行编程;包括:使用异构加速器设计,包括多个加速器架构,每个架构是一组功能模块的集合,用于处理计算图的一张子图;每个功能模块为架构中的硬件模块,占用FPGA物理位置上的硬件资源,包括可编程逻辑功能块,可编程I/O块和布线资源,实现子图中一个结点即神经网络层的计算功能;当一个加速器架构处理完某一个子图后,FPGA被重新配置成另一种加速器架构,继续处理另一张子图;
重复上述重配置过程,直至计算图的所有子图均被处理完;即构造得到神经网络加速器;
当构造的神经网络加速器的目标DNN模型算法更新时,转至步骤1)执行;
4)采用增量综合的方法完成加速器的设计,节省加速器实现时间;具体包括以下操作:
4A)定义计算图的修改模式,包括:删除,插入,替换,调序,复制,压缩和分解模式;
4B)通过比较当前的计算图与已有网络加速器设计参考中的计算图,使用图形编辑距离算法自动检测得到计算图的修改模式;定义计算图修改模式相对应的图形编辑操作及操作代价函数;包括如下步骤:
4B1)根据计算图修改模式定义一组图形编辑操作,分别对应每一个计算图修改模式,包括:插入模式、删除模式、替换模式、调序模式、复制模式;
4B2)定义每个图形编辑操作的代价函数;具体包括:首先使用特征向量 来抽象结点ν;特征向量由归一化的计算复杂度和层参数组成,包括结点v的输入形状,过滤器形状,步幅和最大操作数量;基于特征向量,定义每种编辑操作的代价;
通过自定义的编辑操作及其代价,即可通过图形编辑距离算法自动检测出计算图中所做的修改;
4C)层次化重用加速器设计参考:当检测出计算图修改后,复用不需要修改的加速器架构和功能模块,采用三个重用层次实现加速器重用机制;
三个重用层次分别是:
1)子图重用:重用子图对应的加速器架构的完整物理实现;当被复制的结点来自同一子图时,在子图级别处理重复模式;
2)结点重用:重用处理某一结点即神经网络层的功能模块的物理实现;
3)部分重用:重用加速器中某一功能模块的网表,该网表需重新运行布局布线P&R得到物理实现;
对于FPGA平台上的深度神经网络加速器设计,每个硬件功能模块通过在FPGA资源上布局布线实现,即一个功能模块的寄存器转换级电路RTL代码在经过逻辑综合后可得到该功能模块的网表;网表进一步在FPGA资源上布局布线,得到该功能模块的物理实现;一个加速器架构中所有功能模块的物理实现即为该架构的完整物理实现;
通过层次化重用加速器设计参考,即得到适配当前DNN算法的神经网络硬件加速器;
通过上述步骤,即实现基于增量综合的深度神经网络加速器协同设计。
2.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤1)将选取的深度神经网络模型DNN具体简化为神经网络开放标准ONNX的计算图形式。
3.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤3)中,异构加速器设计包含的加速器架构数量及每个架构中各层占用的FPGA资源,根据计算图划分算法得到,具体可通过设置知识产权核IP核参数来配置IP核仓库内的知识产权核实现各个功能模块;IP核参数由IP核仓库中的性能和资源模型确定。
4.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤3)中,构造得到神经网络加速器后,可对加速器的质量,性能,准确性和面积信息进行测评。
5.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤4A)中定义计算图的修改模式具体为:a)删除模式是删除计算图中的结点;
b)插入模式是在图中插入一个新结点;
c)替换模式是将一个结点替换为具有不同操作的另一个结点;
d)调序模式是对两个相邻结点重新排序,即互换序号;
e)复制模式是将子图的副本插入计算图中;
f)压缩模式是压缩某些结点,包括减少某结点的特征图和过滤器的数量,以降低计算复杂度;
g)分解模式是分割结点,包括将某个结点分解成两个结点,通过用多个小过滤器替换一个过滤器,以减少计算。
6.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤4B)所述图形编辑距离算法具体采用基于容错的近似图匹配算法。
7.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤4B1)中,图形编辑操作模式的符号表示分别为:包括:插入模式、删除模式、替换模式、调序模式、复制模式;
插入模式是将空结点ε映射到新计算图中的结点μ;
删除模式是将旧计算图中的结点ν映射到空结点ε;
替换模式和压缩模式使用相同的符号表示:ν→μ,其中ν和μ分别是旧计算图和新计算图中的结点;通过神经网络层类型和参数数量区分;如果一对结点具有不同的层类型,则将其识别为替换模式;如果两个结点的层类型相同但参数数量不同,则为压缩模式;
调序模式是两个编辑操作ν1→μ2和ν2→μ1,ν1、ν2是旧计算图相连的结点,μ1、μ2是新计算图中相连的结点;
复制模式:使用后期处理检测复制模式的修改,即:找到所有插入的结点后,枚举由这些结点组成的子图;对于每个子图,如果它与旧计算图中的任何子图同构,则为复制模式。
8.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,步骤4B2)基于特征向量,定义每种编辑操作的代价,包括:用α·OPs(v)/OPsmax表示插入操作的代价,其中OPs(v)表示结点v的操作数,OPsmax表示全部结点中最大的操作数,α为协因子;
用α·OPs(v)/OPsmax表示删除操作的代价;
替换操作的代价定义为max{OPs(ν),OPs(μ)}·β/OPsmax,其中OPs(v)、OPs(μ)表示结点v、μ的操作数,OPsmax表示全部结点中最大的操作数,β为协因子;
压缩操作v→μ的代价定义为压缩前后结点特征向量的欧几里得距离;
调序操作的代价定义为常数;
分解操作的代价定义为max{OPs(v),∑OPs(μ)}·α/OPsmax,其中OPs(v)为分解前结点的操作数,∑OPs(μ)为分解后结点的操作数总和,OPsmax表示全部结点中最大的操作数,α为协因子。
9.如权利要求1所述基于增量综合的深度神经网络加速器协同设计方法,其特征是,构造得到神经网络加速器后,具体可在Caffe,PyTorch框架中对加速器的质量,性能,准确性和面积信息进行测评,并修改DNN模型算法,得到最终的神经网络加速器设计。
说明书 :
一种基于增量综合的深度神经网络加速器协同设计方法
技术领域
背景技术
经网络已广泛应用于各个领域。DNN所要求的大量计算能力使得高性能、低功耗的神经网络
加速器成为一种刚需。在各种硬件平台中,现场可编程门阵列(Field Programmable Gate
Array,FPGA)由于其可重新配置的特性,最常被用做深度学习加速器的原型验证,并且可在
Microsoft Azure和Amazon Web Services等云服务中广泛使用。
计方案。协同设计方法的另一个好处是,开发人员可以获取最终产品对结果质量的早期反
馈,包括质量,性能,准确性和面积。通过协同设计硬件和软件,开发人员可以通过迭代修改
或添加功能来完善设计。然而在典型的协同设计流程中,每当更改DNN软件时,都必须重新
综合生成加速器硬件。
架构 可编程 专用
性能 低 中
软件编译时间缩减 有 有
硬件综合时间缩减 无 无
协同设计代价 中 高
Accelerator(VTA)硬件加速器)上部署DNN,实现协同设计。TVM可以根据DNN软件来调整VTA
的硬件固有属性,内存大小和数据类型。使用DNNWEAVER工具实现协同设计时,开发人员可
以通过在硬件描述语言(Hardware Description Language,HDL)级别上使用可自定义的模
板来修改硬件。然而,这些协同设计方法工具都需要经历漫长的硬件综合过程。硬件综合步
骤将把加速器源代码综合为硬件的最终物理实现,这涉及高层次综合(High‑level
Synthesis,HLS),逻辑综合,布局和布线(P&R)。硬件综合时间取决于综合工具,设计大小,
频率等。HLS,逻辑综合和P&R通过都需要数小时,因此硬件综合要比软件编译步骤慢几个数
量级。
Krishnamurthy.2018.TVM:End‑to‑End Optimization Stack for Deep Learning.In
SysML Conference.
platforms.In 2016International Conference on Compliers,Architectures,and
Sythesis of Embedded Systems(CASES).1–10.
neural models to FPGAs.In Microarchitecture(MICRO),2016 49th Annual IEEE/ACM
International Symposium on.IEEE,1–12.
FPGA Platform.In Proceedings of the 48th International Conference on Parallel
Processing.ACM,98.
发明内容
在协同设计中耗时过长的问题。
硬件的设计周期,从而提升加速器协同设计的效率。总的来说,本发明提供的技术方案包括
层次化重用加速器硬件部分,由计算图修改检测方法识别上层应用的改变,再利用上层神
经网络应用的改变尽可能少的修改层次化重用加速器硬件部分,从而缩短设计开发的周
期。具体来说,本发明方法包括如下步骤:
间的数据通路;本发明中,将计算图划分为多个部分,每个部分为一张子图。
加速器架构,每个架构是一组功能模块的集合,用于处理计算图的一张子图。每个功能模块
为架构中的硬件模块。它们占用一部分FPGA物理位置上的硬件资源(包括可编程逻辑功能
块,可编程I/O块和布线资源),实现子图中一个结点(神经网络层)的计算功能。当一个加速
器架构处理完某一个子图后,FPGA被重新配置成另一种加速器架构,从而继续处理另一张
子图。重复该重配置过程,直至计算图的所有子图均被处理完。异构加速器设计包含的加速
器架构数量以及每个架构中各层占用的FPGA资源将由计算图划分算法决定。异构加速器设
计实现为物理硬件时,本发明方法将通过设置知识产权核(Intellectual Property Core,
IP核)参数来配置IP核仓库内的知识产权核(IP Core)实现各个功能模块。IP核参数由IP核
仓库中的性能和资源模型确定。
足需要,由此得到最终的神经网络加速器设计,结束步骤流程。当构造的神经网络加速器的
目标DNN模型算法更新时,转至步骤1)执行;
层类型,则将其识别为替换模式。否则,如果两个结点的层类型相同但参数数量不同,则是
一种压缩模式。
式。
每种编辑操作的代价,如表2所示。
对于删除操作ν→ε,我们也用α·OPs(ν)/OPsmax表示其代价。
的操作数,β为协因子。
表示全部结点中最大的操作数,α为协因子。
每个硬件功能模块是通过在一部分FPGA资源上布局布线实现的。具体而言,一个功能模块
的寄存器转换级电路(Register Transistor Level,RTL)代码在经过逻辑综合后可以得到
该功能模块的网表。网表进一步在FPGA资源上布局布线,得到该功能模块的物理实现。一个
加速器架构中所有功能模块的物理实现即为该架构的完整物理实现。
点数量和拓扑的变化需要重新综合硬件设计。因此,我们只能重用一些未更改模块的网表。
当前DNN图,而A和B来自参考DNN图。如果未对子图进行任何修改(B'=B),则相应的加速器
架构的物理实现将保持不变并直接重用。如果新子图B'与A完全重复,则A和B'将共享相同
的架构物理实现。在更一般的情况下,从A的一部分复制了子图B',本方法将完全复用A的硬
件,然后删除冗余功能模块。
化函数,但是默认情况下并不会激活。将当前卷积层及其后的池化函数调序,需要进行的物
理实现改变是将当前卷积模块的池化函数关闭,然后激活前一卷积层模块的池化函数。对
于替换模式和压缩模式,本发明方法将利用被替换模块或被压缩模块的资源和位置,对新
模块进行逻辑综合和布局布线。
性能将受到影响。为了避免资源利用不足,本方法将重新探索模块参数并重新实现子图的
架构。插入和分解修改模式必定会更改子图拓扑结构,并向架构引入新模块。由于现有的模
块具有固定的物理位置并占用最多的资源,因此直接插入新模块难以满足FPGA固定的资源
限制。本方法将为修改后的子图生成新的架构。
布线到新位置。对于参数已更改的模块,本方法将重新配置IP核并生成RTL代码。然后,将
RTL代码综合、布局布线并与最终设计集成。本框架可以通过快速组装网表进一步加快模块
的综合。
足需要,由此得到最终的神经网络加速器设计,结束步骤流程。当构造的神经网络加速器中
的DNN模型算法更新时,转至步骤1)执行。
新生成加速器的设计方法相比,节省了高达4.43倍的协同设计周期。同时,这样增量式生成
的加速器可实现与人工设计的加速器相当的性能。
附图说明
具体实施方式
新合成。例如,仅需要重新综合那些修改了像素尺寸和操作类型的网络层,而不变的层及其
在硬件上的实现则保持不变。
于加速器硬件中的一个功能模块,而图中边表示数据依赖关系,对应于加速器中功能模块
间的数据通路。
部分即为一张子图。该方法将构造多个加速器架构,每个架构是一组功能模块的集合,用于
处理一张子图。一旦加速器处理完某个子图,它将重新配置成另一个架构继续处理另一张
子图,直至计算图的所有子图被处理完。进一步来说,架构中的每个功能模块有其固定的物
理位置(占用的FPGA资源),处理子图中的一个结点。该方法在实现每个功能模块时,将设置
参数来配置IP核仓库内的知识产权核(IP Core)。IP核参数由库中的性能和资源模型确定。
所有的加速器架构组成了最终的加速器设计,并输出给用户。接着,该方法执行步骤5)。
换,调序,复制,压缩和分解。
器。
如表2中所列。插入模式是将空结点ε映射到新图中的结点μ。删除是将旧图中的结点ν映射
到空结点ε。替换和压缩模式使用相同的符号表示ν→μ,ν和μ分别是旧图和新图中的结点。
我们通过神经网络层类型和参数数量来区分它们。如果一对结点具有不同的层类型,则将
其识别为替代。否则,如果两个结点的参数数量不同,则是一种压缩。调序模式可以看作是
两个编辑操作ν1→μ2和ν2→μ1,ν1、ν2是旧图相连的结点,μ1、μ2是新图中相连的结点。我们
使用后期处理来检测复制模式的修改。找到所有插入的结点后,我们枚举由这些结点组成
的子图。对于每个子图,如果它与旧图中的任何子图同构,则将其识别为复制模式。
个重用层次分别是:1)子图重用:重用子图的完整硬件实现;2)结点重用:重用结点(层)对
应功能模块的完整物理实现;3)部分重用:重用架构中部分功能模块的网表,但需要重新运
行布局布线(P&R)。该方法可以通过该层次化重用机制来处理所有检测到的计算图修改。具
体来说,当被复制的结点来自同一子图时,我们可以在子图级别处理重复模式。插入,删除
和分解模式会影响子图的结点数量和拓扑结构。结点数量和拓扑的变化需要重新综合硬件
设计。因此,我们只能重用一些未更改模块的网表。对于其他修改模式(例如调序,替换和压
缩模式),我们可以直接重用未更改的模块的物理实现。
一旦DNN算法有所修改,该方法将转至步骤1)继续执行。
June.Exploring heterogeneous algorithms for accelerating deep convolutional
neural networks on FPGAs.In Proceedings of the 54th Annual Design Automation
Conference 2017(pp.1‑6).)中的动态规划算法。步骤4.a)中的图形编辑距离算法基于容
错的近似图匹配算法。
子图对应一份参考的加速器设计中的架构,子图中的每个结点对应架构中的每个功能模
块。例如,子图2包括五个结点,对应于架构2原始电路中的Conv1、Conv2、Conv3、Concat、FC
五个功能模块。每个模块可以被单独激活或关闭。在此示例中,子图4从子图3复制而来。附
图3(a)是子图2的原始电路。附图3(b)、(c)、(d)是对子图2可能进行的一些修改。
硬件架构将保持不变并直接重用。在附图3中,子图1、3和5属于这种情况。则对应的,参考的
加速器设计中的架构1、架构3和架构5保持不变。如果新子图B'与A完全重复,则A和B'将共
享相同的架构物理实现。在附图3中,子图4与3相同,则它们的架构3和4共享相同的物理实
现。在更一般的情况下,从A的一部分复制了子图B',本方法将完全复用A的硬件,然后删除
冗余功能模块。
Conv3结点及其后的池化函数(pl)调序,对于硬件架构2而言,需要进行的物理实现改变是
将Conv 3模块的池化函数关闭,然后激活Conv 2模块的池化函数,如图3(c)所示。这样,卷
积模块就可以完全重用而不经过P&R步骤。
法将直接重用FC以外的所有其他模块的实现。新模块Conv4将被重新综合生成,并放置在原
来FC模块所在区域。压缩模式类似于替换模式。压缩层时,其模块参数可能会更改。本方法
将在原始模块的相同区域中重新实现压缩后的功能模块。
器性能将受到影响。为了避免资源利用不足,本方法将重新探索模块参数并重新实现子图
的架构。插入和分解修改模式必定会更改子图拓扑结构,并向架构引入新模块。由于现有的
模块具有固定的物理位置并占用最多的资源,因此直接插入新模块难以满足资源限制。本
方法将为修改后的子图生成新的架构。
布线到新位置。附图3(d)说明了将Conv 4模块插入架构2的例子。实现新架构时,Conv 1和
Conv2模块的会缩小(分配资源减少),以便为Conv 4模块腾出FPGA物理空间和资源。Conv 3
和FC模块的参数保持不变,所以网表可以被完全重用。
具体来说,在卷积模块和完全连接的模块中,本框架以网状拓扑连接其计算单元
(Processing Element,PE),如附图3(e)所示。每个PE处理卷积和矩阵乘法的部分结果。这
些PE是同质的,并且具有相同的网表。本框架可以重用一个PE的网表来构建卷积或任意形
状的全相连模块。
可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求
书界定的范围为准。