CN111340175B - 图重写的处理方法及装置、计算设备及可读介质 - Google Patents

图重写的处理方法及装置、计算设备及可读介质 Download PDF

Info

Publication number
CN111340175B
CN111340175B CN201811550198.5A CN201811550198A CN111340175B CN 111340175 B CN111340175 B CN 111340175B CN 201811550198 A CN201811550198 A CN 201811550198A CN 111340175 B CN111340175 B CN 111340175B
Authority
CN
China
Prior art keywords
graph
rewriting
network deployment
operator
template file
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
Application number
CN201811550198.5A
Other languages
English (en)
Other versions
CN111340175A (zh
Inventor
李天平
孙晓明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Priority to CN201811550198.5A priority Critical patent/CN111340175B/zh
Publication of CN111340175A publication Critical patent/CN111340175A/zh
Application granted granted Critical
Publication of CN111340175B publication Critical patent/CN111340175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种图重写的处理方法及装置、计算设备及可读介质。其方法包括:对网络部署框架的前端的神经网络模型进行解析,获取神经网络模型对应的原始图,该原始图包括数个单运算的操作符算子;利用预先生成的图重写接口对原始图进行重写处理,得到网络部署框架的后端支持处理的重写图,其中优化操作符算子为原始图中相邻的至少两个单运算的操作符算子的组合。本发明的技术方案,可以自动实现图重写,从而能够最大化地利用后端的计算/编译能力,实现神经网络模型的优化运算,实现过程中不用研发人员编写代码,省时省力,有效地降低研发成本,提高研发效率。

Description

图重写的处理方法及装置、计算设备及可读介质
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种图重写的处理方法及装置、计算设备及可读介质。
背景技术
近年来,随着计算机技术的发展,人工智能(Artificial Intelligence;简称AI)进入了发展热潮,其中关于神经网络模型的研究最为火热。
例如,卷积神经网络(Convolutional Neural Network;简称CNN)是神经网络模型中最为常见的一种网络模型。CNN是一种前馈神经网络,由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(Pooling Layer)。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。
以CNN为例,为了支持各种神经网络模型的训练和部署,目前出现了诸多CNN网络部署框架,比较典型的如Caffe、Tensorflow及MXNet等。这些网络部署框架一般在后端(Backend)提供了CNN操作符算子在不同平台(CPU/GPU/TPU)下的实现(俗称”Kernel”实现)或者编译支持。同时,为了最大程度降低访存开销,提高网络的运行效率,某些网络部署框架如Tensorflow会提供各种不同算子融合后的优化Kernel实现或者编译支持,如Convolution和ReLU的组合。运行CNN的过程中,这些网络部署框架会首先将CNN转化为内部的计算图(Computational Graph)表示,然后由研发人员基于后端提供的不同Kernel手写后端所支持的计算组合匹配的代码,并基于手写的算子组合的代码重写计算图,从而对满足优化要求的算子组合优先提供优化的Kernel实现,最终人工形成Kernel视图下的计算图表示,如图1所示一种计算图的优化示意图。且这种图重写(Graph Rewriting)机制在目前所有主流机器学习框架中得到了广泛的使用。
但是由于目前均采用硬编码实现,图重写实现时需要开发人员人为进行编码对所有提供的优化模式进行匹配,不仅费时费力,而且出错率高,造成开发成本较高、开发效率较低。
发明内容
本发明提供一种图重写的处理方法及装置、计算设备及可读介质,用于降低计算图的图重写时的开发成本,提高开发效率。
本发明提供一种图重写的处理方法,所述方法包括:
对网络部署框架的前端的神经网络模型进行解析,获取所述神经网络模型对应的原始图,所述原始图包括数个单运算的操作符算子;
利用预先生成的图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图,所述优化操作符算子为所述原始图中相邻的至少两个所述单运算的操作符算子的优化组合。
进一步可选地,如上所述方法中,利用预先生成的图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图之前,所述方法还包括:
根据所述网络部署框架和所述后端支持的计算/编译能力生成所述图重写接口。
进一步可选地,如上所述方法中,根据所述网络部署框架和所述后端支持的计算/编译能力生成所述图重写接口,包括:
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式;
对所述模版文件中的所述多种模式进行解析,得到模式列表;
生成所述模式列表中的各所述模式匹配的代码。
进一步可选地,如上所述方法中,根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种优化模式之后,对所述模版文件中的所述多种模式进行解析,得到模式列表之前,所述方法还包括:
对各所述模式进行合法性验证,确定各所述模式合法。
进一步可选地,如上所述方法中,根据所述网络部署框架和所述后端支持的计算/编译能力生成所述图重写接口,还包括:
配置模式定义和/或模式解析的功能支持信息。
进一步可选地,如上所述方法中,根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式,包括:
根据所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种单运算对应的简单模式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种优化模式,各所述优化模式对应至少两种单运算的组合。
进一步可选地,如上所述方法中,根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式,包括:
确定在所述模本文件中采用预设的模版文件格式定义用于图重写的所述多种模式的模式定义格式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,采用所述模式定义格式,在所述模板文件中定义所述多种模式。
进一步可选地,如上所述方法中,利用预先生成的图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图以及所述重写图中的优化操作符算子匹配的代码,包括:
根据所述图重写接口中生成有匹配的代码的各种优化模式,判断所述原始图中相邻的至少两个所述单运算的操作符算子是否能够进行优化组合;
若能,将所述原始图中相邻的至少两个所述单运算的操作符算子优化组合为所述优化操作符算子,得到所述重写图。
本发明还提供一种图重写的处理装置,所述装置包括:
原始图获取模块,用于对网络部署框架的前端的神经网络模型进行解析,获取所述神经网络模型对应的原始图,所述原始图包括数个单运算的操作符算子;
重写处理模块,用于利用预先生成的图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图,所述优化操作符算子为所述原始图中相邻的至少两个所述单运算的操作符算子的优化组合。
进一步可选地,如上所述装置中,还包括:
生成模块,用于根据所述网络部署框架和所述后端支持的计算/编译能力生成所述图重写接口。
进一步可选地,如上所述装置中,所述生成模块,包括:
模式定义单元,用于根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式;
模式解析器,用于对所述模版文件中的所述多种模式进行解析,得到模式列表;
模式匹配代码生成器,用于生成所述模式列表中的各所述模式匹配的代码。
进一步可选地,如上所述装置中,所述模式解析器,还用于:
对各所述模式进行合法性验证,确定各所述模式合法。
进一步可选地,如上所述装置中,所述生成模块,还包括:
配置单元,用于配置模式定义和/或模式解析的功能支持信息。
进一步可选地,如上所述装置中,所述模式定义单元,用于:
根据所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种单运算对应的简单模式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种优化模式,各所述优化模式对应至少两种单运算的组合。
进一步可选地,如上所述装置中,所述模式定义单元,用于:
确定在所述模本文件中采用预设的模版文件格式定义用于图重写的所述多种模式的模式定义格式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,采用所述模式定义格式,在所述模板文件中定义所述多种模式。
进一步可选地,如上所述装置中,所述重写处理模块,用于:
根据所述图重写接口中生成有匹配的代码的各种优化模式,判断所述原始图中相邻的至少两个所述单运算的操作符算子是否能够进行优化组合;
若能,将所述原始图中相邻的至少两个所述单运算的操作符算子优化组合为所述优化操作符算子,得到所述重写图。
本发明还提供一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任何一项所述的方法。
本发明还提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上任一项所述的方法。
本发明的图重写的处理方法及装置、计算设备及可读介质,通过对网络部署框架的前端的神经网络模型进行解析,获取神经网络模型对应的原始图,该原始图包括数个单运算的操作符算子;利用预先生成的图重写接口对原始图进行重写处理,得到网络部署框架的后端支持处理的重写图,其中优化操作符算子为原始图中相邻的至少两个单运算的操作符算子的组合,可以自动实现图重写,从而能够最大化地利用后端的计算/编译能力,实现神经网络模型的优化运算,实现过程中不用研发人员编写代码,省时省力,有效地降低研发成本,提高研发效率;且本发明的技术方案中,图重写的准确性非常好,能够有效地提高图重写的效率。
另外,本发明的技术方案中,若后端新增相应算子的优化模式后,通过在图重写接口中增加优化模式相关的信息,更新图重写接口即可,可扩展性和可维护性都非常强。
再者,本发明的技术方案,可以支持任何模式的匹配,即使复杂模式(如带有递归特性)的优化模式如Tree模式,也可以实现,不受系统优化空间的限制,灵活性非常强。
并且,本发明的技术方案,基于已有框架开发新的机器学习框架时,只需重新定义模版文件即可,实现不同机器学习框架间可以复用相关的图重写接口来实现,实现非常简单,实用性非常强,从而能够极大地提高开发效率,
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1为本发明提供的一种计算图的优化示意图。
图2为本发明的图重写的处理方法实施例一的流程图。
图3为本发明的图重写的处理方法实施例二的流程图。
图4本发明提供的一种后端支持的Convolution相关的优化模式示意图。
图5本发明提供的一种图重写接口的生成过程示意图。
图6为本发明的图重写的处理装置实施例一的结构示意图。
图7为本发明的图重写的处理装置实施例二的结构示意图。
图8示出了根据本发明一实施例可用于实现上述图重写的处理方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图2为本发明的图重写的处理方法实施例一的流程图。如图2所示,本实施例的图重写的处理方法,具体可以包括如下步骤;
S100、对网络部署框架的前端的神经网络模型进行解析,获取神经网络模型对应的原始图,该原始图包括数个单运算的操作符算子;
S101、利用预先生成的图重写接口对原始图进行重写处理,得到网络部署框架的后端支持处理的重写图,其中优化操作符算子为原始图中相邻的至少两个单运算的操作符算子的优化组合。
本实施例的图重写的处理方法,应用在AI领域中。当AI的网络部署框架中使用了神经网络模型时,基于神经网络模型进行应用实现时,需要将网络部署框架的前端的神经网络模型转换成便于实现的计算图。但是现有的计算图中的每个计算单元都是一个独立运算的操作符算子,而网络部署框架的后端在实现时若能够支持算子的优化组合,为提高访存开销,研发人员可以基于后端实现优化组合算子对应的代码,从而基于优化组合算子对应的编码对计算图进行优化,例如图1所示,将计算图中的至少两种操作符算子优化组合为一个计算单元来实现。但是图1实现过程中,必须有优化组合算子所匹配的代码的支持,才可以在重写计算图时将至少两种操作符算子优化组合为一个计算单元。而现有技术中需要研发人员人为实现优化后的操作符算子的代码,人为实现过程中,不仅费事费力,而且由于人为实现,出错率也会较高,造成开发成本较高,开发效率较低。在上述场景下,为了提高图重写的效率,本发明预先生成一个图重写接口,来自动实现图重写处理,以便于后续最大化地利用后端的计算/编译能力,实现神经网络模型的优化运算。
首先,对网络部署框架的前端的神经网络模型的操作符算子进行解析后,得到原始图(original graph),即原始的计算图。该原始图中的包括的每个计算单元都是单运算的操作符算子;如图1所示的左侧的原始计算图中每个计算单元都是一个单运算的操作符算子。然后,直接调用预先生成的图重写接口,对原始图进行图重写处理,从而得到网络部署框架的后端支持处理的重写图。也就是说,本实施例的图重写接口也是基于网络部署框架的后端支持能力得到的,所以重写处理后得到的重写图,是网络部署框架的后端支持处理的。本实施例的后端的支持能力包括后端支持的计算能力、后端支持的编译能力或者后端支持的计算和编译能力。
本实施例中得到的重写图,供后端根据重写图中的每个计算单元的节点类型做一一映射调用相应的算子进行运算即可,从而完成对应的kernel实现。
本实施例的重写图相对于原始图,基于后端的支持能力,将原始图中相邻的至少两个单运算的操作符算子的优化组合为优化操作符算子。例如图1所示的右侧的Kernel计算图中的Convolution+ReLU+Pooling计算单元为一个优化组合了Convolution、ReLU以及Pooling三种操作符算子的优化操作符算子,Convolution+ReLU为一个优化组合了Convolution和ReLU两种操作符算子的优化操作符算子。
由上述可知,本实施例中,根据原始图和预先生成的图重写接口,可以基于重写图中生成有匹配的代码的各优化模式,自动生成支持后端处理的重写图,而不用研发人员人工编写代码并人工生成重写图,从而能够有效地降低研发难度,提高研发效率。
另外,需要说明的是,本实施例的图重写接口中除了生成有优化操作符算子匹配的代码,也可以生成有原始图中各计算单元对应的单运算操作符算子匹配的代码,这样,在重写图中相对于原始图中未优化的计算单元,即未与相邻其他计算单元组合的计算单元,仍对应是一个单运算的操作符算子。
本实施例的图重写的处理方法中,网络部署框架的前端的神经网络模型可以为CNN模型,实际应用中,也可以为其他模型,在此不再一一举例赘述。
本实施例的图重写的处理方法,通过对网络部署框架的前端的神经网络模型进行解析,获取神经网络模型对应的原始图,该原始图包括数个单运算的操作符算子;利用预先生成的图重写接口对原始图进行重写处理,得到网络部署框架的后端支持处理的重写图,其中优化操作符算子为原始图中相邻的至少两个单运算的操作符算子的组合。通过采用本实施例的上述技术方案,根据预先生成的图重写接口,可以自动实现图重写,从而能够最大化地利用后端的计算/编译能力,实现神经网络模型的优化运算,实现过程中不用研发人员编写代码,省时省力,有效地降低研发成本,提高研发效率;且本实施例的技术方案中,图重写的准确性非常好,能够有效地提高图重写的效率。
图3为本发明的图重写的处理方法实施例二的流程图。如图3所示,本实施例的图重写的处理方法,在上述图2所示的步骤S101“利用预先生成的图重写接口对原始图进行重写处理,得到网络部署框架的后端支持处理的重写图以及重写图中的优化操作符算子匹配的代码”之前,还可以包括步骤:根据网络部署框架和后端支持的计算/编译能力生成图重写接口。如图3所示,该步骤“根据网络部署框架和后端支持的计算/编译能力生成图重写接口”,在实现时,具体可以包括如下步骤:
S200、根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式;
本实施例的后端支持的计算/编译能力可以表现为后端的硬件所支持的操作符算子的运算能力。例如后端支持的计算/编译能力可以表现为仅支持多个单运算,也可以表现为支持至少两种单运算的组合后的复运算。在本实施例的模版文化中,每一种运算对应一种模式,例如,该步骤S200具体可以包括如下步骤:
(a)根据网络部署框架所提供的操作符类型,在模版文件中定义数种单运算对应的简单模式;
(b)根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,在模版文件中定义数种优化模式,各优化模式对应至少两种单运算的组合。
由于不同机器学习框架提供了不同的中间表示(IR,intermediaterepresentation),这些不同的IR在操作符的定义方式及表示粒度上均存在一定的区别。例如Caffe相比于Tensorflow来说,其IR种类较少,且操作符粒度较大。在模版文件中定义不同的模式时,本实施例的网络部署框架对IR种类并不进行限制,在不同机器学习框架下使用本实施例的网络部署框架时,只需采用该机器学习框架下IR提供的操作符类型定义不同模式即可。
本实施例的模版文件中除了定义各种单运算对应的简单模式之外,主要定义用于图重写的不同优化模式,定义不同的模式时必须遵循相应的模版格式。本实施例的模版格式包含2个部分:模版文件格式及模式定义格式。
由上述可知,本实施例的模版文件中包含了许多不同的模式定义。其中模版文件格式主要决定了模版文件本身的文件格式;模版文件格式的不同决定了后续读取模版文件的方式的差异及解析简易程度。为了更好的表达复杂模式,本实施例中,可以优先采用支持Tree复杂数据结构解析的模版文件格式,如JSON、XML等。对于此类模版文件格式的解析一般都提供不同平台下的标准文件读写工具,能大大简化后续解析相关模块的开发。
本实施例的模式定义格式决定了在模版文件格式的基础上定义不同模式的具体格式形式。本实施例的网络部署框架为了同时支持简单及复杂(Tree)的模式定义,例如,具体的模式定义格式可以如下所示:
其中children部分支持递归的二叉树(Binary Tree)模式定义,(?)表示该节点或者子节点为可选。
基于上述模版文件中的模版文件格式和模式定义格式,从另一个维度上看,步骤200“根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式”,具体实现时,可以包括:首先确定在模本文件中采用预设的模版文件格式定义用于图重写的多种模式的模式定义格式;然后根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,采用模式定义格式,在模板文件中定义多种模式。此处的多种模式可以包括单运算对应的简单模式,还包括至少两种单运算的组合对应的优化模式。且本实施例的优化模式内的至少两种单运算的组合可以为简单的线性组合,也可以为复杂的非线性组合,如复杂的树形结构的组合。
下面以Convolution操作符算子支持的图重写模式为例,为了方便说明,假设目前模式定义支持正则表达+式支持(“|”和“?”)操作,假设后端支持的Convolution相关的优化模式为如图4所示的列表,则利用模版文件格式JSON定义的对应优化模式可以为如下:
实际应用中,模版文件中定义各种模式所采用的模版文件格式及模式定义格式不限上述方式,还可以具体采用其他格式,在此不再一一举例赘述。
S201、对模版文件中的多种模式进行解析,得到模式列表;
S202、生成模式列表中的各模式匹配的代码。
本实施例的技术方案中,可以自动生成模式列表中的各模式匹配的代码。而现有技术中是由人为编写优化后的操作符算子的代码,人为编写的代码难以调试和测试。与现有方案相比,本实施例的方案,自动实现代码生成的过程中,不仅省时省力,还能够有效地提高代码的准确性,节省代码调试和测试成本。
本实施例的图重写接口中生成的模式列表中的各模式匹配的代码,准确性非常高,可以保证后续基于重写图,利用后端的计算/编译能力,实现神经网络模型的优化运算时的运算效率,节省神经网络模型的运算实现成本。
进一步可选地,在步骤S200“根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式”之后,步骤S201“对模版文件中的多种模式进行解析,得到模式列表”之前,还可以包括:对各模式进行合法性验证,确定各模式合法。例如具体可以根据各优化模式的具体定义,对各优化模式进行合法性验证,若合法,则继续进行步骤S201的处理,否则丢掉不合法的模式。
本实施例的步骤S201和步骤S202在具体实施时,可以采用解析器(Parser)来实现,该解析器主要负责解析模版文件中的模式定义并自动生成相应的图重写时的优化模式对应的优化代码。该解析器可以包含2个单元:模式解析器与模式匹配代码生成器。
模式解析器可以用于执行步骤S201,主要根据模式定义标准格式解析模版文件中定义的各个模式,形成模式列表,用于指导后续模式匹配代码的生成;同时,模式解析器还需要在解析之前,基于模式定义,对模式的的合法性进行检查;若合法,可以继续解析,否则若不合法,则可以丢弃对应的模式。
模式匹配代码生成器可以用于执行步骤S202,主要负责自动生成模版文件中的模式匹配的代码,生成的模式匹配代码可以直接被用于后续的图重写过程,无须人为编写匹配代码。例如,下面介绍一种模式匹配代码生成器的具体算法伪代码如下表1所示:
表1
进一步可选地,本实施例中,根据网络部署框架和后端支持的计算/编译能力生成图重写接口的过程中,还可以包括:配置模式定义和/或模式解析实现时所需的功能支持信息。
例如,具体实现时,可以将配置的这些功能支持信息存储在辅助模块(Utilities)中,便于其他模块使用时调取。本实施例的功能支持信息可以为其他模块如解析器提供相应的辅助功能支持,例如读取模式的文件读写接口、为模式定义提供正则表达式支持,为JSON/XML格式文件提供解析支持等等。实际应用中,该辅助模块中可以配置实现各功能所需的所有功能支持信息,在此不再一一举例赘述。
基于上述图重写接口的生成过程,可以得到如图5所示的生成过程示意图,具体地,根据框架开发人员输入想要实现的框架的IR和后端支持的技术能力(如可提供的优化模式)在模版文件中按照标准模版格式进行定义多种模式,然后调用相应的解析器自动生成模式匹配接口及实现代码。因此,可以得知,本发明生成的图重写接口中可以包括多种模式(其中包括优化模式)以及每一种模式匹配的代码。在进行计算图重写的过程中只需调用该的图重写接口即可实现计算图的自动重写操作。详细可以参考上述实施例的记载。
本实施例的技术方案中,如果机器学习框架后端新增或者删除相应的优化模式,开发人员只需对应修改模版定义文件,利用解析器重新生成模式匹配接口即可完成新特性的增加。
基于上述实施例得到的图重写接口,上述图1所示实施例的步骤S101“利用预先生成的图重写接口对原始图进行重写处理,得到网络部署框架的后端支持处理的重写图以及重写图中的优化操作符算子匹配的代码”,在具体实现时,可以包括如下步骤:
(1)根据图重写接口,判断原始图中相邻的至少两个单运算的操作符算子是否能够组合;若能,执行步骤(2);否则返回步骤(1)继续判断,直到原始图中不存在能够组合的至少两个单运算的操作符算子,结束。
(2)将原始图中相邻的至少两个单运算的操作符算子优化组合为优化操作符算子,得到重写图;执行步骤(3);
(3)从图重写接口中获取优化操作符算子匹配的代码。
具体实现时,对于图重写接口中的每一个由至少两个单运算操作符算子的简单模式组合优化形成的、且生成有匹配的代码的各种优化模式,判断原始图中是否存在前后运算上相邻的、且与优化模式中的至少两个单运算的操作符算子相对应的至少两个单运算的操作符算子,若存在,确定原始图中相邻的至少两个相对应的单运算的操作符算子能够组合;否则确定不能够组合。
或者具体实现时,也可以以原始图为对象,按照原始图中的各计算单元由前往后的顺序,依次判断相邻的至少两个计算单元,是否在图重写接口中存在相应的、生成有匹配的代码的优化模式,若存在,确定原始图中相邻的至少两个相对应的单运算的操作符算子能够组合;否则确定不能够组合。
若原始图中相邻的至少两个相对应的单运算的操作符算子能够组合时,将原始图中相邻的至少两个单运算的操作符算子优化组合为优化操作符算子,便得到重写图。为了能够得到更加精准的重写图,可以对原始图中所有能够组合的计算单元,组合优化为优化操作符算子,得到最为准确的重写图。
本实施例的图重写的处理方法,通过采用上述技术方案,根据预先生成的图重写接口,可以自动实现图重写,从而能够最大化地利用后端的计算/编译能力,实现神经网络模型的优化运算,实现过程中不用研发人员编写代码,省时省力,有效地降低研发成本,提高研发效率;且本实施例的技术方案中,图重写的准确性非常好,能够有效地提高图重写的效率。
另外,现有技术中采用人工实现图重写的过程中,网络部署框架的扩展性受到极大限制,当后端新增相应算子的优化模式后,在进行图重写的接口中需要人为添加大量的if-else代码来进行判断,实现非常复杂,而本实施例的技术方案中,若后端新增相应算子的优化模式后,通过在图重写接口中增加优化模式相关的信息,更新图重写接口即可,可扩展性和可维护性都非常强。
再者,现有技术中采用人工实现图重写的方案,无法高效支持复杂模式(如带有递归特性)的优化模式匹配,如Tree模式,从而限制了系统优化空间;而本实施例的技术方案,可以支持任何模式的匹配,即使复杂模式(如带有递归特性)的优化模式如Tree模式,也可以实现,不受系统优化空间的限制,灵活性非常强。
并且,现有技术中采用人工实现图重写的方案中,不同机器学习框架间无法复用相关的图重写接口实现,需要各自编写相同逻辑的接口实现代码。本实施例的技术方案,基于已有框架开发新的机器学习框架时,只需重新定义模版文件即可,实现不同机器学习框架间可以复用相关的图重写接口来实现,实现非常简单,实用性非常强,从而能够极大地提高开发效率,
图6为本发明的图重写的处理装置实施例一的结构示意图。如图6所示,本实施例的图重写的处理装置,包括;
原始图获取模块10用于对网络部署框架的前端的神经网络模型进行解析,获取神经网络模型对应的原始图,原始图包括数个单运算的操作符算子;
重写处理模块11用于利用预先生成的图重写接口对原始图获取模块10获取的原始图进行重写处理,得到网络部署框架的后端支持处理的重写图,优化操作符算子为原始图中相邻的至少两个单运算的操作符算子的优化组合。
本实施例的图重写的处理装置,通过采用上述模块实现图重写处理的实现原理以及技术效果与上述相关方法实施例相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图7为本发明的图重写的处理装置实施例二的结构示意图。如图7所示,本实施例的图重写的处理装置,在上述图6所示实施例的基础上,进一步更加详细地介绍本发明的技术方案。如图7所示,本实施例的图重写的处理装置,还包括:
生成模块12用于根据网络部署框架和后端支持的计算/编译能力生成图重写接口。
对应地,重写处理模块11用于利用生成模块12预先生成的图重写接口对原始图获取模块10获取的原始图进行重写处理,得到网络部署框架的后端支持处理的重写图以及重写图中的优化操作符算子匹配的代码。
进一步可选地,生成模块12,包括:
模式定义单元121用于根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式;
模式解析器122用于对模式定义单元121在模版文件中定义的多种模式进行解析,得到模式列表;
模式匹配代码生成器123用于生成模式解析器122得到的模式列表中的各模式匹配的代码,这样得到的图重写接口包括模式列表以及各模式匹配的代码。
进一步可选地,模式解析器122还用于对模式定义单元121在模版文件中定义的各模式进行合法性验证,确定各模式合法。
进一步可选地,生成模块12中,还包括:
配置单元124用于配置模式定义单元121所处理的模式定义和/或模式解析器122所处理的模式解析的功能支持信息。进一步地,配置单元124可以将配置的功能支持信息,存储在一辅助模块中,便于后续使用时调取。
进一步可选地,模式定义单元121,用于:
根据网络部署框架所提供的操作符类型,在模版文件中定义数种单运算对应的简单模式;
根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,在模版文件中定义数种优化模式,各优化模式对应至少两种单运算的组合。
进一步可选地,模式定义单元121,用于:
确定在模本文件中采用预设的模版文件格式定义用于图重写的多种模式的模式定义格式;
根据后端支持的计算/编译能力和网络部署框架所提供的操作符类型,采用模式定义格式,在模板文件中定义多种模式。
进一步可选地,重写处理模块11用于:
根据生成模块12中的模式解析器122生成的图重写接口中生成有匹配的代码的各种优化模式,判断原始图中相邻的至少两个单运算的操作符算子是否能够进行优化组合;
若能,将原始图中相邻的至少两个单运算的操作符算子优化组合为优化操作符算子,得到重写图。
本实施例的图重写的处理装置,通过采用上述模块实现图重写处理的实现原理以及技术效果与上述相关方法实施例相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。图8示出了根据本发明一实施例可用于实现上述图重写的处理方法的计算设备的结构示意图。
参见图8,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的图重写的处理方法。
上文中已经参考附图详细描述了根据本发明的图重写处理。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种图重写的处理方法,其特征在于,所述方法包括;
根据网络部署框架和后端支持的计算/编译能力预先生成图重写接口;
对网络部署框架的前端的神经网络模型进行解析,获取所述神经网络模型对应的原始图,所述原始图包括数个单运算的操作符算子;
利用所述图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图,优化操作符算子为所述原始图中相邻的至少两个所述单运算的操作符算子的优化组合,
其中,根据网络部署框架和后端支持的计算/编译能力生成所述图重写接口,包括:
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式;
对所述模版文件中的所述多种模式进行解析,得到模式列表;
生成所述模式列表中的各所述模式匹配的代码。
2.根据权利要求1所述的方法,其特征在于,根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种优化模式之后,对所述模版文件中的所述多种模式进行解析,得到模式列表之前,所述方法还包括:
对各所述模式进行合法性验证,确定各所述模式合法。
3.根据权利要求1所述的方法,其特征在于,根据所述网络部署框架和所述后端支持的计算/编译能力生成所述图重写接口,还包括:
配置模式定义和/或模式解析的功能支持信息。
4.根据权利要求1所述的方法,其特征在于,根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式,包括:
根据所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种单运算对应的简单模式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种优化模式,各所述优化模式对应至少两种单运算的组合。
5.根据权利要求1-4任一所述的方法,其特征在于,根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式,包括:
确定在所述模版文件中采用预设的模版文件格式定义用于图重写的所述多种模式的模式定义格式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,采用所述模式定义格式,在所述模版文件中定义所述多种模式。
6.根据权利要求1-4任一所述的方法,其特征在于,利用预先生成的图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图,包括:
根据所述图重写接口中生成有匹配的代码的各种优化模式,判断所述原始图中相邻的至少两个所述单运算的操作符算子是否能够进行优化组合;
若能,将所述原始图中相邻的至少两个所述单运算的操作符算子优化组合为所述优化操作符算子,得到所述重写图。
7.一种图重写的处理装置,其特征在于,所述装置包括;
生成模块,用于根据网络部署框架和后端支持的计算/编译能力预先生成图重写接口;
原始图获取模块,用于对网络部署框架的前端的神经网络模型进行解析,获取所述神经网络模型对应的原始图,所述原始图包括数个单运算的操作符算子;以及
重写处理模块,用于利用所述图重写接口对所述原始图进行重写处理,得到所述网络部署框架的后端支持处理的重写图,优化操作符算子为所述原始图中相邻的至少两个所述单运算的操作符算子的优化组合,
其中,所述生成模块包括:
模式定义单元,用于根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在模版文件中定义用于图重写的多种模式;
模式解析器,用于对所述模版文件中的所述多种模式进行解析,得到模式列表;
模式匹配代码生成器,用于生成所述模式列表中的各所述模式匹配的代码。
8.根据权利要求7所述的装置,其特征在于,所述模式解析器,还用于:
对各所述模式进行合法性验证,确定各所述模式合法。
9.根据权利要求7所述的装置,其特征在于,所述生成模块,还包括:
配置单元,用于配置模式定义和/或模式解析的功能支持信息。
10.根据权利要求7所述的装置,其特征在于,所述模式定义单元,用于:
根据所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种单运算对应的简单模式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,在所述模版文件中定义数种优化模式,各所述优化模式对应至少两种单运算的组合。
11.根据权利要求7-10任一所述的装置,其特征在于,所述模式定义单元,用于:
确定在所述模版文件中采用预设的模版文件格式定义用于图重写的所述多种模式的模式定义格式;
根据所述后端支持的计算/编译能力和所述网络部署框架所提供的操作符类型,采用所述模式定义格式,在所述模版文件中定义所述多种模式。
12.根据权利要求7-10任一所述的装置,其特征在于,所述重写处理模块,用于:
根据所述图重写接口中生成有匹配的代码的各种优化模式,判断所述原始图中相邻的至少两个所述单运算的操作符算子是否能够进行优化组合;
若能,将所述原始图中相邻的至少两个所述单运算的操作符算子优化组合为所述优化操作符算子,得到所述重写图。
13.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-6中任何一项所述的方法。
14.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的方法。
CN201811550198.5A 2018-12-18 2018-12-18 图重写的处理方法及装置、计算设备及可读介质 Active CN111340175B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811550198.5A CN111340175B (zh) 2018-12-18 2018-12-18 图重写的处理方法及装置、计算设备及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811550198.5A CN111340175B (zh) 2018-12-18 2018-12-18 图重写的处理方法及装置、计算设备及可读介质

Publications (2)

Publication Number Publication Date
CN111340175A CN111340175A (zh) 2020-06-26
CN111340175B true CN111340175B (zh) 2023-12-26

Family

ID=71181354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811550198.5A Active CN111340175B (zh) 2018-12-18 2018-12-18 图重写的处理方法及装置、计算设备及可读介质

Country Status (1)

Country Link
CN (1) CN111340175B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112711422B (zh) * 2020-12-31 2024-01-19 北京清微智能科技有限公司 一种神经网络编译的优化方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958285A (zh) * 2017-11-21 2018-04-24 深圳普思英察科技有限公司 面向嵌入式系统的神经网络的映射方法及装置
CN108292374A (zh) * 2015-11-09 2018-07-17 谷歌有限责任公司 训练表示为计算图的神经网络
CN108985448A (zh) * 2018-06-06 2018-12-11 北京大学 神经网络表示标准框架结构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157045B2 (en) * 2016-11-17 2018-12-18 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
US11216722B2 (en) * 2016-12-31 2022-01-04 Intel Corporation Hardware accelerator template and design framework for implementing recurrent neural networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292374A (zh) * 2015-11-09 2018-07-17 谷歌有限责任公司 训练表示为计算图的神经网络
CN107958285A (zh) * 2017-11-21 2018-04-24 深圳普思英察科技有限公司 面向嵌入式系统的神经网络的映射方法及装置
CN108985448A (zh) * 2018-06-06 2018-12-11 北京大学 神经网络表示标准框架结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
深度神经网络并行化研究综述;朱虎明;李佩;焦李成;杨淑媛;侯彪;;计算机学报(第08期);全文 *

Also Published As

Publication number Publication date
CN111340175A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN110766147B (zh) 神经网络编译器架构及编译方法
US11003428B2 (en) Sample driven profile guided optimization with precise correlation
CN110764744A (zh) 用于神经网络计算的中间表示生成方法和装置
KR20210149045A (ko) 인공 지능 칩 검증
US11455150B2 (en) Accelerating application modernization
CN106796522A (zh) 用于更新源代码文件的系统和方法
KR20090092617A (ko) 프로세서 및 컴파일 방법
US20200364538A1 (en) Method of performing, by electronic device, convolution operation at certain layer in neural network, and electronic device therefor
KR102013582B1 (ko) 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법
JP2018505506A (ja) 機械ベースの命令編集
US10809985B2 (en) Instrumenting program code
CN107832059A (zh) 一种基于Makefile的代码静态分析方法和装置
US10521209B2 (en) Machine-based normalization of machine instructions
JP2022091685A (ja) プログラミング言語コーパスの生成
CN113885845B (zh) 深度学习编译器的计算图的生成方法、系统、设备及介质
CN111340175B (zh) 图重写的处理方法及装置、计算设备及可读介质
CN103942082B (zh) 一种消除冗余的内存访问操作的编译优化方法
CN110795165A (zh) 一种神经网络模型数据的加载方法及相关装置
CN112860264B (zh) 一种抽象语法树重构方法及装置
CN114185873A (zh) 数据迁移方法、装置、服务器及存储介质
US20100083238A1 (en) Binary manipulation of intermediate-language code
CN115904480B (zh) 代码重构方法、装置、电子设备及存储介质
KR20220040251A (ko) 트랜스퍼 생성모델의 보편적 성능을 높이는 트랜스퍼 이미지 생성 방법
CN117008920A (zh) 引擎系统、请求处理方法、装置、计算机设备及存储介质
Zhao et al. Deepdsl: A compilation-based domain-specific language for deep learning

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