CN116933841A - 算子融合方法及装置、电子设备、计算机可读介质 - Google Patents
算子融合方法及装置、电子设备、计算机可读介质 Download PDFInfo
- Publication number
- CN116933841A CN116933841A CN202210350623.6A CN202210350623A CN116933841A CN 116933841 A CN116933841 A CN 116933841A CN 202210350623 A CN202210350623 A CN 202210350623A CN 116933841 A CN116933841 A CN 116933841A
- Authority
- CN
- China
- Prior art keywords
- fusion
- operator
- graph
- execution
- sub
- 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.)
- Pending
Links
- 238000007500 overflow downdraw method Methods 0.000 title claims abstract description 33
- 230000004927 fusion Effects 0.000 claims abstract description 336
- 238000012545 processing Methods 0.000 claims abstract description 74
- 230000007246 mechanism Effects 0.000 claims abstract description 40
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 19
- 238000012549 training Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000013468 resource allocation Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种算子融合方法及装置、电子设备、计算机可读介质,该方法包括:根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图;获取目标子图的执行信息;根据与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制,确定目标子图的执行策略。根据本公开的实施例能够快捷地识别出需要进行算子融合的目标子图,并准确地确定目标子图的执行策略,以便处理核心在根据该执行策略生成的指令执行子图的计算任务时,减少对片上存储资源的占用,加快对计算任务的执行速度,从而有效提高处理能力。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种算子融合方法及装置、电子设备、计算机可读介质。
背景技术
计算图(Computational Graph)是一种用于描述函数的有向图,已经被广泛应用在各类深度学习框架(例如,tensorflow和onnx等)中。通常情况下,计算图需要经过编译,才能生成可以在硬件上运行的指令流。
在相关技术中,编译器在划分子图之后,还可以通过人工方式对子图中的某些算子进行融合,将融合后的子图作为一个执行单元执行相应的指令,以达到减少片上存储、加快执行速度的目的。
然而,由于算子种类较多,算子的组合方式复杂多样,且算子参数存在多种选择,通过人工方式进行组合编译效率较低,且无法保障获得较优的处理能力。
发明内容
本公开提供一种基于众核系统的算子融合方法及装置、电子设备、计算机可读介质。
第一方面,本公开提供了一种算子融合方法,该算子融合方法包括:根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图,所述算子融合模式集合中包括至少一种算子融合模式,所述目标子图包括待融合的多个第一算子;获取所述目标子图的执行信息,所述目标子图的执行信息表征与所述目标子图的执行过程相关联的信息;根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略;其中,所述执行策略用于生成指示处理核心执行所述目标子图的指令;所述执行策略包括融合子块的信息、所述融合子块的执行顺序和所述融合子块对应的处理核心的信息,所述融合子块是根据对应的算子融合模式对多个所述第一算子进行融合形成的融合算子进行划分获得的子块。
第二方面,本公开提供了一种算子融合装置,该算子融合装置包括:子图确定模块,被配置为根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图,所述算子融合模式集合中包括至少一种算子融合模式,所述目标子图包括待融合的多个第一算子;获取模块,被配置为获取所述目标子图的执行信息,所述目标子图的执行信息表征与所述目标子图的执行过程相关联的信息;策略确定模块,被配置为根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略;其中,所述执行策略用于生成指示处理核心执行所述目标子图的指令;所述执行策略包括融合子块的信息、所述融合子块的执行顺序和所述融合子块对应的处理核心的信息,所述融合子块是根据对应的算子融合模式对多个所述第一算子进行融合形成的融合算子进行划分获得的子块。
第三方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的算子融合方法。
第四方面,本公开提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的算子融合方法。
本公开所提供的实施例,通过预设的算子融合模式集合,能够快捷地识别出需要进行算子融合的目标子图,进而根据目标子图对应的算子融合模式、融合执行机制以及目标子图的执行信息,能准确地确定目标子图的执行策略,该方案在确定目标子图的执行策略过程中,实现了对目标子图中的第一算子的自动融合,处理核心在根据该执行策略生成的指令执行子图的计算任务时,减少对片上存储资源的占用,加快对计算任务的执行速度,从而有效提高处理能力。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种算子融合方法的流程图;
图2为本公开实施例提供的一种算子融合方法的流程图;
图3为本公开实施例提供的一种策略生成模型的训练过程的示意图;
图4为本公开实施例提供的一种算子融合方法的处理过程的示意图;
图5为本公开实施例提供的一种算子融合装置的框图;
图6为本公开实施例提供的一种编译器的框图;
图7为本公开实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学逼近论、凸分析、算法复杂度理论等多门学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
在实际应用中,可以使用计算图来表示深度学习模型对应的神经网络。在计算图中,计算被表示成有向图,其中定义了数据的流向方式、数据的计算方式以及各种计算之间的关系等。通常情况下,计算图包括两类基本要素,分别为节点(Node)和有向边(Edge)。其中,节点包括变量节点和算子节点等,每个变量节点对应有张量,张量可以是标量、矢量或矩阵,算子节点指数学运算(例如,卷积/反卷积算子、池化算子、激活算子、分类器算子、全连接算子等);有向边用于表示两个节点间的依赖关系(例如,串行连接的两个算子,前一算子的输出作为相邻后一算子的输入)。通过内部多个算子的共同作用,计算图整体可以用于实现相对完整的特定功能的算法,其包括但不局限于各类机器学习算法。
相关技术中,可以将计算图划分为多个子图,并将每个子图分配至一个计算单元中进行计算,以通过分布式计算的方式得到计算图的运算结果。考虑到众核系统中包括多个以预设方式连接的处理核(核心,Core),且每个处理核为可独立调度并拥有独立计算能力的最小单元,其具备独立执行计算任务的能力,因此,可以使用众核系统对计算图的各个子图进行分布式处理,从而提升处理效率。而且,通常情况下,计算图需要经过编译,才能生成可以在硬件上运行的指令流。在编译阶段,当计算图进入编译器之后,被划分为若干子图,每个子图中包括一个或多个算子。针对众核系统或众核芯片而言,编译器为各个子图生成相应的指令之后,根据各子图的计算量、访存需求以及子图之间的同步信息等,将指令分发到不同的处理核心,以便各个处理核心根据接收的指令执行子图的计算任务。
应当理解,在众核系统处理计算图时,需要给不同的子图分配不同的资源,或者将每个子图“映射”至众核网络的不同资源上。即,众核系统在运行时,计算图中同时执行的每个子图都应不重复的使用(占用)众核系统中的一部分确定资源。
其中,众核系统的资源可包括运行资源(即硬件资源)。例如,众核系统的资源包括处理核心、线程、片上存储空间等,为计算图的各子图分配目标运行资源后,当子图在众核系统中运行时,其目标运行资源中的处理核心、线程、片上存储空间仅能被该子图占用。
众核系统的资源还可包括时间资源,为子图分配的目标时间资源相当于规定子图应在什么时间被众核系统处理。也就是说,多个子图可采用“时分复用”的方式在众核系统中处理。换言之,同样的资源不能同时被分配给多个不同子图,即,任意的运行资源,在相同的时间资源下(相同时间),最多只能作为一个子图的目标资源;但相同的运行资源可在不同时间分配给不同的子图。
需要说明的是,在众核系统处理计算图之前,通常需要由编译器对计算图进行编译,以生成可以在硬件上运行的指令流。在相关技术中,编译器在划分子图之后,还可以通过人工方式对子图中的某些算子进行融合,将融合后的子图作为一个执行单元执行相应的指令,以达到减少片上存储、加快执行速度的目的。然而,由于算子种类较多,算子的组合方式复杂多样,且算子参数存在多种选择,通过人工方式进行组合编译效率较低,且无法保障获得较优的处理能力。
有鉴于此,本公开实施例提供一种算子融合方法及装置、电子设备、介质,通过预设的算子融合模式集合确定目标子图,进而根据目标子图对应的算子融合模式、融合执行机制以及目标子图的执行信息,准确地确定目标子图的执行策略,以便处理核心在根据该执行策略生成的指令执行子图的计算任务时,减少对片上存储资源的占用,加快对计算任务的执行速度,从而有效提高处理能力。
图1为本公开实施例提供的一种算子融合方法的流程图。参照图1,该方法包括:
步骤S101,根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图。
其中,指定计算图是指处于当前编译过程中的计算图,其中节点的连接关系可能包括一个或多个子图。算子融合模式集合中包括至少一种算子融合模式,算子融合模式用于指示可以进行融合的算子的模式,其包括但不限于算子类型、算子连接关系及相应的融合方式。目标子图包括待融合的多个第一算子。
换言之,若指定计算图的某些子图中,存在符合算子融合模式的第一算子时,则将该子图确定为目标子图。在目标子图中,符合算子融合模式的多个第一算子可以进行融合,并形成相应的融合算子,在后续过程中,融合算子可以作为一个执行单元进行处理。
在一些实施例中,在对指定计算图进行编译的过程中,根据算子融合模式集合,通过子图匹配的方式遍历指定计算图的多个子图,确定多个子图中的目标子图。
例如,将两个卷积算子串行连接设置为一种算子融合模式,通过子图匹配的方式遍历指定计算图的各个子图;当确定指定计算图的子图中,存在两个卷积算子串行连接的情况时,将对应的子图确定为目标子图。
需要说明的是,在一些实施例中,可以按照预设的子图划分规则对指定计算图进行划分,从而获得该计算图对应的子图。例如,基于凹凸性(Convex)和连通性规则对指定计算图进行划分,获得指定计算图对应的子图。以上对于子图获取方式仅是举例说明,本公开对获取子图的具体方式不作限制。
还需要说明的是,在一些具体实现中,指定计算图中可能不包含可以进行算子融合的子图,即指定计算图的子图中没有目标子图(例如,指定计算图中只包括一个算子的情况,其子图无法进行算子融合)。针对这类指定计算图,在确定不存在目标子图的情况下,可按照常规的方法编译该指定计算图。
步骤S102,获取目标子图的执行信息。
其中,目标子图的执行信息表征与目标子图的执行过程相关联的信息。
在一些实施例中,目标子图的执行信息包括算子特征信息、算子计算量信息,以及可用核心信息中的至少一种。
其中,算子特征信息用于表征算子的计算特征和算子之间的连接特征,计算特征包括循环层数、循环类型、数学变换类型等,连接特征包括串行连接、并行连接等;算子计算量信息用于表征算子对应的计算量的大小;可用核心信息指示用于执行指定计算图的众核系统中可用的核心,可以包括可用核心的标识以及可用核心的资源(例如,存储资源、线程资源和时间资源等)等。
需要说明的是,以上对于目标子图的执行信息仅是举例说明,在实际应用中,可根据需求灵活确定执行信息的具体内容,本公开对此不作限制。
步骤S103,根据与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制,确定目标子图的执行策略。
其中,融合执行机制用于指示融合算子的执行操作。执行策略用于生成指示处理核心执行目标子图的指令。
在一些可能的实现方式中,将待融合的多个第一算子进行融合获得融合算子,融合执行机制包括融合算子的切分规则。换言之,融合执行机制用于表征是否需要对融合算子进行切分,以及如何对融合算子进行切分,且融合执行机制与算子融合模式具有对应关系。
在一些可能的实现方式中,执行策略为根据与目标子图对应的算子融合模式对目标子图中的第一算子进行融合获得融合算子,并根据目标子图的执行信息和预设的融合执行机制对融合算子进行划分与排序,获得的融合子块的信息、融合子块的执行顺序和融合子块对应的处理核心的信息。
换言之,在确定执行策略时,并非只进行单一的算子融合操作或者图划分操作,而是首先根据目标子图的算子融合模式,将目标子图中可以融合的第一算子进行融合,获得融合算子,进而根据目标子图的执行信息和预设的融合执行机制,将该融合算子划分为一个或多个融合子块,并确定各个融合子块的执行顺序以及对应的处理核心的信息,从而获得执行策略。
在一些可能的实现方式中,执行策略包括融合子块的信息、融合子块的执行顺序和融合子块对应的处理核心的信息。其中,融合子块是对多个第一算子形成的融合算子进行划分获得的子块。
在一些实施例中,目标子图的执行信息包括算子特征信息、算子计算量信息,以及可用核心信息,相应的,确定目标子图的执行策略具体包括:首先,根据与目标子图对应的算子融合模式,对目标子图的第一算子进行融合,获得融合算子;其次,根据第一算子的算子特征信息和与目标子图对应的算子融合模式匹配的融合执行机制,对融合算子进行划分与排序,获得融合子块和融合子块的执行顺序;再次,根据第一算子的算子计算量信息,确定融合子块的计算量信息;最后,根据融合子块的计算量信息、融合子块的执行顺序和可用核心信息,确定融合子块对应的处理核心的信息。
在一些实施例中,目标子图的执行信息包括算子特征信息和可用核心信息,相应的,确定目标子图的执行策略具体包括:首先,根据与目标子图对应的算子融合模式,对目标子图的第一算子进行融合,获得融合算子;其次,根据第一算子的算子特征信息和与目标子图对应的算子融合模式匹配的融合执行机制,对融合算子进行划分与排序,获得融合子块和融合子块的执行顺序;最后,根据可用核心信息,确定融合子块对应的处理核心的信息。
在一些实施例中,目标子图的执行信息包括算子特征信息,相应的,确定目标子图的执行策略具体包括:首先,根据与目标子图对应的算子融合模式,对目标子图的第一算子进行融合,获得融合算子;其次,根据第一算子的算子特征信息和与目标子图对应的算子融合模式匹配的融合执行机制,对融合算子进行划分与排序,获得融合子块和融合子块的执行顺序;最后,根据预设的资源分配规则,确定融合子块对应的处理核心的信息。其中,预设的资源分配规则是预先设置的、用于指示众核系统中核心的资源分配操作的规则。
需要说明的是,在对目标子图中的第一算子进行融合,将融合算子作为一个执行单元进行处理时,部分中间数据无需再被存储,直接进入相邻的融合子块进行计算即可,从而可以有效减少对片上存储资源的占用,而且,还可以有效减少“存—取”操作次数,从而加快目标子图的执行速度,提高了众核系统或众核芯片的处理能力。
在本公开实施例中,首先,根据预设的算子融合模式集合,能够高效快捷地从指定计算图的多个子图中确定出目标子图;其次,获取目标子图的执行信息;最后,根据与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制,能准确地确定目标子图的执行策略,在确定目标子图的执行策略过程中,实现了对目标子图中的第一算子的自动融合,处理核心在根据该执行策略生成的指令执行子图的计算任务时,减少对片上存储资源的占用,加快对计算任务的执行速度,从而有效提高处理能力。
需要说明的是,对目标子图进行融合包括两种情形。在第一种情形中,目标子图中的所有算子均为第一算子,经过融合之后,目标子图中包括一个或多个融合算子。在第二种情形中,目标子图中包括至少两个第一算子,以及至少一个无法进行融合或者不需要进行融合的第二算子。对于第一种情形以及第二种情形中的第一算子,确定其对应的融合子块、融合子块的执行顺序以及融合子块对应的处理核心的信息即可获得执行策略,具体的执行策略确定方法与前面类似,此处不再重复描述。对于第二种情形中的第二算子,还应确定第二算子的执行顺序和第二算子对应的处理核心的信息,从而获得目标子图对应的完整的执行策略。其中,第二算子的执行顺序不仅包括第二算子之间的执行顺序,还包括第二算子与融合子块之间的执行顺序。
还需要说明的是,在一些实施例中,在步骤S103之后,根据本公开实施例的算子融合方法还可包括:根据目标子图的执行策略,生成目标子图对应的指令;将目标子图对应的指令发送至指定的处理核心,以供指定的处理核心根据指令执行目标子图对应的计算任务。
在一些实施例中,在将目标子图对应的指令发送至指定的处理核心之后,还包括:获取目标子图的执行性能数据;根据目标子图的执行性能数据、与目标子图对应的算子融合模式、目标子图的执行信息、与目标子图对应的算子融合模式匹配的融合执行机制,以及目标子图的执行策略,生成目标子图的执行记录;将目标子图的执行记录存储到预设存储空间。其中,执行性能数据包括处理核心的处理时长、处理准确度、占用存储空间中的至少一种。
图2为本公开实施例提供的一种算子融合方法的流程图。参照图2,该方法包括:
步骤S201,根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图。
步骤S202,获取目标子图的执行信息。
步骤S203,根据与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制,确定目标子图的执行策略。
本实施例中的步骤S201~S203与本公开上一实施例中步骤S101~S103的内容相同,在此不再赘述。
步骤S204,在检测出不属于算子融合模式集合的、新的算子融合模式的情况下,确定新的算子融合模式对应的算子特征信息。
其中,算子融合模式对应的算子特征信息包括算子之间的连接特征以及各个算子本身的计算特征。
在一些实施例中,通过人工检测方式和/或预设的算子融合模式检测算法,检测出新的算子融合模式。
需要说明的是,以上对于算子融合模式的检测方式仅是举例说明,本公开对算子融合模式的具体检测方式不作限制。
步骤S205,根据新的算子融合模式对应的算子特征信息和预设存储空间的执行记录,确定新的算子融合模式的执行策略。
其中,预设存储空间是预先设置的、用于存储执行记录的存储空间。
对于算子融合模式集合而言,其中的算子融合模式为当前已经确定的、可以进行融合的算子模式。但是,在实际应用中,可能发现不属于算子融合模式集合、但是仍然可以进行融合的算子模式,这些算子模式即为新的算子融合模式。对于新的算子融合模式而言,无法直接确定与其对应的执行策略。然而,考虑到不同算子之间可能具有相同或相近的特征,且算子之间的连接方式有限,因而算子的连接特征也相应有限,因此,在检测出不属于算子融合模式集合的、新的算子融合模式时,可以利用已有的算子融合模式中的算子特征、算子之间的连接特征以及该算子融合模式对应的执行信息、执行策略等内容,较为简便快捷地确定出新的算子融合模式对应的执行策略,而不必按照已有算子融合模式“从无到有”的方式确定其执行策略。
在一些实施例中,预设存储空间中的执行记录包括目标子图的执行性能数据、与目标子图对应的算子融合模式、与目标子图对应的算子融合模式匹配的融合执行机制、目标子图的执行信息,以及目标子图的执行策略。基于此,根据新的算子融合模式对应的算子特征信息以及目标子图的执行记录,即可确定新的算子融合模式的执行策略。
需要说明的是,在预设存储空间中没有存储执行记录或者无法获取该执行记录的情况下,不能根据新的算子融合模式对应的算子特征信息以及目标子图的执行记录确定新算子融合模式的执行策略,而是需要根据图1对应实施例所示的方法确定新的算子融合模式的执行策略。
在本公开实施例中,在检测出不属于算子融合模式集合的、新的算子融合模式的情况下,不直接按照已有算子融合模式的执行策略生成方式生成其执行策略,而是考虑到算子具有相似或相同的特征,因此,根据新的算子融合模式对应的算子特征信息以及预设存储空间的执行记录,确定新的算子融合模式的执行策略,从而简化了新算子融合模式的执行策略的生成过程。
需要说明的是,在一些实施例中,在步骤S205之后,根据本公开实施例的算子融合方法还可包括:根据新的算子融合模式更新算子融合模式集合。即,将新的算子融合模式纳入到算子融合模式集合中,使得算子融合模式集合包括当前已经检测出来的所有算子融合模式,从而根据该算子融合模式集合可以全面地检测出计算图中的目标子图。
还需要说明的是,在一些实施例中,可以通过预设的策略生成模型生成目标子图的执行策略。其中,策略生成模型是经过训练获得的、具有生成执行策略能力的模型。
图3为本公开实施例提供的一种策略生成模型的训练过程的示意图。参照图3,策略生成模型的训练过程包括如下步骤:
步骤S301,构建初始的策略生成模型。
在一些具体实现中,基于神经网络技术建立初始的策略生成模型,其类型包括但不限于递归神经网络(Recursive Neural Network,RNN)模型、卷积神经网络模型(Convolutional Neural Networks,CNN)以及深度信念网络(Deep Belief NeuralNetworks,DBNN)模型中的一种或多种(例如,可以在CNN模型的基础上叠加RNN模型构建策略生成模型)。
需要说明的是,以上对于策略生成模型的类型仅是举例说明,本公开对策略生成模型的类型不作限制。
由于初始的策略生成模型是未经训练的原始模型,使用初始的策略生成模型获得的执行策略,执行效果可能不佳,因此,需要通过训练获得良好的模型参数,并根据模型参数迭代更新模型之后,才能获得效果较好的策略生成模型。
步骤S302,获取训练集数据。
在一些具体实现中,训练集数据包括但不限于算子融合模式、融合算子执行机制、训练子图的执行信息。其中,训练子图包括待融合的多个第一算子。
步骤S303,将训练集数据输入策略生成模型,获得执行策略和预测执行性能数据。
其中,预测执行性能数据是预测众核系统按照策略生成模型生成的执行策略处理对应的子图时,所产生的性能数据。性能数据包括处理核心的处理时长、处理准确度、占用存储空间中的至少一种。
步骤S304,获取众核系统基于执行策略执行子图时生成的实际执行性能数据。
其中,执行策略即上一步骤中由策略生成模型生成的执行策略。实际执行性能数据即处理核心在根据该执行策略实际执行子图时所产生的性能数据。性能数据包括处理核心的处理时长、处理准确度、占用存储空间中的至少一种。
需要说明的是,实际执行性能数据与预测执行性能数据应是关于相同性能参数的数据,以便两者具有可比性。
步骤S305,根据预测执行性能数据和实际执行性能数据,更新策略生成模型。
步骤S306,在满足预设的迭代停止条件的情况下,停止训练,获得最终的策略生成模型。
其中,预设的迭代停止条件用于指示停止训练过程。
在一些具体实现中,迭代停止条件包括迭代次数达到预设迭代次数阈值,和/或,实际执行性能数据达到预设性能要求,和/或,实际执行性能数据不再优化等。
需要说明的是,以上对于迭代停止条件仅是举例说明,本公开对此不作限制。
还需要说明的是,在出现新的算子融合模式的情况下,可以利用当前已有的算子融合模式的相关信息以及新的算子融合模式的特征信息,快捷地生成新的算子融合模式对应的执行策略,也可以按照上述训练方法针对新的算子融合模式进行训练,从而获得新的算子融合模式的执行策略。
图4为本公开实施例提供的一种算子融合方法的处理过程的示意图。参照图4,算子融合方法的处理过程包括如下步骤:
步骤S401,设置算子融合模式,获得算子融合模式集合。
其中,算子融合模式为当前已经确定的、可以进行融合的算子模式。例如,将两个串行连接的二维卷积算子(Conv2d)设置为一种算子融合模式。又如,将依次串行连接的批标准化算子(Batch Normalization,BN)与二维卷积算子设置为一种算子融合模式。
步骤S402,设置各个算子融合模式对应的融合执行机制。
其中,融合执行机制用于指示融合算子的执行操作,具体用于表征是否需要对融合算子进行切分,以及如何对融合算子进行切分,且融合执行机制与算子融合模式具有对应关系。
在一些实施例中,根据硬件体系架构以及编译器的接口,设置各个算子融合模式对应的融合执行机制。
步骤S403,根据算子融合模式集合,从指定计算图的多个子图中确定出目标子图。
步骤S404,获取目标子图的执行信息。
在一些实施例中,目标子图的执行信息包括算子特征信息、算子计算量信息,以及可用核心信息中的至少一种。
步骤S405,将与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制输入策略生成模型,获得目标子图的执行策略。
步骤S406,根据目标子图的执行策略,生成目标子图对应的指令。
步骤S407,将目标子图对应的指令发送至指定的处理核心,以供指定的处理核心根据指令执行目标子图对应的计算任务。
其中,指定的处理核心即指执行策略中确定的、用于执行对应的融合子块或第二算子的计算任务的核心。
步骤S408,获取目标子图的执行性能数据。
其中,执行性能数据包括处理核心的处理时长、处理准确度、占用存储空间中的至少一种。
步骤S409,根据目标子图的执行性能数据、与目标子图对应的算子融合模式、目标子图的执行信息、与目标子图对应的算子融合模式匹配的融合执行机制,以及目标子图的执行策略,生成目标子图的执行记录,并将目标子图的执行记录存储到预设存储空间。
在一些实施例中,在步骤S409之后,根据本公开实施例的算子融合方法还可包括:在检测出不属于算子融合模式集合的、新的算子融合模式的情况下,确定新的算子融合模式对应的算子特征信息;根据新的算子融合模式对应的算子特征信息和预设存储空间的执行记录,确定新的算子融合模式的执行策略;根据新的算子融合模式,更新算子融合模式集合。
图5为本公开实施例提供的一种算子融合装置的框图。
参照图5,本公开实施例提供了一种算子融合装置,该算子融合装置包括:
子图确定模块501,被配置为根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图。
其中,算子融合模式集合中包括至少一种算子融合模式,目标子图包括待融合的多个第一算子。
获取模块502,被配置为获取目标子图的执行信息。
其中,目标子图的执行信息表征与目标子图的执行过程相关联的信息。
策略确定模块503,被配置为根据与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制,确定目标子图的执行策略。
其中,执行策略用于生成指示处理核心执行目标子图的指令。
在一些实施例中,子图确定模块501,用于:根据算子融合模式集合,通过子图匹配的方式遍历指定计算图的多个子图,确定多个子图中的目标子图。
在一些实施例中,获取模块502,用于:获取包括算子特征信息、算子计算量信息,以及可用核心信息中至少一种的目标子图的执行信息。
在一些可能的实现方式中,执行策略为根据与目标子图对应的算子融合模式对目标子图中的第一算子进行融合获得融合算子,并根据目标子图的执行信息和预设的融合执行机制对融合算子进行划分与排序,获得的融合子块的信息、融合子块的执行顺序和融合子块对应的处理核心的信息。
换言之,在策略确定模块503确定执行策略时,并非只进行单一的算子融合操作或者图划分操作,而是首先根据目标子图的算子融合模式,将目标子图中可以融合的第一算子进行融合,获得融合算子,进而根据目标子图的执行信息和预设的融合执行机制,将该融合算子划分为一个或多个融合子块,并确定各个融合子块的执行顺序以及对应的处理核心的信息,从而获得执行策略。
在一些实施例中,目标子图的执行信息包括算子特征信息、算子计算量信息,以及可用核心信息,可用核心信息指示用于执行指定计算图的众核系统中可用的核心;执行策略包括融合子块的信息、融合子块的执行顺序和融合子块对应的处理核心的信息,融合子块是对多个第一算子形成的融合算子进行划分获得的子块。策略确定模块503,具体包括:算子融合单元、划分与排序单元、计算量确定单元和第一核心确定单元。其中,算子融合单元,具体用于根据与目标子图对应的算子融合模式,对目标子图的第一算子进行融合,获得融合算子;划分与排序单元,具体用于根据第一算子的算子特征信息和与目标子图对应的算子融合模式匹配的融合执行机制,对融合算子进行划分与排序,获得融合子块和融合子块的执行顺序;计算量确定单元,具体用于根据第一算子的算子计算量信息,确定融合子块的计算量信息;核心确定单元,具体用于根据融合子块的计算量信息、融合子块的执行顺序和可用核心信息,确定融合子块对应的处理核心的信息。
在一些实施例中,目标子图的执行信息包括算子特征信息和可用核心信息,执行策略包括融合子块的信息、融合子块的执行顺序和融合子块对应的处理核心的信息。策略确定模块503,具体包括:算子融合单元、划分与排序单元和第二核心确定单元。其中,算子融合单元、划分与排序单元与上一实施例的作用相同,此处不再重复描述。第二核心确定单元,具体用于根据可用核心信息,确定融合子块对应的处理核心的信息。
在一些实施例中,目标子图的执行信息包括算子特征信息,执行策略包括融合子块的信息、融合子块的执行顺序和融合子块对应的处理核心的信息。策略确定模块503,具体包括:算子融合单元、划分与排序单元和第三核心确定单元。其中,算子融合单元、划分与排序单元与上一实施例的作用相同,此处不再重复描述。第三核心确定单元,具体用于根据预设的资源分配规则,确定融合子块对应的处理核心的信息。其中,预设的资源分配规则是预先设置的、用于指示众核系统中核心的资源分配操作的规则。
需要说明的是,在目标子图还包括不进行融合的第二算子的情况下,策略确定模块503,还包括:第二算子排序单元和第四核心确定单元。其中,第二算子排序单元,具体用于确定第二算子的执行顺序;第四核心确定单元,用于确定第二算子对应的处理核心的信息。
在一些实施例中,策略确定模块503获取目标子图的执行策略,可以由预设的策略生成模型根据与目标子图对应的算子融合模式、目标子图的执行信息和融合执行机制生成。其中,策略生成模型是经过训练获得的、具有生成执行策略能力的模型。策略生成模型的训练过程可参见本公开图3所示实施例,此处不再重复描述。
在一些实施例中,根据本公开实施例的算子融合装置还可包括:指令生成模块和指令发送模块。其中,指令生成模块,用于根据目标子图的执行策略,生成目标子图对应的指令;指令发送模块,用于将目标子图对应的指令发送至指定的处理核心,以供指定的处理核心根据指令执行目标子图对应的计算任务。
在一些实施例中,根据本公开实施例的算子融合装置还可包括:性能获取模块、记录生成模块和存储模块。其中,性能获取模块,用于获取目标子图的执行性能数据;记录生成模块,用于根据目标子图的执行性能数据、与目标子图对应的算子融合模式、目标子图的执行信息、与目标子图对应的算子融合模式匹配的融合执行机制,以及目标子图的执行策略,生成目标子图的执行记录;存储模块,用于将目标子图的执行记录存储到预设存储空间。
在一些实施例中,根据本公开实施例的算子融合装置还可包括:特征确定模块和新策略确定模块。其中,特征确定模块,用于在检测出不属于算子融合模式集合的、新的算子融合模式的情况下,确定新的算子融合模式对应的算子特征信息;新策略确定模块,用于根据新的算子融合模式对应的算子特征信息和预设存储空间的执行记录,确定新的算子融合模式的执行策略。
在一些实施例中,根据本公开实施例的算子融合装置还可包括:更新模块。其中,更新模型,用于根据新的算子融合模式更新算子融合模式集合。即,将新的算子融合模式纳入到算子融合模式集合中,使得算子融合模式集合包括当前已经检测出来的所有算子融合模式,从而根据该算子融合模式集合可以全面地检测计算图中的目标子图。
图6为本公开实施例提供的一种编译器的框图。
参照图6,本公开实施例提供了一种编译器,该编译器600包括:至少一个算子融合装置601。
其中,算子融合装置601采用本公开实施例中任意一种算子融合装置,并用于实现本公开实施例中的任意一种算子融合方法。
在一些实施例中,编译器600包括一个算子融合装置601。其中,算子融合装置601具体包括子图确定模块、获取模块和策略确定模块。其中,子图确定模块,用于根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图;获取模块,用于获取目标子图的执行信息;策略确定模块,用于根据与目标子图对应的算子融合模式、目标子图的执行信息和预设的融合执行机制,确定目标子图的执行策略。
需要明确的是,本公开并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图7为本公开实施例提供的一种电子设备的框图。
参照图7,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器701;以及与至少一个处理器701通信连接的存储器702;其中,存储器702存储有可被至少一个处理器701执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器701执行,以使至少一个处理器701能够执行上述的算子融合方法。
在一些实施例中,该电子设备可以是类脑芯片,由于类脑芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(Double Data Rate,DDR)同步动态随机存储器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。
此外,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的算子融合方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (11)
1.一种算子融合方法,其特征在于,包括:
根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图,所述算子融合模式集合中包括至少一种算子融合模式,所述目标子图包括待融合的多个第一算子;
获取所述目标子图的执行信息,所述目标子图的执行信息表征与所述目标子图的执行过程相关联的信息;
根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略;
其中,所述执行策略用于生成指示处理核心执行所述目标子图的指令;所述执行策略包括融合子块的信息、所述融合子块的执行顺序和所述融合子块对应的处理核心的信息,所述融合子块是根据对应的算子融合模式对多个所述第一算子进行融合形成的融合算子进行划分获得的子块。
2.根据权利要求1所述的算子融合方法,其特征在于,所述目标子图的执行信息包括算子特征信息、算子计算量信息,以及可用核心信息,所述可用核心信息指示用于执行所述指定计算图的众核系统中可用的核心;
所述根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略,包括:
根据与所述目标子图对应的算子融合模式,对所述目标子图的第一算子进行融合,获得所述融合算子;
根据所述第一算子的算子特征信息和与所述目标子图对应的算子融合模式匹配的融合执行机制,对所述融合算子进行划分与排序,获得所述融合子块和所述融合子块的执行顺序;
根据所述第一算子的算子计算量信息,确定所述融合子块的计算量信息;
根据所述融合子块的计算量信息、所述融合子块的执行顺序和所述可用核心信息,确定所述融合子块对应的处理核心的信息。
3.根据权利要求1所述的算子融合方法,其特征在于,所述目标子图还包括:不进行融合的第二算子;
所述目标子图的执行策略还包括:所述第二算子的执行顺序和所述第二算子对应的处理核心的信息。
4.根据权利要求1-3中任意一项所述的算子融合方法,其特征在于,所述目标子图的执行策略由预设的策略生成模型根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和所述融合执行机制生成;
其中,所述策略生成模型是经过训练获得的、具有生成执行策略能力的模型。
5.根据权利要求1所述的算子融合方法,其特征在于,所述根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图,包括:
根据所述算子融合模式集合,通过子图匹配的方式遍历所述指定计算图的多个子图,确定所述多个子图中的目标子图。
6.根据权利要求1所述的算子融合方法,其特征在于,所述根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略之后,还包括:
根据所述目标子图的执行策略,生成所述目标子图对应的指令;
将所述目标子图对应的指令发送至指定的处理核心,以供所述指定的处理核心根据所述指令执行所述目标子图对应的计算任务。
7.根据权利要求6所述的算子融合方法,其特征在于,所述将所述目标子图对应的指令发送至指定的处理核心之后,还包括:
获取所述目标子图的执行性能数据;
根据所述目标子图的执行性能数据、与所述目标子图对应的算子融合模式、所述目标子图的执行信息、与所述目标子图对应的算子融合模式匹配的融合执行机制,以及所述目标子图的执行策略,生成所述目标子图的执行记录;
将所述目标子图的执行记录存储到预设存储空间。
8.根据权利要求7所述的算子融合方法,其特征在于,所述根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略之后,还包括:
在检测出不属于所述算子融合模式集合的、新的算子融合模式的情况下,确定所述新的算子融合模式对应的算子特征信息;
根据所述新的算子融合模式对应的算子特征信息和所述预设存储空间的执行记录,确定所述新的算子融合模式的执行策略。
9.一种算子融合装置,其特征在于,包括:
子图确定模块,被配置为根据预设的算子融合模式集合,从指定计算图的多个子图中确定出目标子图,所述算子融合模式集合中包括至少一种算子融合模式,所述目标子图包括待融合的多个第一算子;
获取模块,被配置为获取所述目标子图的执行信息,所述目标子图的执行信息表征与所述目标子图的执行过程相关联的信息;
策略确定模块,被配置为根据与所述目标子图对应的算子融合模式、所述目标子图的执行信息和预设的融合执行机制,确定所述目标子图的执行策略;
其中,所述执行策略用于生成指示处理核心执行所述目标子图的指令;所述执行策略包括融合子块的信息、所述融合子块的执行顺序和所述融合子块对应的处理核心的信息,所述融合子块是根据对应的算子融合模式对多个所述第一算子进行融合形成的融合算子进行划分获得的子块。
10.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8中任一项所述的算子融合方法。
11.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现如权利要求1-8中任一项所述的算子融合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350623.6A CN116933841A (zh) | 2022-04-02 | 2022-04-02 | 算子融合方法及装置、电子设备、计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350623.6A CN116933841A (zh) | 2022-04-02 | 2022-04-02 | 算子融合方法及装置、电子设备、计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116933841A true CN116933841A (zh) | 2023-10-24 |
Family
ID=88388347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210350623.6A Pending CN116933841A (zh) | 2022-04-02 | 2022-04-02 | 算子融合方法及装置、电子设备、计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116933841A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271101A (zh) * | 2023-11-22 | 2023-12-22 | 上海燧原科技有限公司 | 一种算子融合方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-02 CN CN202210350623.6A patent/CN116933841A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271101A (zh) * | 2023-11-22 | 2023-12-22 | 上海燧原科技有限公司 | 一种算子融合方法、装置、电子设备及存储介质 |
CN117271101B (zh) * | 2023-11-22 | 2024-03-01 | 上海燧原科技股份有限公司 | 一种算子融合方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242321B (zh) | 一种数据处理方法及相关产品 | |
CN113703775B (zh) | 一种编译方法、装置、设备及存储介质 | |
CN108139898B (zh) | 数据处理图编译 | |
CN112199190A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN113485836B (zh) | 一种基于张量切分的张量处理方法和张量处理系统 | |
GB2530516A (en) | Intelligent Software Test Augmenting | |
CN113485837A (zh) | 一种基于并行分支和张量切分的张量处理方法和处理系统 | |
CN108875914B (zh) | 对神经网络数据进行预处理和后处理的方法和装置 | |
US20150331787A1 (en) | Software verification | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
WO2021219211A1 (en) | Memory allocation in a neural network | |
CN115249315A (zh) | 面向异构计算设备的深度学习图像分类方法及装置 | |
CN116011468A (zh) | 深度学习模型的推理方法、机器翻译方法及装置 | |
CN116933841A (zh) | 算子融合方法及装置、电子设备、计算机可读介质 | |
US20220414438A1 (en) | Neural network acceleration via graph partition | |
CN112753016A (zh) | 神经网络中数据预处理阶段的计算资源的管理方法和装置 | |
CN117076092A (zh) | 多维数据任务的处理方法、装置、电子设备及存储介质 | |
CN111027688A (zh) | 一种基于fpga的神经网络计算器生成方法及装置 | |
CN115809684A (zh) | 一种网络模型异构部署方法、装置、设备及存储介质 | |
KR20230001132A (ko) | 중요 경로 기반 스케줄링 및 후처리를 통한 리소스 활용을 극대화할 수 있는 multi-GPU 기반 딥러닝 모델 추론 기법 | |
CN115729648A (zh) | 基于有向无环图的算子调度方法、装置和系统 | |
CN116933067A (zh) | 模式识别方法及装置、电子设备、计算机可读介质 | |
KR20180057321A (ko) | 효율적인 혼합 시뮬레이티드 어닐링 기반의 데이터 클러스터링 방법 및 시스템 | |
CN117576125B (zh) | 一种神经网络计算图的分割方法、装置、设备及存储介质 | |
JP2009301453A (ja) | 分散メモリ型マルチプロセッサシステム、マスク付き逆シフト通信方法及びプログラム |
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 |