CN113412493B - 基于推理引擎的计算资源分配方法、装置和计算机设备 - Google Patents

基于推理引擎的计算资源分配方法、装置和计算机设备 Download PDF

Info

Publication number
CN113412493B
CN113412493B CN201980037488.6A CN201980037488A CN113412493B CN 113412493 B CN113412493 B CN 113412493B CN 201980037488 A CN201980037488 A CN 201980037488A CN 113412493 B CN113412493 B CN 113412493B
Authority
CN
China
Prior art keywords
operation layer
layers
group
dependency relationship
layer
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
CN201980037488.6A
Other languages
English (en)
Other versions
CN113412493A (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.)
DeepRoute AI Ltd
Original Assignee
DeepRoute AI 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 DeepRoute AI Ltd filed Critical DeepRoute AI Ltd
Publication of CN113412493A publication Critical patent/CN113412493A/zh
Application granted granted Critical
Publication of CN113412493B publication Critical patent/CN113412493B/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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种基于推理引擎的计算资源分配方法,包括:获取计算平台的计算资源(202);调用神经网络模型,所述神经网络模型包括多个操作层(204);通过推理引擎识别所述多个操作层之间的依赖关系,将每个操作层映射至对应的计算资源(206);及根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程(208)。

Description

基于推理引擎的计算资源分配方法、装置和计算机设备
技术领域
本申请涉及一种基于推理引擎的计算资源分配方法、装置、计算机设备和存储介质。
背景技术
深度学习技术作为人工智能领域的研究方向,在语音识别、图像识别、自然语言处理等多个方面得以应用。随着深度学习技术的发展,深度学习技术的基础神经网络模型的规模也变得越大巨大。神经网络模型的操作层变得更多,操作层与操作层之间的链接也随之变得更加复杂。
推理引擎可以利用神经网络模型与计算平台的硬件计算资源(下文简称为计算资源)实现推理功能。如果计算资源的负载均衡做的不好,部分计算资源可能被过度使用,也可能被闲置,由此会导致推理过程的计算效率受到较大影响。因此,在面对大型的神经网络模型时,如何通过改善计算资源的负载均衡有效提高推理过程的计算效率成为目前需要解决的一个技术问题。
发明内容
根据本申请公开的各种实施例,提供一种基于推理引擎的计算资源分配方法、装置、计算机设备和存储介质。
一种基于推理引擎的计算资源分配方法,包括:
获取计算平台的计算资源;
调用神经网络模型,所述神经网络模型包括多个操作层;
通过推理引擎识别所述多个操作层之间的依赖关系,将每个操作层映射至对应的计算资源;及
根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
一种基于推理引擎的计算资源分配装置,包括:
资源获取模块,用于获取计算平台的计算资源;
模型调用模块,用于调用神经网络模型,所述神经网络模型包括多个操作层;
关系识别模块,用于通过推理引擎识别所述多个操作层之间的依赖关系;
资源映射模块,用于将每个操作层映射至对应的计算资源;及
推理执行模块,用于根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取计算平台的计算资源;
调用神经网络模型,所述神经网络模型包括多个操作层;
通过推理引擎识别所述多个操作层之间的依赖关系,将每个操作层映射至对应的计算资源;及
根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取计算平台的计算资源;
调用神经网络模型,所述神经网络模型包括多个操作层;
通过推理引擎识别所述多个操作层之间的依赖关系,将每个操作层映射至对应的计算资源;及
根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和优点将从说明书、附图以及权利要求书变得明显。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据一个或多个实施例中基于推理引擎的计算资源分配方法的应用场景图。
图2为根据一个或多个实施例中基于推理引擎的计算资源分配方法的流程示意图。
图3为根据一个或多个实施例中神经网络模型中各操作层之间的依赖关系与命名的示意图。
图4为一个实施例中将每个操作层映射至对应的计算资源的步骤的流程示意图。
图5为根据一个或多个实施例中神经网络模型的各个操作层映射至计算资源的示意图。
图6为根据一个或多个实施例中基于推理引擎的计算资源分配装置的框图。
图7为根据一个或多个实施例中计算机设备的框图。
具体实施方式
为了使本申请的技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在其中一个实施例中,本申请提供的基于推理引擎的计算资源分配方法具体可以应用于自动驾驶领域中,神经网络模型具体可以包括图像识别模型、行为预测模型或者风险评估模型等中的至少一种。例如,神经网络模型可以是图像识别模型,本申请提供的基于推理引擎的计算资源分配方法可以应用于如图1所示的应用环境中。自动驾驶车辆可以包括传感器102和计算机设备104,传感器102可以与计算机设备104进行通信。传感器102可以采集视觉范围内的环境图像。比如在自动驾驶车辆行驶至路口时,传感器102可以采集交通信号灯图像。计算机设备104根据传感器102采集的信号灯图像进行图像识别,判断图像中信号灯的颜色。具体的,计算机设备104可以获取多个计算资源,调用神经网络模型,神经网络模型包括多个操作层,通过推理引擎识别多个操作层之间的依赖关系,将每个操作层映射至对应的计算资源。计算机设备104根据依赖关系以及所映射的计算资源,通过推理引擎利用神经网络模型进行推理过程,得到信号灯图像中信号灯的颜色。
可以理解的,本申请提供的神经网络模型的推理方法实现对神经网络模型进行推理,可以应用于多种应用环境,神经网络模型可以包括多种类型。例如,神经网络模型可以包括卷积神经网络模型、循环神经网络模型以及递归神经网络模型等。神经网络模型可以用于处理多种不同的数据。例如,神经网络模型具体可以包括图像识别模型、特征提取模型、语音识别模型、文本识别模型以及场景分类模型等。
在一个实施例中,提供了一种基于推理引擎的计算资源分配方法,以该方法应用于图1中的计算机设备为例进行说明,具体包括以下步骤:
步骤202,获取计算平台的计算资源。
计算平台可以是计算机设备用于进行自动控制运算的平台。计算机设备可以是独立的设备,例如车载计算机设备等。计算机平台具有相应的计算资源。计算资源包括多个微处理器,每个微处理器包括多个计算流。计算机设备可以根据预先设置的条件,读取与该条件相对应的计算资源,读取到的计算资源可以是计算平台的部分计算资源。计算机设备也可以读取计算平台所有的计算资源。
步骤204,调用神经网络模型,神经网络模型包括多个操作层。
计算机设备中预设存储了神经网络模型,神经网络模型可以是预先训练好的。神经网络模型可以用于推理引擎在计算平台中实现推理过程。神经网络模型包括多个操作层。在面对不同的业务需求时,推理引擎可以采用不同的神经网络模型,实现相应的推理过程。例如,在进行图像识别时,可以采用与图像识别相关的神经网络模型进行推理过程运算。在进行自然语言处理时,可以采用与自然语言处理相关的神经网络模型进行推理过程运算。
步骤206,通过推理引擎识别多个操作层之间的依赖关系,将每个操作层映射至对应的计算资源。
神经网络模型的多个操作层之间具有依赖关系。依赖关系是指其中一个操作层的输入依赖于其他操作层的输出。其中,具有依赖关系的操作层可以分别被称为依赖层与被依赖层。被依赖层的输出可以形成依赖层的输入。当前的依赖层也可以是其他操作层对应的被依赖层。依赖层所对应的被依赖层可以是一层也可以是多层。
计算机设备中安装了推理引擎。通过推理引擎可以识别神经网络中每个操作层之间的依赖关系,将每个操作层分别映射至对应的计算资源。计算机设备还可以通过推理引擎在识别到每个操作层之间的依赖关系后,将存在依赖关系的操作层划分为相应的操作层组,将操作层组映射至对应的计算资源。操作层之间的依赖关系可以是预先配置的,也可以是通过对操作层进行搜索后分析得到的。
步骤208,根据依赖关系以及所映射的计算资源,通过推理引擎利用神经网络模型进行推理过程。
计算机设备将神经网络模型的操作层应设置对应的计算资源,可以使得每个操作层映射至对应的微处理器,或者映射至对应微处理器的数据流。其中,具有依赖关系的操作层可以映射至同一微处理器。不具有依赖关系的操作层可以映射至不同的微处理器。由此实现对神经网络模型的多个操作层的计算资源进行合理有效分配。推理引擎可以利用神经网络模型以及每一层操作层所分配得到的计算资源进行推理过程。
本实施例中,通过识别神经网络模型中多个操作层之间的依赖关系,将每个操作层映射至计算平台中对应的计算资源,由此对计算资源进行合理分配,有效改善了计算资源之间的负载均衡。从而使得推理引擎在利用神经网络模型以及每一层操作层所分配得到的计算资源进行推理过程时,能够有效提高推理过程的计算效率。
在一个实施例中,计算机设备可以获取与神经网络模型对应的配置文件;在配置文件中读取神经网络模型中多个操作层之间的依赖关系。
配置文件可以是用户预先根据神经网络模型的结构配置的。配置文件中可以记录每个操作层对应的下一个操作层,即记录了操作层之间的依赖关系。配置文件中还可以记录了每个操作操作层的命名。计算机设备根据操作层的命名可以将每个操作层映射至对应的计算资源。在其中一个实施例中,将每个操作层映射至对应的计算资源包括:获取每个操作层对应的命名;根据预设命名格式对命名进行解析,识别与每个操作层具有映射关系的计算资源;将每个操作层分配到具有映射关系的计算资源。
本实施例中,在创建神经网络模型时,可以根据神经网络模型的结构定义操作层与操作层之间的依赖关系。还可以通过命名操作层的方式对每个操作层指定对应的计算资源。操作层的命名可以记录在相应的配置文件中。当推理引擎需要进行推理过程时,推理引擎可以在配置文件中读取操作层之间的依赖关系,以及每个操作层对应的命名。推理引擎可以获取预设命名格式,根据预设命名格式对每个操作层的命名进行解析,识别与每个操作层具有映射关系的计算资源,将每个操作层分配到具有映射关系的计算资源。计算资源包括微处理,或者微处理器以及微处理器中的计算流。
神经网络模型中各操作层之间的依赖关系与命名的示意图,可以如图3所示。在图3中,操作层之间的箭头可以表示彼此之间的依赖关系。一个依赖层对应的被依赖层可以是一层,也可以是多层。图3中,操作层2对应的被依赖层为操作层1,操作层6对应的被依赖层为操作层2和操作层5。每个操作层的命名中都包含了操作层、微处理器、计算流。其中,具有依赖关系的操作层0、操作层1以及操作层2可以映射至微处理器GPU0的计算流0。具有依赖关系的操作层3、操作层4以及操作层5可以映射至微处理器GPU0的计算流1,操作层6可以映射至微处理器GPU0的计算流2。也就是说,在图3中,不同的操作层可以映射至同一微处理器,具有依赖关系的操作层可以映射至同一微处理器的同一计算流,具有不同依赖关系的操作层可以映射至同一处理器的不同计算流。
本实施例中,通过对神经网络模型中的各个操作层进行配置,可以实现较好的负载均衡。从而能够使得推理过程能够合理分配至对应的计算资源进行处理,有效提高推理过程的计算效率。
在一个实施例中,如图4所示,将每个操作层映射至对应的计算资源的步骤包括:
步骤402,将多个操作层进行拓扑排序,对排序后的操作层依次进行搜索。
步骤404,根据搜索结果生成多个操作层组,将多个操作层组映射至对应的计算资源。
计算机设备将神经网络模型的所有操作层进行拓扑排序。其中,可以根据操作层之间的输入输出关系进行排序。对排序后的操作层按照输入输出的先后顺序依次进行搜索。通过搜索,可以将存在依赖关系的操作层划入同一个操作层组。
由于输入层和常数层的输出不依赖于其他操作层,在搜索到输入层或者常数层时,可以直接跳过搜索下一层。下一层不属于输入层和常数层的操作层时(也可以称为存在输出依赖的操作层),检查与每一个现有操作层组之间的依赖关系。
在其中一个实施例中,对排序后的操作层依次进行搜索包括:检查排序后的操作层与现有操作层组之间的依赖关系;将排序后的操作层与现有操作层组之间的依赖关系进行统计;根据统计结果将排序后的操作层划入相应的操作层组。
具体的,针对第一个存在输出依赖的操作层(简称为排序后的操作层)进行搜索时,尚不存在现有的操作层组,可以将第一个排序后的操作层计入第一个操作层组。针对第二个排序后的操作层进行搜索时,检查是否与第一个操作层组存在依赖关系。若存在依赖关系,则记录第二个排序后的操作层与第一个操作层组之间的依赖关系,否则,将第二个排序后的操作层计入第二个操作层组。以此类推,在针对后续的每一个排序后的操作层进行搜索时,分别与已有的操作层组进行比对,检查是否存在依赖关系。检查是否存在依赖关系的方式有多种,例如,针对其中一层进行搜索时,可以对该层所有的输入向前搜索,如果搜索到与该层具有直接或间接输入的操作层,则表示存在依赖关系。操作层组内可以包括至少一个操作层。当操作层组内包括两个或两个以上的操作层时,如果当前进行搜索的操作层与操作层组内的其中一个操作层具有依赖关系,则表示当前进行搜索的操作层与该操作层组具有依赖关系并且进行记录。
在其中一个实施中,计算机设备根据统计结果将排序后的操作层划入相应的操作层组,其中包括:如果统计结果为0,表示排序后的操作层与任何操作层都不存在依赖关系,则该排序后的操作层属于第一独立操作层组;如果统计结果为1,表示排序后的操作层仅与一个现有操作层组存在依赖关系。如果统计结果大于1,表示排序后的操作层与多个现有操作层组之间存在依赖关系。那么该排序后的操作层也不属于任意一个操作层组,将该排序后的操作层划入第二独立操作层组中。并且记录第二独立操作层组与多个现有操作层组之间的依赖关系。
计算机设备可以对计算平台的计算资源进行分组。其中,计算机设备可以对计算平台中所有可用的计算资源进行分组,也可以根据预设的资源需求条件,获取预设数量的微处理器以及微处理器中的计算流。在进行分组时,计算机设备可以优先根据微处理器进行分组。当微处理器为一个时,计算机设备可以对微处理器中的计算流进行分组。当微处理器为两个或两个以上时,计算机设备首先对微处理器进行分组,然后对每个微处理器中的计算流进行分组。
计算机设备可以对每个操作层组的计算复杂度进行打分,得到对应的复杂分数,利用依赖关系、复杂分数,计算与每个操作层组具有映射关系的计算资源。其中具有映射关系的计算资源可以是分组后的计算资源。
本实施例中,通过根据依赖关系将操作层分别划入对应的操作层组中,可以将操作层组映射至分组后的计算资源。其中,不同的操作层组可以分配不同的计算资源,由此可以使得多个操作层组同步运算,由此能够有效改善计算平台的负载均衡,推理引擎利用神经网络模型进行推理过程时能够有效提高推理过程的计算效率。而且计算资源的分配可以自动完成,有效减少了人工的配置工作。
在传统的方式中,对神经网络模型的操作层进行计算资源分配时,通常没有考虑推理引擎的情况,推理过程的实现需要通过不同的微处理器之间的调度,由此导致不同微处理器之间存在较多内存传输,从而对推理过程的计算效率造成影响。
在其中一个实施例中,计算机设备可以按照操作层组的生成顺序访问操作层组。计算机设备可以将第一个操作层组映射至第一个计算资源。接下来访问下一个操作层组。为了简便描述,被访问的下一个操作层组也可以称为当前操作层组。如果与当前操作层组具有映射关系的其他操作层组正在其中一个计算资源中进行运算,那么保持当前操作层组处于等待状态,直至具有映射关系的操作层组运算完成之后,当前操作层组再进入同一计算资源开始运算。通过将具有映射关系的操作层组分配至同一计算资源进行运算,由此能够有效避免同一推理过程在不同微处理器之间进行,节省了不同微处理器之间的内存传输,从而能够在推理引擎执行推理过程中有效提高推理过程的计算效率。
在其中一个实施例中,如果当前操作层组与正在运算中的操作层组都没有依赖关系,则检测当前操作层组之后的后续操作层组。如果后续操作层组与正在运行的操作层组也不存在依赖关系,则根据复杂分数计算当前操作层组与后续操作层组对应的计算资源。
复杂分数可以是计算机设备针对每个操作层组通过多个维度的计算得到的。复杂分数的计算过程包括:计算机设备获取用于对操作层组打分的多个维度以及每个维度对应的权重。维度可以包括操作层对应的输入大小、操作层对应的内容,计算输入所需时间等。每个维度可以预先设置对应的范围与分数。计算机设备针对每个操作层组,按照每个操作层的维度范围对应的分数与权重进行统计,得到每个操作层组的复杂分数。复杂分数越高,表示运算过程越复杂,运算耗时越长。复杂分数越低,表示运算过程越简单,运算耗时越短。
计算机设备将当前操作层组的复杂分数与正在运算中的操作层组的复杂分数进行比较,将后续操作层组的复杂分数与正在运算中的操作层组的复杂分数进行比较,得到多个比较结果。在多个比较结果中选择一个与正在运算中的操作层组的复杂分数最接近的操作层组,将该最接近的操作层组映射至未进行运算的计算资源。通过复杂分数对不具有依赖关系的操作层组计算相应的计算资源,由此可以让所有计算资源上不具有依赖关系的操作层组的运算耗时相当,尽量使得各个计算资源同时结束运算。通过同步运算,能够有效改善计算平台的负载均衡,从而促进推理过程计算效率的提高。
以微处理器为一个,计算流为四个为例,神经网络模型的各个操作层映射至计算资源的示意图如图5所示。神经网络模型的操作层按照上述实施例中提供的方式划入四个操作层组,每个操作层组分别映射至对应的计算流。其中,操作层组0映射至计算流0,操作层组1映射至计算流1,操作层组2映射至计算流2,操作层组3映射至计算流3。操作层组0、操作层组1、操作层组2彼此之间不具有依赖关系,可以通过计算流0、计算流1、计算流2同步进行推理过程的运算,操作层3根据操作层组0、操作层组1、操作层组2运算后的结果作为输入,在通过计算流3进行推理过程的运算。由此能够在改善计算平台负载均衡的同时,能够有效提高推理过程的计算效率。
应该理解的是,虽然图2和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图6所示,提供了一种基于推理引擎的计算资源分配装置,包括:资源获取模块602、模型调用模块604、关系识别模块606、资源映射模块608、推理执行模块610,其中:
资源获取模块602,用于获取计算平台的计算资源;
模型调用模块604,用于调用神经网络模型,神经网络模型包括多个操作层;
关系识别模块606,用于通过推理引擎识别多个操作层之间的依赖关系;
资源映射模块608,用于将每个操作层映射至对应的计算资源;及
推理执行模610,用于根据依赖关系以及所映射的计算资源,通过推理引擎利用神经网络模型进行推理过程。
在一个实施例中,关系识别模块606还用于获取与神经网络模型对应的配置文件;及在配置文件中读取神经网络模型中多个操作层之间的依赖关系。
在一个实施例中,资源映射模块608还用于获取每个操作层对应的命名;根据预设命名格式对命名进行解析,识别与每个操作层具有映射关系的计算资源;及将每个操作层分配到具有映射关系的计算资源。
在一个实施例中,资源映射模块608还用于将多个操作层进行拓扑排序,对排序后的操作层依次进行搜索;及根据搜索结果生成多个操作层组,将多个操作层组映射至对应的计算资源。
在一个实施例中,资源映射模块608还用于检查排序后的操作层与现有操作层组之间的依赖关系;将排序后的操作层与现有操作层组之间的依赖关系进行统计;及根据统计结果将排序后的操作层划入相应的操作层组。
在一个实施例中,资源映射模块608还用于当统计结果为0时,将排序后的操作层划入第一独立操作层组;当统计结果为1时,表示排序后的操作层仅与一个现有操作层组存在依赖关系;及当统计结果大于1时,将该排序后的操作层划入第二独立操作层组中,并且记录第二独立操作层组与多个现有操作层组之间的依赖关系。
在一个实施例中,资源映射模块608还用于当操作层组之间存在依赖关系时,获取所有操作层组对应的生成顺序;根据生成顺序向每个操作层组分配对应的计算资源;及当被依赖的操作层组正在运行中时,依赖层组保持等待状态,直至被依赖的操作层组运算完成,依赖层进入对应的计算资源进行运算。
在一个实施例中,资源映射模块608还用于当操作层组之间不存在依赖关系时,获取操作层组对应的复杂分数;及利用复杂分数,计算与每个操作层组具有映射关系的计算资源。
在一个实施例中,资源映射模块608还用于将正在运行中的操作层的复杂分数与不存在依赖关系的多个操作层的复杂分数进行比较,得到多个比较结果;在多个比较结果中选择一个与正在运算中的操作层组的复杂分数最接近的操作层组;及将最接近的操作层组映射至未进行运算的计算资源。
关于基于推理引擎的计算资源分配装置的具体限定可以参见上文中对于基于推理引擎的计算资源分配方法的限定,在此不再赘述。上述基于推理引擎的计算资源分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的数据库用于存储神经网络模型的推理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现一种基于推理引擎的计算资源分配方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
一种计算机设备,包括存储器和一个或多个处理器,存储器中储存有计算机可读指令,计算机可读指令被处理器执行时,使得一个或多个处理器执行时实现上述方法实施例中的步骤。
一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (20)

1.一种基于推理引擎的计算资源分配方法,包括:
获取计算平台的计算资源;
调用神经网络模型,所述神经网络模型包括多个操作层;
通过推理引擎识别所述多个操作层之间的依赖关系;
将每个操作层映射至对应的计算资源,包括:将所述多个操作层进行拓扑排序;检查排序后的操作层与现有操作层组之间的依赖关系;将排序后的操作层与所述现有操作层组之间的依赖关系进行统计,当统计结果为0时,将所述排序后的操作层划入第一独立操作层组,当统计结果为1时,表示排序后的操作层仅与一个现有操作层组存在依赖关系,当统计结果大于1时,将该排序后的操作层划入第二独立操作层组中,并且记录第二独立操作层组与多个现有操作层组之间的依赖关系,生成多个操作层组;利用依赖关系、每个操作层组对应的复杂分数,计算与每个操作层组具有映射关系的计算资源,将每个操作层组映射至对应的计算资源;及
根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
2.根据权利要求1所述的方法,其特征在于,所述识别所述多个操作层之间的依赖关系包括:
获取与所述神经网络模型对应的配置文件;及
在所述配置文件中读取所述神经网络模型中多个操作层之间的依赖关系。
3.根据权利要求1所述的方法,其特征在于,所述将每个操作层映射至对应的计算资源包括:
获取每个操作层对应的命名;
根据预设命名格式对所述命名进行解析,识别与每个操作层具有映射关系的计算资源;及
将每个操作层分配到具有映射关系的计算资源。
4.根据权利要求3所述的方法,所述操作层对应的命名包含操作层、微处理器、计算流。
5.根据权利要求1所述的方法,其特征在于,所述检查排序后的操作层与现有操作层组之间的依赖关系包括:
针对操作层进行搜索时,对操作层所有的输入向前搜索,如果搜索到与操作层具有直接或间接输入的操作层,则表示存在依赖关系。
6.根据权利要求1所述的方法,其特征在于,所述将每个操作层组映射至对应的计算资源包括:
当操作层组之间存在依赖关系时,获取所有操作层组对应的生成顺序;
根据所述生成顺序向每个操作层组分配对应的计算资源;及
当被依赖的操作层组正在运行中时,依赖层组保持等待状态,直至所述被依赖的操作层组运算完成,所述依赖层进入对应的计算资源进行运算。
7.根据权利要求1所述的方法,其特征在于,所述将每个操作层组映射至对应的计算资源包括:
当操作层组之间不存在依赖关系时,获取所述操作层组对应的复杂分数;及
利用所述复杂分数,计算与每个操作层组具有映射关系的计算资源。
8.根据权利要求7所述的方法,其特征在于,所述利用所述复杂分数,计算与每个操作层组具有映射关系的计算资源包括:
将正在运行中的操作层的复杂分数与不存在依赖关系的多个操作层的复杂分数进行比较,得到多个比较结果;
在多个比较结果中选择一个与正在运算中的操作层组的复杂分数最接近的操作层组;及
将所述最接近的操作层组映射至未进行运算的计算资源。
9.根据权利要求7所述的方法,其特征在于,所述获取所述操作层组对应的复杂分数包括:
获取用于对操作层组打分的多个维度以及每个维度对应的权重;所述多个维度包括操作层对应的输入大小、操作层对应的内容、计算输入所需时间,每个维度存在预先设置的范围与分数;
针对每个操作层组,按照每个操作层的维度范围对应的分数与权重进行统计,得到每个操作层的复杂分数。
10.一种基于推理引擎的计算资源分配装置,包括:
资源获取模块,用于获取计算平台的计算资源;
模型调用模块,用于调用神经网络模型,所述神经网络模型包括多个操作层;
关系识别模块,用于通过推理引擎识别所述多个操作层之间的依赖关系;
资源映射模块,用于将每个操作层映射至对应的计算资源,包括:将所述多个操作层进行拓扑排序;检查排序后的操作层与现有操作层组之间的依赖关系;将排序后的操作层与所述现有操作层组之间的依赖关系进行统计,当统计结果为0时,将所述排序后的操作层划入第一独立操作层组,当统计结果为1时,表示排序后的操作层仅与一个现有操作层组存在依赖关系,当统计结果大于1时,将该排序后的操作层划入第二独立操作层组中,并且记录第二独立操作层组与多个现有操作层组之间的依赖关系,生成多个操作层组;利用依赖关系、每个操作层组对应的复杂分数,计算与每个操作层组具有映射关系的计算资源,将每个操作层组映射至对应的计算资源;及
推理执行模块,用于根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
11.一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取计算平台的计算资源;
调用神经网络模型,所述神经网络模型包括多个操作层;
通过推理引擎识别所述多个操作层之间的依赖关系;
将每个操作层映射至对应的计算资源,包括:将所述多个操作层进行拓扑排序;检查排序后的操作层与现有操作层组之间的依赖关系;将排序后的操作层与所述现有操作层组之间的依赖关系进行统计,当统计结果为0时,将所述排序后的操作层划入第一独立操作层组,当统计结果为1时,表示排序后的操作层仅与一个现有操作层组存在依赖关系,当统计结果大于1时,将该排序后的操作层划入第二独立操作层组中,并且记录第二独立操作层组与多个现有操作层组之间的依赖关系,生成多个操作层组,将多个操作层组映射至对应的计算资源;及
根据所述依赖关系以及所映射的计算资源,通过所述推理引擎利用所述神经网络模型进行推理过程。
12.根据权利要求11所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
获取与所述神经网络模型对应的配置文件;及
在所述配置文件中读取所述神经网络模型中多个操作层之间的依赖关系。
13.根据权利要求11所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
获取每个操作层对应的命名;
根据预设命名格式对所述命名进行解析,识别与每个操作层具有映射关系的计算资源;及
将每个操作层分配到具有映射关系的计算资源。
14.根据权利要求11所述的计算机设备,其特征在于,所述操作层对应的命名包含操作层、微处理器、计算流。
15.根据权利要求11所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
针对操作层进行搜索时,对操作层所有的输入向前搜索,如果搜索到与操作层具有直接或间接输入的操作层,则表示存在依赖关系。
16.根据权利要求11所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
当操作层组之间存在依赖关系时,获取所有操作层组对应的生成顺序;
根据所述生成顺序向每个操作层组分配对应的计算资源;及
当被依赖的操作层组正在运行中时,依赖层组保持等待状态,直至所述被依赖的操作层组运算完成,所述依赖层进入对应的计算资源进行运算。
17.根据权利要求11所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
当操作层组之间不存在依赖关系时,获取所述操作层组对应的复杂分数;及
利用所述复杂分数,计算与每个操作层组具有映射关系的计算资源。
18.根据权利要求17所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
将正在运行中的操作层的复杂分数与不存在依赖关系的多个操作层的复杂分数进行比较,得到多个比较结果;
在多个比较结果中选择一个与正在运算中的操作层组的复杂分数最接近的操作层组;及
将所述最接近的操作层组映射至未进行运算的计算资源。
19.根据权利要求18所述的计算机设备,其特征在于,所述一个或多个处理器还执行以下步骤:
获取用于对操作层组打分的多个维度以及每个维度对应的权重;所述多个维度包括操作层对应的输入大小、操作层对应的内容、计算输入所需时间,每个维度存在预先设置的范围与分数;
针对每个操作层组,按照每个操作层的维度范围对应的分数与权重进行统计,得到每个操作层的复杂分数。
20.存储有计算机可读指令的非易失性计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1-9任一项所述的方法。
CN201980037488.6A 2019-12-30 2019-12-30 基于推理引擎的计算资源分配方法、装置和计算机设备 Active CN113412493B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/129973 WO2021134231A1 (zh) 2019-12-30 2019-12-30 基于推理引擎的计算资源分配方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN113412493A CN113412493A (zh) 2021-09-17
CN113412493B true CN113412493B (zh) 2024-06-14

Family

ID=76687484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980037488.6A Active CN113412493B (zh) 2019-12-30 2019-12-30 基于推理引擎的计算资源分配方法、装置和计算机设备

Country Status (2)

Country Link
CN (1) CN113412493B (zh)
WO (1) WO2021134231A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117852573B (zh) * 2024-03-07 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 算力执行系统、算子计算流管理方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958285A (zh) * 2017-11-21 2018-04-24 深圳普思英察科技有限公司 面向嵌入式系统的神经网络的映射方法及装置
CN109919315A (zh) * 2019-03-13 2019-06-21 科大讯飞股份有限公司 一种神经网络的前向推理方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191178B1 (en) * 2002-02-11 2007-03-13 Louisiana Tech University Research Foundation Method for allocation of web pages using neural networks
CN109976911B (zh) * 2019-03-25 2021-04-20 哈尔滨工程大学 一种自适应资源调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958285A (zh) * 2017-11-21 2018-04-24 深圳普思英察科技有限公司 面向嵌入式系统的神经网络的映射方法及装置
CN109919315A (zh) * 2019-03-13 2019-06-21 科大讯飞股份有限公司 一种神经网络的前向推理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2021134231A1 (zh) 2021-07-08
CN113412493A (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
US11907760B2 (en) Systems and methods of memory allocation for neural networks
CN111506498B (zh) 测试用例的自动生成方法、装置、计算机设备及存储介质
CN111427681A (zh) 边缘计算中基于资源监控的实时任务匹配调度系统和方法
CN111126668B (zh) 基于图卷积网络的Spark作业时间预测方法和装置
CN110287332B (zh) 云环境下仿真模型选择方法与装置
CN112465146B (zh) 一种量子与经典混合云平台以及任务执行方法
CN112543918A (zh) 神经网络切分方法、预测方法及相关装置
CN111476192B (zh) 基于智慧交通的截取图像合成方法及大数据云服务器
WO2021185121A1 (zh) 模型生成方法、目标检测方法、装置、设备及存储介质
CN110796366A (zh) 质差小区识别方法和装置
CN111210158B (zh) 目标地址确定方法、装置、计算机设备和存储介质
CN113412493B (zh) 基于推理引擎的计算资源分配方法、装置和计算机设备
WO2022141489A1 (zh) 深度学习模型的推理方法、装置、计算机设备和存储介质
CN110097077B (zh) 点云数据分类方法、装置、计算机设备和存储介质
CN114444676A (zh) 模型通道剪枝方法、装置、计算机设备和存储介质
CN113811897B (zh) 神经网络模型的推理方法、装置、计算机设备和存储介质
CN111159450A (zh) 图片分类方法、装置、计算机设备和存储介质
CN111950753A (zh) 一种景区客流预测的方法及装置
CN113761033B (zh) 基于档案数字化管理的信息整理方法及系统
CN115131631A (zh) 图像识别模型训练方法、装置、计算机设备和存储介质
CN111984714B (zh) 基于智能在线通信和大数据的信息生成方法及云服务平台
CN113485848A (zh) 深度神经网络部署方法、装置、计算机设备和存储介质
CN112927004A (zh) 用于大数据画像的信息云计算分析方法及信息推送服务器
CN114548463A (zh) 线路信息预测方法、装置、计算机设备和存储介质
CN112613607A (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