CN115859016B - 基于处理器的运算方法、装置、计算机设备及存储介质 - Google Patents

基于处理器的运算方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN115859016B
CN115859016B CN202310189869.4A CN202310189869A CN115859016B CN 115859016 B CN115859016 B CN 115859016B CN 202310189869 A CN202310189869 A CN 202310189869A CN 115859016 B CN115859016 B CN 115859016B
Authority
CN
China
Prior art keywords
computing
calculation
target
graph
computing node
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
CN202310189869.4A
Other languages
English (en)
Other versions
CN115859016A (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.)
Shenzhen Smartmore Technology Co Ltd
Original Assignee
Shenzhen Smartmore 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 Shenzhen Smartmore Technology Co Ltd filed Critical Shenzhen Smartmore Technology Co Ltd
Priority to CN202310189869.4A priority Critical patent/CN115859016B/zh
Publication of CN115859016A publication Critical patent/CN115859016A/zh
Application granted granted Critical
Publication of CN115859016B publication Critical patent/CN115859016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Abstract

本申请涉及一种基于处理器的运算方法、装置、计算机设备及存储介质。方法包括:获取目标神经网络模型对应的计算图;计算图包含多个计算节点;基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流;确定每个计算节点对应的目标计算精度,基于目标计算精度确定每个计算节点对应的位于处理器中的计算核心;基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。采用本方法,能够提高处理器的运算效率。

Description

基于处理器的运算方法、装置、计算机设备及存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于处理器的运算方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,神经网络模型被广泛的应用在各行各业,神经网络模型中的计算过程可以使用由节点和边组成的计算图进行表示,计算图是指用图论语言表示数学函数的一种方式。
传统技术中,处理器中的GPU(Graphics Processing Unit,图形处理器)和CPU(central processing unit,中央处理器)按照计算节点的连接顺序依次进行运算,GPU对当前计算节点进行运算之前,需要等待CPU将当前计算节点所需要的输入数据发送给GPU,GPU获取当前计算节点所需要的输入数据之后对当前计算节点进行运算,然后将运算结果发送给CPU,处理器中的GPU对计算图进行运算的过程中,需要耗费大量的等待时间,导致处理器的运算效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高处理器运算效率的基于处理器的运算方法、装置、计算机设备、计算机可读存储介质及计算机程序产品。
第一方面,本申请提供了一种基于处理器的运算方法,包括:
获取目标神经网络模型对应的计算图;计算图包含多个计算节点;
基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流;
确定每个计算节点对应的目标计算精度,基于目标计算精度确定每个计算节点对应的位于处理器中的计算核心;
基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。
第二方面,本申请还提供了一种基于处理器的运算装置,包括:
获取模块,用于获取目标神经网络模型对应的计算图;计算图包含多个计算节点;
确定模块,用于基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流;
对应模块,用于确定每个计算节点对应的目标计算精度,基于目标计算精度确定每个计算节点对应的位于处理器中的计算核心;
运算模块,用于基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。
第三方面,本申请还提供了一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于处理器的运算方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述基于处理器的运算方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述基于处理器的运算方法的步骤。
上述基于处理器的运算方法、装置、计算机设备及存储介质,基于目标神经网络模型对应的计算图中的各个计算节点之间的连接关系,确定每个计算节点对应的目标流和计算核心,基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。通过将计算图包含的计算节点组成多个计算节点序列,为每一个计算节点序列分配一个目标流,目标流用于对所对应的计算节点序列进行封装,不同目标流中的计算节点可以进行并行运算,为计算节点的并行运算提供了实现基础,基于每个计算节点对应的目标计算精度,确定每个计算节点对应的计算核心,多个计算核心实现了计算节点的并行运算,通过对计算图中的计算节点进行并行运算,减少了处理器中计算核心的等待时间,缩短了处理器对计算图的运算时长,提高了处理器的运算效率。
附图说明
图1为本申请实施例提供的一种基于处理器的运算方法的应用环境图;
图2为本申请实施例提供的一种基于处理器的运算方法的流程示意图;
图3为本申请实施例提供的一种最大匹配二分图获取步骤的流程示意图;
图4为本申请实施例提供的一种目标计算精度确定步骤的流程示意图;
图5为本申请实施例提供的一种目标计算方法确定步骤的流程示意图;
图6为本申请实施例提供的一种初始预测模型训练步骤的流程示意图;
图7为本申请实施例提供的一种计算图运算步骤的流程示意图;
图8为本申请实施例提供的一种基于处理器的运算框架示意图;
图9A为本申请实施例提供的一种计算图、最小等价图和最大匹配二分图示意图;
图9B为本申请实施例提供的一种目标流封装计算节点序列示意图;
图10为本申请实施例提供的一种基于处理器的运算装置的结构框图;
图11为本申请实施例提供的一种计算机设备的内部结构图;
图12为本申请实施例提供的一种计算机可读存储介质的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于处理器的运算方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端和服务器均可单独用于执行本申请实施例中提供的基于处理器的运算方法。终端和服务器也可协同用于执行本申请实施例中提供的基于处理器的运算方法。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备及便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一些实施例中,如图2所示,提供了一种基于处理器的运算方法,该方法可应用于计算机设备,计算机设备可以是终端或服务器。该方法包括步骤202到步骤208。
步骤202,获取目标神经网络模型对应的计算图;计算图包含多个计算节点。
其中,神经网络模型是指由大量的、简单的处理单元,广泛地互相连接而形成的复杂网络系统。计算图是指用图论语言表示数学函数的一种方式。可以理解为,一个机器学习任务的核心是神经网络模型的定义和神经网络模型参数的求解,对上述两个步骤进行抽象之后,可以确定一个唯一的计算逻辑,将这个计算逻辑用图进行表示,用于表示计算逻辑的图称之为计算图,计算图中定义了数据的流转方式,数据的计算方式,以及各种计算之间的相互依赖关系等。计算图中包括输入节点、输出节点和计算节点,是一个有向无环图。计算节点是指计算图中用于表达运算逻辑的节点。可以理解为,一个计算节点表示一个运算逻辑。例如,排序或者求和。一个计算图包含多个计算节点,每个计算节点分别与神经网络模型的每一层神经网络相对应。
步骤204,基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流。
其中,连接关系是指计算图中计算节点与计算节点之间依赖关系。计算图中的边可以表示计算节点与计算节点之间的连接关系。例如,V1->V2->V3,表示计算节点V1连接计算节点V2,计算节点V2连接计算节点V3。计算节点序列是指一个或者多个计算节点按照排列顺序组成的序列。流是指对计算节点序列中的计算节点按照排列顺序进行封装的队列。不同流中封装的计算节点可以进行并行运算。例如,CUDA(Compute Unified DeviceArchitecture,统一计算设备架构)流,CUDA流能够保持计算节点序列中计算节点的顺序,允许计算节点在流中排队,并使计算节点在先前的所有计算节点执行之后进行执行。
步骤206,确定每个计算节点对应的目标计算精度,基于目标计算精度确定每个计算节点对应的位于处理器中的计算核心。
其中,计算精度是指运算过程中数据的类型。例如,float32(单精度浮点类型)和float16(半精度浮点类型)。计算核心是指对计算节点进行运算的核心。例如,GPU(Graphics Processing Unit,图形处理器)中的CUDA核心和Tensor(张量计算)核心,若计算节点对应的目标计算精度为单精度浮点类型,则该计算节点对应的位于处理器中的计算核心为CUDA核心;若计算节点对应的目标计算精度为半精度浮点类型,则该计算节点对应的位于处理器中的计算核心为Tensor核心。
示例性地,计算机设备基于计算精度与计算核心之间的对应关系,确定每个计算节点对应的位于处理器中的计算核心。
在一些实施例中,计算机设备基于计算精度和核心类别之间的对应关系,确定计算节点对应的目标核心类别,基于位于处理器中的上述目标核心类别的各个核心的状态,确定该计算节点对应的位于处理器中的计算核心。
步骤208,基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。
上述基于处理器的运算方法中,通过将计算图包含的计算节点组成多个计算节点序列,为每一个计算节点序列分配一个目标流,目标流用于对所对应的计算节点序列进行封装,不同目标流中的计算节点可以进行并行运算,为计算节点的并行运算提供了实现基础,基于每个计算节点对应的目标计算精度,确定每个计算节点对应的计算核心,多个计算核心实现了计算节点的并行运算,通过对计算图中的计算节点进行并行运算,减少了处理器中计算核心的等待时间,缩短了处理器对计算图的运算时长,提高了处理器的运算效率。
在一些实施例中,基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流,包括:
基于计算图中的各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图;
将最大匹配二分图中具有连接关系的计算节点组成计算节点序列,得到多个计算节点序列;
为每个计算节点序列分配一个目标流;目标流用于对所对应的计算节点序列进行封装,不同的目标流封装的计算节点序列中的计算节点能够进行并行运算。
其中,最大匹配二分图是指边数最多的二分图。假设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的顶点集A和B,并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i属于子集A,j属于子集B),则称图G为一个二分图。例如,一个二分图中的顶点有3种连接方式,3种连接方式对应的边数分别为3条边、4条边和5条边,则第三种连接方式对应的二分图为该二分图的最大匹配二分图。
示例性地,计算机设备获取计算图中的多个计算节点,将多个计算节点组成计算图对应的二分图,二分图包括两个顶点集,每一个顶点集包括上述多个计算节点,基于计算图中各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图,将最大匹配二分图中具有连接关系的计算节点组成计算节点序列,得到多个计算节点序列。
本实施例中,根据计算图中计算节点之间的连接关系,得到计算图对应的最大匹配二分图,最大匹配二分图的边数最多,无连接的独立计算节点最少;可以理解为,最大匹配二分图最大程度的保留了计算图中计算节点之间的连接关系,将最大匹配二分图中具有连接关系的计算节点组成计算节点序列,同一个目标流中封装的计算节点之间具有较强的依赖性,不同目标流中封装的计算节点之间的依赖较弱或者没有直接的依赖性;不同目标流中封装的计算节点之间的依赖性越弱,计算核心在处理完一个目标流中的一个计算节点,在处理另外一个目标流中计算节点之前需要的等待时间越短,减少了计算核心的等待时间,提高了处理器的运算效率。
在一些实施例中,如图3所示,基于计算图中的各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图,包括:
步骤302,对计算图中的各个计算节点进行遍历,得到各个计算节点对应的最长遍历路径。
其中,最长遍历路径是指从根节点到叶子节点的路径中包含节点最多的遍历路径。例如,V0为根节点,V8为叶子节点,计算节点V5对应的遍历路径包括V0-V1-V2-V5-V6-V8、V0-V2-V5-V6-V8、V0-V3-V5-V6-V8,则计算节点V5对应的最长遍历路径为V0-V1-V2-V5-V6-V8
在一些实施例中,计算机设备对计算图中的各个计算节点进行遍历,得到多条遍历路径,从上述遍历路径中确定包含目标计算节点的候选遍历路径,统计每一个候选遍历路径包含的节点数量,对候选遍历路径对应的节点数量进行比较,确定节点数量最大的候选遍历路径为目标计算节点的最长遍历路径,直至得到每个计算节点对应的最长遍历路径。
步骤304,基于最长遍历路径中的若干个计算节点之间的连接关系,得到邻接矩阵;邻接矩阵中的每一行和每一列分别对应一个计算节点。
其中,邻接矩阵是指表征计算节点之间连接关系的矩阵。邻接矩阵为二维矩阵,邻接矩阵中的每一行和每一列分别对应一个计算节点。例如,邻接矩阵包含零元素值和非零元素值,零元素值表征对应的两个计算节点之间没有连接关系,非零元素值表征对应的两个计算节点之间有连接关系。
步骤306,基于邻接矩阵对多个计算节点进行连接,得到最小等价图。
其中,最小等价图是指根据邻接矩阵中计算节点与计算节点直接的连接关系,对计算图包含的多个计算节点进行连接得到的图。
步骤308,基于最小等价图中的各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图。
示例性地,计算机设备基于最小等价图中各个计算节点之间的连接关系,使用匈牙利算法得到计算图对应的最大匹配二分图。
本实施例中,对计算图中的各个计算节点进行遍历,得到各个计算节点对应的最长遍历路径,根据各个计算节点对应的最长遍历路径得到邻接矩阵,根据邻接矩阵得到对应的最小等价图,根据最小等价图中计算节点之间的连接关系,得到最大匹配二分图,最大匹配二分图最大程度的保留了计算图中计算节点之间的连接关系,为获取计算节点序列提供了准确的基础数据。
在一些实施例中,如图4所示,确定每个计算节点对应的目标计算精度,包括:
步骤402,获取目标函数、时间约束条件、运算次数约束条件以及延迟约束条件。
其中,目标函数是指用于计算计算图中多个计算节点对应的总误差的函数。时间约束条件是指计算图中多个计算节点对应的总分配时间与分配时间阈值之间的对应关系。可以理解为,对计算图中多个计算节点对应的总分配时间进行约束的函数。运算次数约束条件是指计算图中多个计算节点对应的总运算次数与运算次数阈值之间的对应关系。可以理解为,对计算图中多个计算节点对应的总运算次数进行约束的函数。延迟约束条件是指计算图中多个计算节点对应的总延迟时长与延迟时长阈值之间的对应关系。可以理解为,对计算图中多个计算节点对应的总延迟时长进行约束的函数。
步骤404,根据时间约束条件、运算次数约束条件和延迟约束条件确定多个候选精度组合;候选精度组合包括每个计算节点对应的候选精度。
可以理解为,计算图包含了n个计算节点,精度组合包含n个候选精度,候选精度与计算节点一一对应。例如,计算图包含3个计算节点V0、V1和V2,精度组合为(float32,float32,float16),则V0对应的候选精度为float32,V1对应的候选精度为float32,V2对应的候选精度为float16。
示例性地,计算机设备获取多个初始精度组合,针对每个初始精度组合,将初始精度组合中的候选精度带入时间约束条件、运算次数约束条件和延迟约束条件,若初始精度组合同时满足时间约束条件、运算次数约束条件和延迟约束条件,则确定上述初始精度组合为候选精度组合,得到多个候选精度组合。
在一些实施例中,计算机设备获取可选的候选精度和计算节点数量,基于候选精度和计算节点数量,生成多个初始精度组合,初始精度组合包含的候选精度的个数与计算节点的数量相同,每个候选精度与一个计算节点相对应。
在一些实施例中,时间约束条件是指计算图中多个计算节点对应的总分配时间小于或者等于分配时间阈值。运算次数约束条件是指计算图中多个计算节点对应的总运算次数小于或者等于运算次数阈值。延迟约束条件是指计算图中多个计算节点对应的总延迟时长小于或者等于延迟时长阈值。
在一些实施例中,目标函数为公式(1)、时间约束条件为公式(2)、运算次数约束条件为公式(3)、延迟约束条件为公式(4),如下所示:
Figure SMS_1
Figure SMS_2
Figure SMS_3
Figure SMS_4
Figure SMS_5
Figure SMS_6
Figure SMS_7
Figure SMS_8
其中,E为计算图对应的总误差,
Figure SMS_9
为第n个计算节点对应的计算误差,计算误差是由计算节点对应的计算类型和计算精度确定的,N-1为计算节点的总数量或者目标神经网络模型的总层数;n为计算节点的编号或者目标神经网络模型中神经网络的层数;bn为第n个计算节点对应的候选精度,/>
Figure SMS_10
为第n个计算节点对应的分配时间,T为分配时间阈值,可以根据实际需求进行设定,Fn为第n个计算节点对应的运算次数,可以理解为,第n个计算节点对应的第n层神经网络每秒所执行的浮点运算次数,F为运算次数阈值,可以根据实际需求进行设定,/>
Figure SMS_11
为第n个计算节点对应的延迟时长,L为延迟时长阈值。
步骤406,针对每个候选精度组合,基于每个计算节点对应的候选精度和计算类型,确定每个计算节点对应的误差;将每个计算节点对应的误差代入到目标函数,得到每个候选精度组合对应的总误差。
其中,计算类型是指计算节点对应运算的类型。例如,卷积运算、排序运算、全连接运算以及批量归一化运算。误差是指由于计算类型和候选精度对应的偏差。可以理解为,一种计算类型对应多个误差,每个误差与一种候选精度相对应,如果知道计算节点对应的计算类型和候选精度,就可以得到计算节点对应的误差。
步骤408,将多个总误差中的最小总误差对应的候选精度组合包括的每个计算节点的候选精度,确定为每个计算节点的目标计算精度。
本实施例中,根据时间约束条件、运算次数约束条件和延迟约束条件,确定多个候选精度组合,多个候选精度组合均符合设定的时间约束条件、运算次数约束条件和延迟约束条件,满足实际的性能需求,然后从多个候选精度组合中选择最小总误差对应的候选精度组合作为目标精度组合,目标精度组合使得计算图的总误差最小,提高了计算图计算的准确性,不仅如此,根据计算节点对应的目标计算精确,确定对计算节点进行计算的计算核心,不同的计算核心可以对多个计算节点进行并行运算,提高了处理器的运算效率。
在一些实施例中,如图5所示,基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果之前,方法还包括:
步骤502,获取计算节点对应的计算类型和计算类型对应的多个候选计算方法,以及计算节点对应的目标预测模型。
其中,候选计算方法是指实现一个计算过程的可选实现方法。例如,排序运算,可以使用冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序、堆排序、计数排序、桶排序等方法。目标预测模型是指对候选计算方法的计算时长进行预测的模型。目标预测模型是已经经过训练的模型。目标预测模型可以与计算节点相对应,也可以与计算类型相对应。可以理解为,每个计算节点对应一个目标预测模型,或者一种计算类型对应一个目标预测模型。
步骤504,基于目标预测模型,分别对每个候选计算方法的计算时长进行预测,得到每个候选计算方法的预测计算时长。
示例性地,计算机设备分别将每个候选计算方法输入到目标预测模型,得到每个候选计算方法的预测计算时长。
步骤506,将多个预测计算时长中的最短预测计算时长对应的候选计算方法,确定为计算节点对应的目标计算方法。
步骤508,基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果,包括:基于多个目标流、每个计算节点对应的计算核心和目标计算方法,对计算图进行运算,得到计算结果。
本实施例中,将最短预测计算时长对应的候选计算方法,确定为计算节点对应的目标计算方法,计算核心采用目标计算方法对所对应的计算节点进行运算,花费的时间最短,提高了处理器中计算核心的运算效率。
在一些实施例中,如图6所示,获取计算节点对应的计算类型和计算类型对应的多个候选计算方法,以及计算节点对应的目标预测模型,包括:
步骤602,获取初始预测模型,以及计算节点对应的计算类型和计算类型对应的多个候选计算方法;从多个候选计算方法中选取多个训练计算方法。
其中,初始预测模型是指对候选计算方法的计算时长进行预测的模型。初始预测模型是未经过训练的模型。训练计算方法是指从多个候选计算方法中选择出来,用于对初始预测模型进行训练的候选计算方法。
步骤604,对训练计算方法进行运行,得到训练计算方法的实际计算时长。
其中,实际计算时长是指运行训练计算方法所需要花费的时长。
步骤606,将训练计算方法输入到初始预测模型进行处理,输出训练计算方法的预测计算时长。
步骤608,根据训练计算方法对应的实际计算时长和预测计算时长,确定预测误差。
其中,预测误差是指训练计算方法通过初始预测模型得到的预测计算时长,与对训练计算方法进行运行得到的实际计算时长之间的差异。
示例性地,计算机设备将训练计算方法对应的实际计算时长减去预测计算时长,得到时长差值,将时长差值乘以时长差值,得到预测误差。
步骤610,基于预测误差对初始预测模型进行更新,得到更新后的初始预测模型,直至满足训练结束条件,得到计算节点对应的目标预测模型。
其中,训练结束条件是指停止对初始预测模型进行训练的条件。训练结束条件可以为进行预设次数的训练、使用选取的多个训练计算方法中的每个训练计算方法对初始预测模型进行训练等。
示例性地,计算机设备基于预测误差对初始预测模型进行更新,得到更新后的初始预测模型,然后获取下一个训练计算方法,重复执行步骤604-610,直至多个训练计算方法中的最后一个训练计算方法,得到计算节点对应的目标预测模型。
本实施例中,使用训练计算方法对初始预测模型进行训练,提高了目标预测模型的准确性,通过目标预测模型对候选计算方法的计算时长进行预测,提高了预测计算时长的计算效率。
在一些实施例中,如图7所示,处理器包括第一核心和第二核心;基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果,包括:
步骤702,获取空闲核心标识;空闲核心标识对应的空闲核心为第一核心和第二核心中的至少一个。
其中,空闲核心标识是指处理空闲状态的核心所对应的标识。空闲核心标识可以为一个或者多个。第一核心和第二核心是指对不同计算精度的计算节点进行运算的两个核心,或者是指对不同计算精度的计算节点进行运算的两类核心。例如,处理器中具有两个核心,分别为第一核心和第二核心,第一核心对计算精度为float32的计算节点进行运算,第二核心对计算精度为float16的计算节点进行运算;或者,处理器中具有多个核心,将多个核心分为两组,第一组为第一核心,第二组为第二核心,第一核心中的多个核心对计算精度为float32的计算节点进行运算,第二核心中的多个核心对计算精度为float16的计算节点进行运算。
步骤704,获取每个目标流中的当前待处理计算节点,以及每个当前待处理计算节点对应的计算核心的计算核心标识。
其中,当前待处理计算节点是指目标流中排序最靠前,未经过运算的计算节点。每个目标流中有一个当前待处理计算节点。例如,目标流中封装的计算节点序列为V0,V3,V6,V8,其中,V0已经运算完成,则V3为目标流中的当前待处理计算节点。
步骤706,将与空闲核心标识相同的计算核心标识对应的当前待处理计算节点,确定为空闲核心标识对应的候选待处理计算节点。
示例性地,计算机设备将每个当前待处理计算节点对应的计算核心标识,与空闲核心标识进行比较,如果当前待处理计算节点对应的计算核心标识与空闲核心标识相同,则将该当前待处理计算节点确定为空闲核心标识对应的候选待处理计算节点。
在一些实施例中,计算机设备获取当前待处理计算节点对应的计算精度,以及空闲核心对应的计算精度,将当前待处理计算节点对应的计算精度与空闲核心对应的计算精度进行比较,若当前待处理计算节点对应的计算精度与空闲核心对应的计算精度相同,则将当前待处理计算节点确定为空闲核心标识对应的候选待处理计算节点。
步骤708,当候选待处理计算节点对应的输入数据已存在时,将候选待处理计算节点确定为空闲核心标识对应的目标待处理计算节点;利用空闲核心对目标待处理计算节点进行运算,得到目标待处理计算节点对应的输出结果,输入数据为计算图中连接目标待处理计算节点的计算节点对应的输出结果。
其中,输入数据是指对计算节点进行运算所需要的数据。一个计算节点的输入数据是指计算图中连接该计算节点的计算节点的输出数据。例如,V0和V3连接V5,则V5的输入数据为V0的输出结果和V3的输出结果。输出结果是指对计算节点进行运算得到的数据。
示例性地,计算机设备获取计算图中连接候选待处理计算节点的计算节点对应的输出结果,将连接候选待处理计算节点的计算节点对应的输出结果,作为候选待处理计算节点对应的输入数据,如果候选待处理计算节点对应的输入数据已存在时,则将候选待处理计算节点确定为空闲核心标识对应的目标待处计算理节点,如果候选待处理计算节点对应的输入数据不存在,则将候选待处理计算节点确定非目标待处理计算节点,然后空闲核心对目标待处理计算节点进行运算,得到目标待处理计算节点对应的输出结果。
步骤710,直至满足计算结束条件,得到计算图的计算结果。
其中,计算结束条件是指停止对目标待处理计算节点进行计算的条件。计算结束条件为对所有的目标待处理计算节点计算完成。
示例性地,重复步骤702-708,直至得到计算图的计算结果。
本实施例中,通过多个核心对不同计算精度的计算节点进行并行运算,通过并行运算提高了处理器的运算效率,当计算核心完成对前一个计算节点的运算,处于空闲状态时,处理器对多个目标流中的当前待处理计算节点的计算精度、计算核心和输入数据进行检查,将符合要求的目标待处理计算节点分配给空闲状态的计算核心进行运算,避免了计算核心对一个目标流中的多个计算节点依次进行运算,需要花费大量的等待时间,实现了目标流与目标流之间的并行运算,减少了计算核心的等待时间,从而进一步提高了处理器的运算效率。
在一个示例性地实施例中,基于处理器的运算框架如图8所示,包括算子匹配模块,精度适配模块和性能调优模块;其中,算子匹配模块的输入是计算图,输出是每个计算节点对应的目标流;精度适配模块用于确定计算图中每个计算节点对应的目标计算精度,根据每个计算节点对应的目标计算精度确定对应的计算核心;性能调优模块用于确定每个计算节点对应的目标计算方法,处理器基于基于目标流,以及每个计算节点对应的计算核心和目标计算方法,对计算图进行运算。
算子匹配模块获取目标神经网络模型对应的如图9A中所示的计算图,对计算图中的各个计算节点进行深度优先遍历,得到各个计算节点对应的最长遍历路径,基于最长遍历路径中各个计算节点之间的连接关系,得到邻接矩阵,邻接矩阵中的每一行和每一列分别对应一个计算节点,基于邻接矩阵对多个计算节点进行连接,得到如图9A中所示最小等价图,基于最小等价图中各个计算节点之间的连接关系,使用匈牙利算法得到如图9A中的最大匹配二分图。将最大匹配二分图中具有连接关系的计算节点组成计算节点序列,得到3个计算节点序列,然后为每一个计算节点序列分配一个目标流,目标流对所对应的计算节点序列进行封装,如图9B所示。
精度适配模块获取公式(1)所示的目标函数、公式(2)所示的时间约束条件、公式(3)所示的运算次数约束条件和公式(4)所示的延迟约束条件,获取可选的候选精度和计算节点数量,基于候选精度和计算节点数量,生成多个初始精度组合,初始精度组合中包含的候选精度的个数与计算节点的数量相同,每个候选精度与一个计算节点相对应;针对每个初始精度组合,将初始精度组合中的候选精度带入时间约束条件、运算次数约束条件和延迟约束条件,若初始精度组合同时满足时间约束条件、运算次数约束条件和延迟约束条件,则确定上述初始精度组合为候选精度组合,得到多个候选精度组合。针对每个候选精度组合,基于每个计算节点对应的候选精度和计算类型,确定每个计算节点对应的误差,然后将每个计算节点对应的误差代入到目标函数,得到每个候选精度组合对应的总误差,比较每个候选精度组合对应的总误差,得到最小总误差,将最小总误差对应的候选精度组合中每个计算节点的候选精度,确定为每个计算节点的目标计算精度。获取计算精度与核心之间的对应关系,基于目标计算精度和对应关系,确定每个计算节点对应的位于处理器中的计算核心。
性能调优模块获取计算节点对应的初始预测模型,以及计算节点对应的计算类型和计算类型对应的多个候选计算方法,然后从多个候选计算方法中获取多个训练计算方法,对训练计算方法进行运行,得到训练计算方法对应的实际计算时长,将训练计算方法输入到初始预测模型,得到训练计算方法对应的预测计算时长,将训练计算方法对应的实际计算时长减去预测计算时长,得到时长差值,将时长差值乘以时长差值,得到预测误差,基于预测误差对初始预测模型进行更新,得到更新后的初始预测模型,直至多个训练计算方法中的最后一个训练计算方法,得到计算节点对应的目标预测模型。分别将每个候选计算方法输入到目标预测模型,得到每个候选计算方法的预测计算时长,比较每个候选计算方法的预测计算时长,得到最短预测计算时长,将最短预测计算时长对应的候选计算方法,确定为计算节点对应的目标计算方法。
处理器获取空闲核心标识,空闲核心标识对应的空闲核心为CUDA核心和Tensor中的至少一个,获取每个目标流中的当前待处理计算节点,以及每个当前待处理计算节点对应的计算核心的计算核心标识,将每个当前待处理计算节点对应的计算核心标识与空闲核心标识进行比较,如果当前待处理计算节点对应的计算核心标识与空闲核心标识相同,则将该当前待处理计算节点确定为空闲核心标识对应的候选待处理计算节点。获取计算图中连接候选待处理计算节点的计算节点对应的输出结果,将连接候选待处理计算节点的计算节点对应的输出结果,作为候选待处理计算节点对应的输入数据,如果候选待处理计算节点对应的输入数据已存在,则将候选待处理计算节点确定为空闲核心标识对应的目标待处理计算节点,如果候选待处理计算节点对应的输入数据不存在,则将候选待处理计算节点确定非目标待处理计算节点,然后空闲核心对目标待处理计算节点进行运算,得到目标待处计算理节点对应的输出结果。
上述基于处理器的运算方法,基于目标神经网络模型对应的计算图中的各个计算节点之间的连接关系,确定每个计算节点对应的目标流和计算核心,基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。通过将计算图包含的计算节点组成多个计算节点序列,为每一个计算节点序列分配一个目标流,目标流用于对所对应的计算节点序列进行封装,不同目标流中的计算节点可以进行并行运算,为计算节点的并行运算提供了实现基础,基于每个计算节点对应的目标计算精度,确定每个计算节点对应的计算核心,多个计算核心实现了计算节点的并行运算,通过对计算图中的计算节点进行并行运算,减少了处理器中计算核心的等待时间,缩短了处理器对计算图的运算时长,提高了处理器的运算效率。
应该理解的是,虽然如上述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种基于处理器的运算装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于处理器的运算装置实施例中的具体限定可以参见上文中对于基于处理器的运算方法的限定,在此不再赘述。
在一些实施例中,如图10所示,提供了一种基于处理器的运算装置,包括:
获取模块1002,用于获取目标神经网络模型对应的计算图;计算图包含多个计算节点;
确定模块1004,用于基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流;
对应模块1006,用于确定每个计算节点对应的目标计算精度,基于目标计算精度确定每个计算节点对应的位于处理器中的计算核心;
运算模块1008,用于基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果。
在一些实施例中,在基于计算图中的各个计算节点之间的连接关系,得到多个计算节点序列,并确定每个计算节点序列对应的目标流方面,确定模块1004具体用于:
基于计算图中的各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图;将最大匹配二分图中具有连接关系的计算节点组成计算节点序列,得到多个计算节点序列;为每个计算节点序列分配一个目标流;目标流用于对所对应的计算节点序列进行封装,不同的目标流封装的计算节点序列中的计算节点能够进行并行运算。
在一些实施例中,在基于计算图中的各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图方面,确定模块1004具体用于:
对计算图中的各个计算节点进行遍历,得到各个计算节点对应的最长遍历路径;基于最长遍历路径中的若干个计算节点之间的连接关系,得到邻接矩阵;邻接矩阵中的每一行和每一列分别对应一个计算节点;基于邻接矩阵对多个计算节点进行连接,得到最小等价图;基于最小等价图中的各个计算节点之间的连接关系,得到计算图对应的最大匹配二分图。
在一些实施例中,在确定每个计算节点对应的目标计算精度方面,对应模块1006具体用于:
获取目标函数、时间约束条件、运算次数约束条件以及延迟约束条件;根据时间约束条件、运算次数约束条件和延迟约束条件确定多个候选精度组合;候选精度组合包括每个计算节点对应的候选精度;针对每个候选精度组合,基于每个计算节点对应的候选精度和计算类型,确定每个计算节点对应的误差;将每个计算节点对应的误差代入到目标函数,得到每个候选精度组合对应的总误差;将多个总误差中的最小总误差对应的候选精度组合包括的每个计算节点的候选精度,确定为每个计算节点的目标计算精度。
在一些实施例中,运算模块1008还用于:
获取计算节点对应的计算类型和计算类型对应的多个候选计算方法,以及计算节点对应的目标预测模型;基于目标预测模型,分别对每个候选计算方法的计算时长进行预测,得到每个候选计算方法的预测计算时长;将多个预测计算时长中的最短预测计算时长对应的候选计算方法,确定为计算节点对应的目标计算方法;基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果,包括:基于多个目标流、每个计算节点对应的计算核心和目标计算方法,对计算图进行运算,得到计算结果。
在一些实施例中,在获取计算节点对应的计算类型和计算类型对应的多个候选计算方法,以及计算节点对应的目标预测模型方面,运算模块1008具体用于:
获取初始预测模型,以及计算节点对应的计算类型和计算类型对应的多个候选计算方法;从多个候选计算方法中选取多个训练计算方法;对训练计算方法进行运行,得到训练计算方法的实际计算时长;将训练计算方法输入到初始预测模型进行处理,输出训练计算方法的预测计算时长;根据训练计算方法对应的实际计算时长和预测计算时长,确定预测误差;基于预测误差对初始预测模型进行更新,得到更新后的初始预测模型,直至满足训练结束条件,得到计算节点对应的目标预测模型。
在一些实施例中,处理器包括第一核心和第二核心;在基于多个目标流和每个计算节点对应的计算核心,对计算图进行运算,得到计算结果方面,运算模块1008具体用于:
获取空闲核心标识;空闲核心标识对应的空闲核心为第一核心和第二核心中的至少一个;获取每个目标流中的当前待处理计算节点,以及每个当前待处理计算节点对应的计算核心的计算核心标识;将与空闲核心标识相同的计算核心标识对应的当前待处理计算节点,确定为空闲核心标识对应的候选待处理计算节点;当候选待处理计算节点对应的输入数据已存在时,将候选待处理计算节点确定为空闲核心标识对应的目标待处理计算节点;利用空闲核心对目标待处理计算节点进行运算,得到目标待处理计算节点对应的输出结果,输入数据为计算图中连接目标待处理计算节点的计算节点对应的输出结果;直至满足计算结束条件,得到计算图的计算结果。
上述基于处理器的运算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器,也可以以软件形式存储于计算机设备中的存储器,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元以及输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现上述的基于处理器的运算方法的步骤。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,还提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一些实施例中,提供了一种计算机可读存储介质1200,其上存储有计算机程序1202,该计算机程序1202被处理器执行时实现上述各方法实施例中的步骤,其内部结构图可以如图12所示。
在一些实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(FerroelectricRandom Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom AccessMemory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于处理器的运算方法,其特征在于,包括:
获取目标神经网络模型对应的计算图;所述计算图包含多个计算节点;
基于所述计算图中的各个计算节点之间的连接关系,得到所述计算图对应的最大匹配二分图,将所述最大匹配二分图中具有连接关系的计算节点组成计算节点序列,得到多个所述计算节点序列,并确定每个所述计算节点序列对应的目标流;所述目标流用于对所对应的计算节点序列进行封装,不同的所述目标流封装的计算节点序列中的计算节点能够进行并行运算;
确定每个所述计算节点对应的目标计算精度,基于所述目标计算精度确定每个所述计算节点对应的位于处理器中的计算核心;
基于多个所述目标流和每个所述计算节点对应的计算核心,对所述计算图进行运算,得到计算结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标计算精度确定每个所述计算节点对应的位于处理器中的计算核心,包括:
基于计算精度和核心类别之间的对应关系,确定所述计算节点对应的目标核心类别;
基于位于所述处理器中的所述目标核心类别的各个核心的状态,确定所述计算节点对应的位于所述处理器中的计算核心。
3.根据权利要求1所述的方法,其特征在于,所述基于所述计算图中的各个计算节点之间的连接关系,得到所述计算图对应的最大匹配二分图,包括:
对所述计算图中的各个计算节点进行遍历,得到各个所述计算节点对应的最长遍历路径;
基于所述最长遍历路径中的若干个计算节点之间的连接关系,得到邻接矩阵;所述邻接矩阵中的每一行和每一列分别对应一个所述计算节点;
基于所述邻接矩阵对多个所述计算节点进行连接,得到最小等价图;
基于所述最小等价图中的各个所述计算节点之间的连接关系,得到所述计算图对应的最大匹配二分图。
4.根据权利要求1所述的方法,其特征在于,所述确定每个所述计算节点对应的目标计算精度,包括:
获取目标函数、时间约束条件、运算次数约束条件以及延迟约束条件;
根据所述时间约束条件、所述运算次数约束条件和所述延迟约束条件确定多个候选精度组合;所述候选精度组合包括每个所述计算节点对应的候选精度;
针对每个所述候选精度组合,基于每个所述计算节点对应的候选精度和计算类型,确定每个所述计算节点对应的误差;将每个所述计算节点对应的误差代入到所述目标函数,得到每个所述候选精度组合对应的总误差;
将多个总误差中的最小总误差对应的候选精度组合包括的每个所述计算节点的候选精度,确定为每个所述计算节点的目标计算精度。
5.根据权利要求1所述的方法,其特征在于,所述基于多个所述目标流和每个所述计算节点对应的计算核心,对所述计算图进行运算,得到计算结果之前,所述方法还包括:
获取所述计算节点对应的计算类型和所述计算类型对应的多个候选计算方法,以及所述计算节点对应的目标预测模型;
基于所述目标预测模型,分别对每个所述候选计算方法的计算时长进行预测,得到每个所述候选计算方法的预测计算时长;
将多个预测计算时长中的最短预测计算时长对应的候选计算方法,确定为所述计算节点对应的目标计算方法;
所述基于多个所述目标流和每个所述计算节点对应的计算核心,对所述计算图进行运算,得到计算结果,包括:
基于多个所述目标流、每个所述计算节点对应的计算核心和目标计算方法,对所述计算图进行运算,得到计算结果。
6.根据权利要求5所述的方法,其特征在于,所述获取所述计算节点对应的计算类型和所述计算类型对应的多个候选计算方法,以及所述计算节点对应的目标预测模型,包括:
获取初始预测模型,以及所述计算节点对应的计算类型和所述计算类型对应的多个候选计算方法;从所述多个候选计算方法中选取多个训练计算方法;
对所述训练计算方法进行运行,得到所述训练计算方法的实际计算时长;
将所述训练计算方法输入到所述初始预测模型进行处理,输出所述训练计算方法的预测计算时长;
根据所述训练计算方法对应的实际计算时长和预测计算时长,确定预测误差;
基于所述预测误差对所述初始预测模型进行更新,得到更新后的初始预测模型,直至满足训练结束条件,得到所述计算节点对应的目标预测模型。
7.根据权利要求1所述的方法,其特征在于,所述处理器包括第一核心和第二核心;所述基于多个所述目标流和每个所述计算节点对应的计算核心,对所述计算图进行运算,得到计算结果,包括:
获取空闲核心标识;所述空闲核心标识对应的空闲核心为所述第一核心和所述第二核心中的至少一个;
获取每个所述目标流中的当前待处理计算节点,以及每个所述当前待处理计算节点对应的计算核心的计算核心标识;
将与所述空闲核心标识相同的所述计算核心标识对应的当前待处理计算节点,确定为所述空闲核心标识对应的候选待处理计算节点;
当所述候选待处理计算节点对应的输入数据已存在时,将所述候选待处理计算节点确定为所述空闲核心标识对应的目标待处理计算节点;利用所述空闲核心对所述目标待处理计算节点进行运算,得到所述目标待处理计算节点对应的输出结果,所述输入数据为所述计算图中连接所述目标待处理计算节点的计算节点对应的输出结果;
直至满足计算结束条件,得到所述计算图的计算结果。
8.一种基于处理器的运算装置,其特征在于,包括:
获取模块,用于获取目标神经网络模型对应的计算图;所述计算图包含多个计算节点;
确定模块,用于基于所述计算图中的各个计算节点之间的连接关系,得到所述计算图对应的最大匹配二分图,将所述最大匹配二分图中具有连接关系的计算节点组成计算节点序列,得到多个所述计算节点序列,并确定每个所述计算节点序列对应的目标流;所述目标流用于对所对应的计算节点序列进行封装,不同的所述目标流封装的计算节点序列中的计算节点能够进行并行运算;
对应模块,用于确定每个所述计算节点对应的目标计算精度,基于所述目标计算精度确定每个所述计算节点对应的位于处理器中的计算核心;
运算模块,用于基于多个所述目标流和每个所述计算节点对应的计算核心,对所述计算图进行运算,得到计算结果。
9.一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202310189869.4A 2023-03-02 2023-03-02 基于处理器的运算方法、装置、计算机设备及存储介质 Active CN115859016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310189869.4A CN115859016B (zh) 2023-03-02 2023-03-02 基于处理器的运算方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310189869.4A CN115859016B (zh) 2023-03-02 2023-03-02 基于处理器的运算方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN115859016A CN115859016A (zh) 2023-03-28
CN115859016B true CN115859016B (zh) 2023-06-09

Family

ID=85659714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310189869.4A Active CN115859016B (zh) 2023-03-02 2023-03-02 基于处理器的运算方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN115859016B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116910386B (zh) * 2023-09-14 2024-02-02 深圳市智慧城市科技发展集团有限公司 地址补全方法、终端设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110490322A (zh) * 2019-08-14 2019-11-22 北京中科寒武纪科技有限公司 运算节点的拆分方法和装置、电子设备和存储介质
CN115392441A (zh) * 2022-04-28 2022-11-25 上海燧原科技有限公司 量化神经网络模型的片内适配方法、装置、设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988367A (zh) * 2019-12-12 2021-06-18 中科寒武纪科技股份有限公司 资源的分配方法、装置、计算机设备及可读存储介质
WO2021190761A1 (en) * 2020-03-27 2021-09-30 Huawei Technologies Co., Ltd. Parallel computing scheme generation for neural networks
CN114282661A (zh) * 2021-12-23 2022-04-05 安谋科技(中国)有限公司 神经网络模型的运行方法、可读介质和电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110490322A (zh) * 2019-08-14 2019-11-22 北京中科寒武纪科技有限公司 运算节点的拆分方法和装置、电子设备和存储介质
CN115392441A (zh) * 2022-04-28 2022-11-25 上海燧原科技有限公司 量化神经网络模型的片内适配方法、装置、设备及介质

Also Published As

Publication number Publication date
CN115859016A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
Scrucca GA: A package for genetic algorithms in R
CN115859016B (zh) 基于处理器的运算方法、装置、计算机设备及存储介质
CN114327844A (zh) 内存分配方法、相关设备及计算机可读存储介质
CN111339724B (zh) 用于生成数据处理模型和版图的方法、设备和存储介质
WO2022116689A1 (zh) 图数据处理方法、装置、计算机设备和存储介质
CN115357554B (zh) 一种图神经网络压缩方法、装置、电子设备及存储介质
CN116126341A (zh) 模型编译方法、装置、计算机设备及计算机可读存储介质
CN114816711A (zh) 批量任务处理方法、装置、计算机设备和存储介质
CN115689018A (zh) 物资需求预测方法、装置、设备、存储介质和程序产品
CN116626504A (zh) 动力电池性能确定方法、装置、计算机设备和存储介质
CN116010226A (zh) 软件系统可靠性仿真评估方法、装置和计算机设备
US20220343146A1 (en) Method and system for temporal graph neural network acceleration
CN112528500B (zh) 一种场景图构造模型的评估方法及评估设备
CN110210691B (zh) 资源推荐方法、装置、存储介质及设备
CN117112145B (zh) 训练模型分配方法、装置、计算机设备和存储介质
CN116227585B (zh) 集群任务的并行执行方法、装置、计算机设备和存储介质
CN112750074B (zh) 小样本图像特征增强方法及系统、图像分类方法及系统
US20230162010A1 (en) Synthesizing Zero-Loss Low-Power Approximate DNN Accelerators With Large-Scale Search
KR20240063137A (ko) 하드웨어 가속기 최적화형 그룹 컨볼루션 기반 신경망 모델
CN117369962A (zh) 工作流执行序列生成方法、装置、计算机设备和存储介质
CN113962156A (zh) 基于矩阵分解模型的剪枝方法、装置、设备、存储介质
CN117745446A (zh) 资源数据处理方法、装置、计算机设备、存储介质
CN116719994A (zh) 媒体对象推荐方法、装置、计算机设备及存储介质
CN117992061A (zh) 程序转换方法、装置、计算机设备及计算机可读存储介质
CN117376410A (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