CN112270413A - 算子合并方法、装置、电子设备及存储介质 - Google Patents

算子合并方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112270413A
CN112270413A CN202011139137.7A CN202011139137A CN112270413A CN 112270413 A CN112270413 A CN 112270413A CN 202011139137 A CN202011139137 A CN 202011139137A CN 112270413 A CN112270413 A CN 112270413A
Authority
CN
China
Prior art keywords
operator
operators
merging
combination
traversed
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
Application number
CN202011139137.7A
Other languages
English (en)
Other versions
CN112270413B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011139137.7A priority Critical patent/CN112270413B/zh
Publication of CN112270413A publication Critical patent/CN112270413A/zh
Priority to KR1020210080113A priority patent/KR20210120919A/ko
Priority to JP2021104027A priority patent/JP7170094B2/ja
Priority to US17/463,748 priority patent/US20210398022A1/en
Application granted granted Critical
Publication of CN112270413B publication Critical patent/CN112270413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了算子合并方法、装置、电子设备及存储介质,涉及深度学习、人工智能及知识图谱领域,其中的方法可包括:根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个算子图中的算子;针对任一算子组合,分别获取该算子组合对应的合并算子;针对任一合并算子,分别用该合并算子替换算子图中的对应算子,并将对应算子的依赖边均连接到该合并算子上,对应算子为该合并算子对应的算子组合中的算子。应用本申请所述方案,可提升计算效率及提升深度学习模型的训练速度等。

Description

算子合并方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机应用技术,特别涉及深度学习、人工智能及知识图谱领域的算子合并方法、装置、电子设备及存储介质。
背景技术
当前深度学习技术的应用越来越广泛,如在语音、图像、自然语言处理等领域都得到了大量应用。
随着深度学习模型体积的持续增大以及训练数据的大幅增长,深度学习的计算需求永远得不到满足,速度优化始终是深度学习亟待解决的问题。
发明内容
本申请提供了算子合并方法、装置、电子设备及存储介质。
一种算子合并方法,包括:
根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个所述算子图中的算子;
针对任一算子组合,分别获取所述算子组合对应的合并算子;
针对任一合并算子,分别用所述合并算子替换所述算子图中的对应算子,并将所述对应算子的依赖边均连接到所述合并算子上,所述对应算子为所述合并算子对应的算子组合中的算子。
一种算子合并装置,包括:组合获取模块、算子合并模块以及算子替换模块;
所述组合获取模块,用于根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个所述算子图中的算子;
所述算子合并模块,用于针对任一算子组合,分别获取所述算子组合对应的合并算子;
所述算子替换模块,用于针对任一合并算子,分别用所述合并算子替换所述算子图中的对应算子,并将所述对应算子的依赖边均连接到所述合并算子上,所述对应算子为所述合并算子对应的算子组合中的算子。
一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如以上所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:提出了一种面向深度学习的横向算子自动合并方法,生成多个算子的合并算子并替换相应算子,从而实现了算子的合并,进而提升了计算效率及提升了深度学习模型的训练速度等。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请所述算子合并方法实施例的流程图;
图2为本申请所述算子合并装置实施例20的组成结构示意图;
图3为根据本申请实施例所述方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请所述算子合并方法实施例的流程图。如图1所示,包括以下具体实现方式。
在步骤101中,根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个算子图中的算子。
在步骤102中,针对任一算子组合,分别获取该算子组合对应的合并算子。
在步骤103中,针对任一合并算子,分别用该合并算子替换算子图中的对应算子,并将对应算子的依赖边均连接到该合并算子上,对应算子为该合并算子对应的算子组合中的算子。
上述实施例中,提出了一种面向深度学习的横向算子自动合并方法,生成多个算子的合并算子并替换相应算子,从而实现了算子的合并,进而提升了计算效率及提升了深度学习模型的训练速度等。
如步骤101中所述,可根据待处理的算子图,确定出待合并的算子组合。算子图为网络中的算子的一种组织形式,其中的各结点分别对应于网络中的不同算子,算子是具有逻辑含义的最小计算粒度,基于算子的生产者-消费者关系可以建立算子的依赖图,又称为算子图,即可根据算子间的数据传输关系等将对应结点通过边(依赖边)相连。
作为一种优选的实现方式,为确定出待合并的算子组合,可针对算子图执行以下第一处理:遍历算子图中的算子,并针对遍历到的任一算子,若确定任一其它算子与遍历到的算子之间无依赖关系,则将该其它算子与遍历到的算子组成算子对,并将该算子对作为新的算子,用该新的算子替换该其它算子及遍历到的算子,即用该新的算子替换原来的两个算子,替换后,算子数减少了一个,并将该其它算子及遍历到的算子的依赖边均连接到该新的算子上;若确定符合终止条件,则将算子图中由至少两个算子组成的算子作为待合并的算子组合,否则,重复执行所述第一处理。
本申请中对于如何遍历算子图中的算子不作限制,可根据实际需要而定,比如,可采用宽度优先遍历方式。
对于遍历到的任一算子如算子a,若确定任一其它算子如算子b与算子a之间无依赖关系,那么可将算子b与算子a组成算子对,算子b与算子a之间无依赖关系即指算子b不与算子a通过边直接或间接相连。进一步地,针对由算子a和算子b组成的算子对,可将该算子对作为新的算子,用其来替换掉算子图中的算子a和算子b,并可将算子a和算子b的依赖边均连接到该新的算子上。
算子a和算子b组成的算子对作为新的算子加入到算子图中后,假设该新的算子为算子ab,那么算子ab还可继续和其它算子组成算子对,比如和算子c组成算子对,从而得到由算子a、算子b和算子c组成的算子对,相应地,也可将该算子对作为新的算子加入到算子图中,假设该新的算子为算子abc,那么可用算子abc替换掉算子图中的算子ab和算子c,并可将算子ab和算子c的依赖边均连接到算子abc上。
可不断重复上述过程,直至符合终止条件。若符合终止条件,那么可将算子图中由至少两个算子组成的算子分别作为待合并的算子组合。如假设截止符合终止条件,上述算子abc未再和其它算子组成算子对,那么算子abc即可作为一个待合并的算子组合,其中包括算子a、算子b和算子c共三个算子。
在实际应用中,算子会具有自己的属性,其中,是否可合并即为属性之一,对于不可合并的算子,通常不能按照本申请所述方式进行处理。
为此,在执行所述第一处理之前,还可从算子图中的算子中筛选出可合并算子,用筛选出的算子组成第一算子集合,这样,后续针对遍历到的任一算子,在确定出任一其它算子与遍历到的算子之间无依赖关系时,可首先确定该其它算子及遍历到的算子是否均位于第一算子集合中,若是,则可将该其它算子与遍历到的算子组成算子对,并相应地完成后续处理,即只有当该其它算子及遍历到的算子均位于第一算子集合中时,才会生成算子对并进行后续处理。
符合终止条件可以是指无法生成新的算子对,或者,若生成新的算子对,其中的算子数将大于预定阈值。其中,前一种情况是指没有可继续合并的算子。后一种情况是指可以生成新的算子对,但若生成新的算子对,新的算子对中包括的算子数将会大于预定阈值。
所述预定阈值的具体取值可根据实际需要而定。比如,可为预先设定的合并宽度约束L,L为大于一的正整数。
假设L的取值为3,那么表示算子对中最多只能包括三个算子,假设若生成某个新的算子对,其中将包括四个算子,那么则表示新的算子对中包括的算子数将会大于阈值3,从而可认为符合终止条件。另外,所述阈值的取值并非一定要是整数,此处仅为举例说明。
通过上述处理,可尽可能多地发现待合并的算子组合,从而为后续处理奠定了良好的基础,并且,可确保获取到的待合并的算子组合的准确性等。
如步骤102中所述,针对任一算子组合,可分别获取该算子组合对应的合并算子,如可基于在线编译的算子生成方法,将多个无依赖关系的算子合并为一个算子,即得到合并算子。
作为一种优选的实现方式,针对任一算子组合,可首先获取该算子组合对应的合并代码,进而可编译生成合并代码对应的二进制代码,从而得到合并算子。
其中,针对任一算子组合si,获取该算子组合对应的合并代码的方式可包括:
1)针对算子组合si中的每个算子vi(vi∈si),分别获取其源码ki和线程空间bi;
2)将获取到的线程空间合并,即B=∑bi;
3)按合并后的线程空间B,声明合并代码的线程空间;
4)分配线程子空间完成ki的计算过程;
5)构造合并代码的参数列表,合并代码的参数列表为所有ki的参数列表的并集。
假设算子组合si中包括两个算子,每个算子分别对应自己的源码等,需要根据这两个算子生成一个新的算子,这个新的算子可完成原来的两个算子的操作,相应地,需要生成一个新的代码,这个新的代码是原来所不存在的。
之后,可编译生成合并代码对应的二进制代码,具体方式可包括:
1)通过nvrtcCreateProgram创建nvrtcProgram对象,即通过nvrtcCreateProgram将源代码(合并代码)封装为nvrtcProgram对象;
2)通过cudaDeviceGetAttribute获得当前图形处理器(GPU,GraphicsProcessing Unit)的架构参数,用以设置编译选项;
3)根据所述nvrtcProgram对象,通过nvrtcCompileProgram编译生成并行线程执行(PTX,Parallel Threade Xecution)中间代码,并保存到字符数组中;
4)根据所述中间代码,通过cuModuleLoadDataEx生成CUmodule对象;
5)根据所述CUmodule对象,通过cuModuleGetFunction获得编译后的二进制代码。
另外,还可通过cuLaunchKernel发起对二进制代码的调用。
为了在线运行前述动态生成的合并代码,需要一套在线的编译代码和管理代码的方法。统一计算设备架构(CUDA,Compute Unified Device Architecture)接口提供了运行时编译(NVRTC,Runtime Compilation)接口,可以在线编译源代码,从而生成运行在GPU上的二进制代码,编译执行过程可如上述1)-5)所示。
如步骤103中所述,针对任一合并算子,可分别用该合并算子替换算子图中的对应算子,并将对应算子的依赖边均连接到该合并算子上,对应算子为该合并算子对应的算子组合中的算子。
比如,某一合并算子由算子a、算子b和算子c组成,那么可用该合并算子替换掉算子图中的算子a、算子b和算子c,从而将三个算子合并为一个算子,另外,可将算子a、算子b和算子c的依赖边均连接到该合并算子上,以保证算子图中的依赖关系不会改变。
需要说明的是,对于前述的方法实施例,为了简单描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。
图2为本申请所述算子合并装置实施例20的组成结构示意图。如图2所示,其中可包括:组合获取模块201、算子合并模块202以及算子替换模块203。
组合获取模块201,用于根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个算子图中的算子。
算子合并模块202,用于针对任一算子组合,分别获取该算子组合对应的合并算子。
算子替换模块203,用于针对任一合并算子,分别用该合并算子替换算子图中的对应算子,并将对应算子的依赖边均连接到该合并算子上,对应算子为该合并算子对应的算子组合中的算子。
作为一种优选的实现方式,为确定出待合并的算子组合,组合获取模块201可针对算子图执行以下第一处理:遍历算子图中的算子,并针对遍历到的任一算子,若确定任一其它算子与遍历到的算子之间无依赖关系,则将该其它算子与遍历到的算子组成算子对,并将该算子对作为新的算子,用该新的算子替换该其它算子及遍历到的算子,并将该其它算子及遍历到的算子的依赖边均连接到该新的算子上;若确定符合终止条件,则将算子图中由至少两个算子组成的算子分别作为待合并的算子组合,否则,重复执行所述第一处理。
在实际应用中,算子会具有自己的属性,其中,是否可合并即为属性之一,对于不可合并的算子,通常不能按照本申请所述方式进行处理。
为此,在执行所述第一处理之前,组合获取模块201还可从算子图中的算子中筛选出可合并算子,用筛选出的算子组成第一算子集合,这样,后续针对遍历到的任一算子,在确定出任一其它算子与遍历到的算子之间无依赖关系时,可首先确定该其它算子及遍历到的算子是否均位于第一算子集合中,若是,则可将该其它算子与遍历到的算子组成算子对,并相应地完成后续处理,即只有当该其它算子及遍历到的算子均位于第一算子集合中时,才会生成算子对并进行后续处理。
符合终止条件可以是指无法生成新的算子对,或者,若生成新的算子对,其中的算子数将大于预定阈值。其中,前一种情况是指没有可继续合并的算子。后一种情况是指可以生成新的算子对,但若生成新的算子对,新的算子对中包括的算子数将会大于预定阈值。
所述预定阈值的具体取值可根据实际需要而定,比如可为预先设定的合并宽度约束L,L为大于一的正整数。
算子合并模块202可针对任一算子组合,分别获取该算子组合对应的合并算子,如可基于在线编译的算子生成方法,将多个无依赖关系的算子合并为一个算子,即得到合并算子。
作为一种优选的实现方式,针对任一算子组合,算子合并模块202可首先获取该算子组合对应的合并代码,进而可编译生成合并代码对应的二进制代码,从而得到合并算子。
其中,针对任一算子组合si,获取该算子组合对应的合并代码的方式可包括:
1)针对算子组合si中的每个算子vi(vi∈si),分别获取其源码ki和线程空间bi;
2)将获取到的线程空间合并,即B=∑bi;
3)按合并后的线程空间B,声明合并代码的线程空间;
4)分配线程子空间完成ki的计算过程;
5)构造合并代码的参数列表,合并代码的参数列表为所有ki的参数列表的并集。
之后,可编译生成合并代码对应的二进制代码,具体方式可包括:
1)通过nvrtcCreateProgram创建nvrtcProgram对象,即通过nvrtcCreateProgram将源代码(合并代码)封装为nvrtcProgram对象;
2)通过cudaDeviceGetAttribute获得当前GPU的架构参数,用以设置编译选项;
3)根据所述nvrtcProgram对象,通过nvrtcCompileProgram编译生成PTX中间代码,并保存到字符数组中;
4)根据所述中间代码,通过cuModuleLoadDataEx生成CUmodule对象;
5)根据所述CUmodule对象,通过cuModuleGetFunction获得编译后的二进制代码。
另外,还可通过cuLaunchKernel发起对二进制代码的调用。
针对任一合并算子,算子替换模块203可分别用该合并算子替换算子图中的对应算子,并将对应算子的依赖边均连接到该合并算子上,对应算子为该合并算子对应的算子组合中的算子。
图2所示装置实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
总之,采用本申请装置实施例所述方案,可实现横向算子自动合并,并可采用基于编译的方法,在运行时生成新的算子并替换原算子,从而提升了计算效率及提升了深度学习模型的训练速度等,并且,不受固定模式的约束,具有更广的应用场景和优化空间等。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图3所示,是根据本申请实施例所述方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图3所示,该电子设备包括:一个或多个处理器Y01、存储器Y02,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图3中以一个处理器Y01为例。
存储器Y02即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
存储器Y02作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器Y01通过运行存储在存储器Y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器Y02可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器Y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器Y02可选包括相对于处理器Y01远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置Y03和输出装置Y04。处理器Y01、存储器Y02、输入装置Y03和输出装置Y04可以通过总线或者其他方式连接,图3中以通过总线连接为例。
输入装置Y03可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装置和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器、发光二极管显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管或者液晶显示器监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网、广域网、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (12)

1.一种算子合并方法,包括:
根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个所述算子图中的算子;
针对任一算子组合,分别获取所述算子组合对应的合并算子;
针对任一合并算子,分别用所述合并算子替换所述算子图中的对应算子,并将所述对应算子的依赖边均连接到所述合并算子上,所述对应算子为所述合并算子对应的算子组合中的算子。
2.根据权利要求1所述的方法,其中,所述根据待处理的算子图,确定待合并的算子组合包括:
针对所述算子图执行以下第一处理:
遍历所述算子图中的算子,并针对遍历到的任一算子,若确定任一其它算子与遍历到的算子之间无依赖关系,则将所述其它算子与所述遍历到的算子组成算子对,并将所述算子对作为新的算子,替换所述其它算子及所述遍历到的算子,以及将所述其它算子及所述遍历到的算子的依赖边均连接到所述新的算子上;
若确定符合终止条件,则将所述算子图中由至少两个算子组成的算子作为所述待合并的算子组合,否则,重复执行所述第一处理。
3.根据权利要求2所述的方法,还包括:
从所述算子图中的算子中筛选出可合并算子,用筛选出的算子组成第一算子集合;
若确定所述其它算子及所述遍历到的算子均位于所述第一算子集合中,则将所述其它算子与所述遍历到的算子组成算子对。
4.根据权利要求2所述的方法,其中,所述符合终止条件包括:
无法生成新的算子对,或者,若生成新的算子对,其中的算子数将大于预定阈值。
5.根据权利要求1所述的方法,其中,所述获取所述算子组合对应的合并算子包括:
获取所述算子组合对应的合并代码;
编译生成所述合并代码对应的二进制代码,得到所述合并算子。
6.一种算子合并装置,包括:组合获取模块、算子合并模块以及算子替换模块;
所述组合获取模块,用于根据待处理的算子图,确定待合并的算子组合,任一算子组合中分别包括至少两个所述算子图中的算子;
所述算子合并模块,用于针对任一算子组合,分别获取所述算子组合对应的合并算子;
所述算子替换模块,用于针对任一合并算子,分别用所述合并算子替换所述算子图中的对应算子,并将所述对应算子的依赖边均连接到所述合并算子上,所述对应算子为所述合并算子对应的算子组合中的算子。
7.根据权利要求6所述的装置,其中,
所述组合获取模块针对所述算子图执行以下第一处理:
遍历所述算子图中的算子,并针对遍历到的任一算子,若确定任一其它算子与遍历到的算子之间无依赖关系,则将所述其它算子与所述遍历到的算子组成算子对,并将所述算子对作为新的算子,替换所述其它算子及所述遍历到的算子,以及将所述其它算子及所述遍历到的算子的依赖边均连接到所述新的算子上;
若确定符合终止条件,则将所述算子图中由至少两个算子组成的算子作为所述待合并的算子组合,否则,重复执行所述第一处理。
8.根据权利要求7所述的装置,其中,
所述组合获取模块进一步用于,从所述算子图中的算子中筛选出可合并算子,用筛选出的算子组成第一算子集合,若确定所述其它算子及所述遍历到的算子均位于所述第一算子集合中,则将所述其它算子与所述遍历到的算子组成算子对。
9.根据权利要求7所述的装置,其中,所述符合终止条件包括:
无法生成新的算子对,或者,若生成新的算子对,其中的算子数将大于预定阈值。
10.根据权利要求6所述的装置,其中,所述算子合并模块针对任一算子组合,分别获取所述算子组合对应的合并代码,并编译生成所述合并代码对应的二进制代码,得到所述合并算子。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。
CN202011139137.7A 2020-10-22 2020-10-22 算子合并方法、装置、电子设备及存储介质 Active CN112270413B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011139137.7A CN112270413B (zh) 2020-10-22 2020-10-22 算子合并方法、装置、电子设备及存储介质
KR1020210080113A KR20210120919A (ko) 2020-10-22 2021-06-21 연산자 합병 방법, 장치, 전자 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램
JP2021104027A JP7170094B2 (ja) 2020-10-22 2021-06-23 オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム
US17/463,748 US20210398022A1 (en) 2020-10-22 2021-09-01 Method and apparatus of fusing operators, electronic device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011139137.7A CN112270413B (zh) 2020-10-22 2020-10-22 算子合并方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112270413A true CN112270413A (zh) 2021-01-26
CN112270413B CN112270413B (zh) 2024-02-27

Family

ID=74342813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011139137.7A Active CN112270413B (zh) 2020-10-22 2020-10-22 算子合并方法、装置、电子设备及存储介质

Country Status (4)

Country Link
US (1) US20210398022A1 (zh)
JP (1) JP7170094B2 (zh)
KR (1) KR20210120919A (zh)
CN (1) CN112270413B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492737B (zh) * 2021-12-31 2022-12-09 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
CN117709403A (zh) * 2022-09-07 2024-03-15 华为云计算技术有限公司 模型优化方法、装置以及计算设备
WO2024065525A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Method and apparatus for optimizing deep learning computation graph

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088490A1 (en) * 2008-10-02 2010-04-08 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator
CN102323946A (zh) * 2011-09-05 2012-01-18 天津神舟通用数据技术有限公司 并行数据库中算子复用的实现方法
US20130262824A1 (en) * 2012-03-29 2013-10-03 Fujitsu Limited Code generation method, and information processing apparatus
CN109977116A (zh) * 2019-03-14 2019-07-05 山东超越数控电子股份有限公司 基于fpga-ddr的哈希连接算子加速方法及系统
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN110515626A (zh) * 2019-08-20 2019-11-29 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN111338635A (zh) * 2020-02-20 2020-06-26 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质
CN111382347A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种对象特征的处理和信息推送方法、装置和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3096387B2 (ja) * 1994-01-28 2000-10-10 三菱電機株式会社 数値演算処理装置
US7219085B2 (en) * 2003-12-09 2007-05-15 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088490A1 (en) * 2008-10-02 2010-04-08 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator
CN102323946A (zh) * 2011-09-05 2012-01-18 天津神舟通用数据技术有限公司 并行数据库中算子复用的实现方法
US20130262824A1 (en) * 2012-03-29 2013-10-03 Fujitsu Limited Code generation method, and information processing apparatus
CN111382347A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种对象特征的处理和信息推送方法、装置和设备
CN109977116A (zh) * 2019-03-14 2019-07-05 山东超越数控电子股份有限公司 基于fpga-ddr的哈希连接算子加速方法及系统
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN110515626A (zh) * 2019-08-20 2019-11-29 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN111338635A (zh) * 2020-02-20 2020-06-26 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PHILIPPOS P.等: "Accelerating the Merge Phase of Sort-Merge Join", 2019 29TH INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS (FPL) *
徐宝文 , 张挺 , 陈振强: "递归子程序的依赖性分析及其应用", 计算机学报, no. 11 *

Also Published As

Publication number Publication date
JP7170094B2 (ja) 2022-11-11
KR20210120919A (ko) 2021-10-07
US20210398022A1 (en) 2021-12-23
JP2021152960A (ja) 2021-09-30
CN112270413B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
CN111310934B (zh) 一种模型生成方法、装置、电子设备和存储介质
CN112270413B (zh) 算子合并方法、装置、电子设备及存储介质
CN111080243A (zh) 业务处理的方法、装置、系统、电子设备及存储介质
CN111158666B (zh) 实体归一化处理方法、装置、设备及存储介质
CN110852449B (zh) 模型迁移方法和电子设备
CN111949272B (zh) 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
CN111177339A (zh) 对话生成方法、装置、电子设备及存储介质
CN112527474A (zh) 任务处理方法及装置、设备、可读介质、计算机程序产品
CN114691148A (zh) 模型推理加速方法、装置、电子设备及存储介质
CN111061743B (zh) 数据加工方法、装置和电子设备
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN114330735A (zh) 处理机器学习模型的方法、电子设备和计算机程序产品
CN111125451B (zh) 数据生产加工方法、装置、电子设备及存储介质
CN111176838B (zh) 为二分图中的节点分配嵌入向量的方法以及装置
JP2022013658A (ja) オプティマイザ学習方法、装置、電子デバイス、可読記憶媒体及びコンピュータプログラム
CN112270412B (zh) 网络算子处理方法、装置、电子设备及存储介质
CN112508163B (zh) 神经网络模型中子图的展示方法、装置和存储介质
CN114661274A (zh) 用于生成智能合约的方法和装置
US11941055B2 (en) Method and apparatus for graph computing, electronic device and storage medium
CN114217798A (zh) 数据库表单界面的代码生成方法和装置
CN112734454B (zh) 一种用户信息确定方法、装置、电子设备和存储介质
CN113691403A (zh) 拓扑节点配置方法、相关装置及计算机程序产品
CN113656533A (zh) 一种树形控件处理方法、装置及电子设备
CN113138760A (zh) 一种页面生成方法、装置、电子设备和介质
CN111857825A (zh) 指令执行方法、装置、电子设备和计算机可读存储介质

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