CN111752709A - Ai计算配置方法、装置、设备及存储介质 - Google Patents

Ai计算配置方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111752709A
CN111752709A CN202010575470.6A CN202010575470A CN111752709A CN 111752709 A CN111752709 A CN 111752709A CN 202010575470 A CN202010575470 A CN 202010575470A CN 111752709 A CN111752709 A CN 111752709A
Authority
CN
China
Prior art keywords
executable
node
execution
computing
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.)
Granted
Application number
CN202010575470.6A
Other languages
English (en)
Other versions
CN111752709B (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 Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies 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 Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202010575470.6A priority Critical patent/CN111752709B/zh
Publication of CN111752709A publication Critical patent/CN111752709A/zh
Application granted granted Critical
Publication of CN111752709B publication Critical patent/CN111752709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Abstract

本发明实施例公开了一种AI计算配置方法、装置、设备及存储介质,所述方法包括:获取基于数据流架构的计算图,所述计算图包括多个计算节点;确定所述计算节点的节点类型;根据所述节点类型确定对应的可执行设备;将所述计算节点分配到所述可执行设备执行。本发明实施例根据节点类型分配计算节点的可执行设备,计算图的内部计算节点的数量不会影响分离工作,实现了基于数据流架构的深度学习模型的计算图的自动分离,提高了AI计算配置操作的效率,根据可执行设备的执行时间进一步选择计算更快的可执行设备,使得实现AI计算配置的前提下兼顾了计算速度和效率,提升计算图的性能。

Description

AI计算配置方法、装置、设备及存储介质
技术领域
本发明实施例涉及深度学习技术领域,尤其涉及一种AI计算配置方法、装置、设备及存储介质。
背景技术
随着深度学习技术的发展,深度学习中的算力需求也越来越高,因此,如何解决日益高涨的算力需求是深度学习技术中的一大挑战。目前开发的数据流架构的计算芯片,相对于传统的指令集架构的芯片,能够满足更大的算力需求,具备高效率和低延迟的特性,因而深受人们的重视。
为了进一步提高算力,还可以使用定制化的计算芯片,这样就出现了基于数据流架构的深度学习定制芯片。这种定制芯片虽然算力强大,但是依然无法脱离传统通用计算芯片CPU(Central Processing Unit,中央处理器)而存在,因为基于数据流架构的深度学习定制芯片的算力提升是牺牲芯片通用性而来,如果既要有强大的算力又不能失去芯片的通用性,那就需要将两种芯片进行结合,定制芯片主要进行计算加速,通用芯片辅助系统操作,因此,目前一些高算力的计算机器通常包括两种计算芯片。
然而,定制芯片和通用芯片的硬件架构是不同的,这就使得深度学习模型的计算图无法直接自动在两种芯片上运行,故需要软件程序进行AI计算配置操作,即将深度学习模型的计算图的计算节点分配到两种芯片上执行。但是目前进行AI计算配置操作的代码通常是技术人员根据指定的定制芯片专门编写的,当定制芯片的硬件架构更变时,那么就需要技术人员重新编写AI计算配置操作的代码,不仅费时费力,还影响工作效率。
发明内容
有鉴于此,本发明实施例提供一种AI计算配置方法、装置、设备及存储介质,以实现深度学习模型的计算图的自动分离,提高AI计算配置操作的效率。
第一方面,本发明实施例提供一种AI计算配置方法,包括:
获取基于数据流架构的计算图,所述计算图包括多个计算节点;
确定所述计算节点的节点类型;
根据所述节点类型确定对应的可执行设备;
将所述计算节点分配到所述可执行设备执行。
进一步的,将所述计算节点分配到所述可执行设备执行,包括:
当所述可执行设备的数量为多个时,确定每个可执行设备执行所述计算节点需要的执行时间;
将所述计算节点分配到最小执行时间所对应的可执行设备执行。
进一步的,确定每个可执行设备执行所述计算节点需要的执行时间之后,还包括:
确定每个可执行设备的执行条件;
根据每个可执行设备的执行条件和执行时间确定最优执行设备;
将所述计算节点分配到所述最优执行设备执行。
进一步的,根据每个可执行设备的执行条件和执行时间确定最优执行设备,包括:
确定所述计算节点的参数配置;
若所述参数配置符合可执行设备的执行条件,则将所述可执行设备作为目标执行设备,得到至少一个目标执行设备,所述目标执行设备的执行时间为目标执行时间;
将最小目标执行时间所对应的目标执行设备作为最优执行设备。
进一步的,将所述计算节点分配到所述最优执行设备执行之后,还包括:
确定分配可执行设备后的计算图中的孤立计算节点以及所述孤立计算节点与相连计算节点之间的数据交换时间;
若所述孤立计算节点在其对应的可执行设备的执行时间小于所述数据交换时间,则确定执行所述计算图所需的第一整体时间;
确定当所述孤立计算节点当前对应的可执行设备为相连可执行设备时,执行所述计算图所需的第二整体时间,其中,所述相连可执行设备为与所述孤立计算节点相连的计算节点对应的可执行设备;
若所述第二整体时间小于所述第一整体时间,则将所述孤立计算节点分配到所述相连可执行设备执行。
进一步的,确定执行所述计算图所需的第一整体时间之后,还包括:
确定当所述孤立计算节点当前对应的可执行设备为第一可执行设备时,执行所述计算图所需的第三整体时间,其中,所述第一可执行设备为与所述孤立计算节点相连的第一计算节点对应的可执行设备;
确定当所述孤立计算节点当前对应的可执行设备为第二可执行设备时,执行所述计算图所需的第四整体时间,其中,所述第二可执行设备为与所述孤立计算节点相连的第二计算节点对应的可执行设备;
若所述第三整体时间小于所述第一整体时间和所述第四整体时间,则将所述孤立计算节点分配到所述第一可执行设备执行;
若所述第四整体时间小于所述第一整体时间和所述第三整体时间,则将所述孤立计算节点分配到所述第二可执行设备执行。
进一步的,确定分配可执行设备后的计算图中的孤立计算节点,包括:
若当前计算节点的可执行设备与第一可执行设备和第二可执行设备都不相同,则将所述当前计算节点作为孤立计算节点,其中,所述第一可执行设备为与当前计算节点相连的第一计算节点对应的可执行设备,所述第二可执行设备为与当前计算节点相连的第二计算节点对应的可执行设备。
第二方面,本发明实施例提供一种AI计算配置装置,包括:
计算图获取模块,用于获取基于数据流架构的计算图,所述计算图包括多个计算节点;
节点类型确定模块,用于确定所述计算节点的节点类型;
可执行设备确定模块,用于根据所述节点类型确定对应的可执行设备;
节点分配模块,用于将所述计算节点分配到所述可执行设备执行。
第三方面,本发明实施例提供一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的AI计算配置方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的AI计算配置方法。
本发明实施例根据节点类型分配计算节点的可执行设备,计算图的内部计算节点的数量不会影响分离工作,实现了基于数据流架构的深度学习模型的计算图的自动分离,提高了AI计算的效率,根据可执行设备的执行时间进一步选择计算更快的可执行设备,使得实现AI计算兼顾了计算速度和效率,提升计算图的性能。
附图说明
图1为本发明实施例一提供的AI计算配置方法的流程示意图;
图2为本发明实施例二提供的AI计算配置方法的流程示意图;
图3A为本发明实施例三提供的AI计算配置方法的流程示意图;
图3B为本发明实施例三的可替代实施例提供的AI计算配置方法的流程示意图;
图3C为本发明实施例三提供示例性计算图的结构示意图;
图4为本发明实施例四提供的AI计算配置装置的结构示意图;
图5是本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一计算节点称为第二计算节点,且类似地,可将第二计算节点称为第一计算节点。第一计算节点和第二计算节点两者都是计算节点,但其不是同一计算节点。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”、“批量”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的AI计算配置方法的流程示意图,可适用于基于数据流架构的深度学习模型计算图的分离,该方法可由AI计算配置装置实施,并可通过硬件或软件的方式实现。如图1所示,本发明实施例一提供的AI计算配置方法包括:
S110、获取基于数据流架构的计算图,所述计算图包括多个计算节点。
具体的,基于数据流架构的计算图是指基于数据流架构开发的深度学习模型的计算图。计算图是一种以有向无环图为数据结构的计算流程,其中包括多个计算节点,每一个计算节点表示一种算术操作或者物理操作,算术操作如加减乘数等,物理操作如多维数据的形状变换和切片操作等。
S120、确定所述计算节点的节点类型。
具体的,将每一个计算节点表示的算术操作或者物理操作统称为计算操作,那么对计算操作进行区分,也就是对计算节点进行区别,因此,计算节点的节点类型就表示了计算节点的计算操作的类型。例如,一个计算节点的计算操作是进行两个数据的相加,那么该计算节点的节点类型为加法。一个深度学习模型的计算图的计算操作通常有多种,因此,节点类型也有多种。
S130、根据所述节点类型确定对应的可执行设备。
具体的,可执行设备是指深度学习计算机器中,能够执行节点类型所对应的计算操作的芯片。通常,高算力和通用性并存的深度学习计算机器至少包括两种芯片,一种通用性强的芯片,另一种是定制化芯片。通用性强的芯片称之为通用设备,一般用于辅助系统操作,能够执行的计算操作的种类较多,但是计算速度较慢,例如CPU。定制化芯片称之为加速设备,一般是针对特别的计算操作开发的,因此,其计算速度快,但是能够执行的计算操作的种类较少,例如定制化GPU芯片(Graphics Processing Unit,图形处理器)、定制化FPGA芯片(Field-Programmable Gate Array,现场可编程门阵列)、定制化ASIC芯片(Application Specific Integrated Circuit,专用集成电路)等。例如,节点类型为加法,深度学习计算机器中包括通用设备D1和乘法加速设备D2,乘法加速设备D2表示该加速设备仅对乘法操作进行加速计算,那么节点类型为加法时,其对应的可执行设备应为通用设备D1。
S140、将所述计算节点分配到所述可执行设备执行。
具体的,通过节点类型确定了对应的可执行设备,那么就可以将计算节点分配到能够执行对应的计算操作的芯片中执行,避免了计算节点运行在不能执行对应的计算操作的芯片中而引起的混乱和错误,从而实现了基于数据流架构的计算图的自动分离操作,也就实现了AI计算的自动配置。
进一步的,将所述计算节点分配到所述可执行设备执行还可以包括:当所述可执行设备的数量为多个时,确定每个可执行设备执行所述计算节点需要的执行时间;将所述计算节点分配到最小执行时间所对应的可执行设备执行。即,当根据节点类型确定的可执行设备有多个时,根据可执行设备执行该计算节点需要的执行时间来分配,将计算节点分配到执行时间最小的设备上执行,从而可以减少计算时间,提高计算速度。例如,节点类型为加法,深度学习计算机器中包括通用设备D1、乘法加速设备D2和加法加速设备D3,加法加速设备D3表示该加速设备仅对加法操作进行加速计算,那么节点类型为加法时,其对应的可执行设备应为通用设备D1和加法加速设备D3,通用设备D1执行该计算节点的加法操作的执行时间为3ms,加法加速设备D3执行该计算节点的加法操作的执行时间为1ms,那么将该计算节点分配到加法加速设备D3上执行,提高该计算节点的计算速度。
本发明实施例一提供的AI计算配置方法根据节点类型分配计算节点的可执行设备,计算图的内部计算节点的数量不会影响分离工作,实现了基于数据流架构的深度学习模型的计算图的自动分离,提高了AI计算配置操作的效率,根据可执行设备的执行时间进一步选择计算更快的可执行设备,使得实现AI计算配置的前提下兼顾了计算速度和效率,提升计算图的性能。
实施例二
图2为本发明实施例二提供的AI计算配置方法的流程示意图,本实施例是对上述实施例的进一步优化。如图2所示,本发明实施例二提供的AI计算配置方法包括:
S210、获取基于数据流架构的计算图,所述计算图包括多个计算节点。
S220、确定所述计算节点的节点类型。
S230、根据所述节点类型确定对应的可执行设备。
S240、当所述可执行设备的数量为多个时,确定每个可执行设备执行所述计算节点需要的执行时间。
S250、确定每个可执行设备的执行条件。
具体的,可执行设备的执行条件就是指该计算芯片能够进行计算的条件,通常规定了进行计算的数据的一些参数范围,如数据量大小、数据类型的规定等。例如,一加法加速设备的执行条件是:数据位数小于8位、数据类型为二进制数据,即表示,该加法加速设备能够进行8位二进制数据的加法计算,当不符合这个条件时,则不能进行计算,如10位二进制数据、8为十进制数据都不能够进行计算。
S260、根据每个可执行设备的执行条件和执行时间确定最优执行设备。
具体的,当可执行设备能够执行节点类型所对应的计算操作,但是计算节点的数据不满足该可执行设备的执行条件时,计算节点就不能够在该可执行设备上执行,因此,在确定了多个可执行设备后,还要根据可执行设备的执行条件进行进一步的筛选,计算节点的数据符合执行条件的可执行设备才能够作为计算节点最终运行的设备,即最优执行设备。
进一步的,根据每个可执行设备的执行条件和执行时间确定最优执行设备包括:确定所述计算节点的参数配置;若所述参数配置符合可执行设备的执行条件,则将所述可执行设备作为目标执行设备,得到至少一个目标执行设备,所述目标执行设备的执行时间为目标执行时间;将最小目标执行时间所对应的目标执行设备作为最优执行设备。
具体的,计算节点的参数配置指计算节点的计算数据信息,如数据类型、数据大小等。计算节点的参数配置通常包括可执行设备的执行条件对应的信息,即,可执行设备的执行条件包括的信息,计算节点的参数配置也包括这些信息。当计算节点的参数配置符合执行条件时,说明该结算节点能够在对应的可执行设备上运行,将这样的可执行设备作为目标可执行设备,那么目标执行设备的执行时间则可称为目标执行时间,显然,最优执行设备应该从目标可执行设备中选择。当确定的目标可执行设备只有一个时,可以直接将该目标可执行设备作为最优执行设备。当确定的目标可执行设备有多个时,则根据目标执行时间多目标可执行设备进行进一步的筛选,优选的,将目标执行时间最小的目标可执行设备作为最优执行设备。
S270、将所述计算节点分配到所述最优执行设备执行。
具体的,通过上述步骤的筛选,将计算节点分配到最优执行设备执行,不仅保证了计算节点在最优执行设备上是能够运行的,还保证了计算节点的计算速度和效率。
示例性的,根据计算节点a的节点类型确定的可执行设备包括设备A1、设备A2、设备A3和设备A4,根据计算节点a的参数配置和可执行设备的执行条件确定的目标执行设备为设备A1、设备A2和设备A3,而计算节点a在设备A1、设备A2和设备A3的执行时间比是1:2:3,那么可以将设备A1作为最优执行设备,将计算节点a分配到设备A1执行。
本发明实施例二提供的AI计算配置方法,根据可执行设备的执行条件和执行时间进一步选择能够执行且计算更快的可执行设备,即对可执行设备进行降级优化,使得实现AI计算配置的前提下兼顾了与进行速度和效率,提升了计算的可靠性和计算图的性能。当可执行设备的底层硬件变更时,只需修改相应的执行条件即可实现AI计算配置方法的对应更新,大大提高了技术人员的工作效率。
实施例三
图3A为本发明实施例三提供的AI计算配置方法的流程示意图,本实施例是对上述实施例的进一步优化。如图3A所示,本发明实施例三提供的AI计算配置方法包括:
S301、获取基于数据流架构的计算图,所述计算图包括多个计算节点。
S302、确定所述计算节点的节点类型。
S303、根据所述节点类型确定对应的可执行设备。
S304、当所述可执行设备的数量为多个时,确定每个可执行设备执行所述计算节点需要的执行时间。
S305、确定每个可执行设备的执行条件。
S306、根据每个可执行设备的执行条件和执行时间确定最优执行设备;
S307、将所述计算节点分配到所述最优执行设备执行。
S308、确定分配可执行设备后的计算图中的孤立计算节点以及所述孤立计算节点与相连计算节点之间的数据交换时间。
具体的,确定分配可执行设备后的计算图中的孤立计算节点包括:若当前计算节点的可执行设备与第一可执行设备和第二可执行设备都不相同,则将所述当前计算节点作为孤立计算节点,其中,所述第一可执行设备为与当前计算节点相连的第一计算节点对应的可执行设备,所述第二可执行设备为与当前计算节点相连的第二计算节点对应的可执行设备。即,经过上述步骤对计算图的每个计算节点都分配了可执行设备后,若计算图中的一个计算节点的输入依赖上一个计算节点(即第一计算节点),其输出作为下一个计算节点(即第二计算节点)的输入,并且,该计算节点的可执行设备与上一个计算节点的可执行设备(即第一可执行设备)和下一个计算节点的可执行设备(即第二可执行设备)都不相同,则将这个计算节点称为孤立计算节点。
计算节点之间进行数据交换需要一定的时间,同一可执行设备上计算节点之间的数据交换时间,要小于不同可执行设备上计算节点之间的数据交换时间,由于孤立计算节点是指可执行设备与相邻计算节点的可执行设备都不相同的计算节点,故孤立计算节点与相连计算节点之间的数据交换时间通常是不同可执行设备上计算节点之间的数据交换时间。
需要说明的是,在深度学习模型的计算机器中,通常包括两种不同的设备,即一个通用设备,一个加速设备,因此,与孤立计算节点相连的计算节点的可执行设备通常是相同的,即第一可执行设备与第二可执行设备相同,那么孤立计算节点与相连计算节点之间的数据交换时间也是相同的。因此,本实施例中的数据交换时间既可以是孤立计算节点与相连的第一计算节点之间的数据交换时间,也可以是孤立计算节点与相连的第二计算节点之间的数据交换时间,二者相同。
示例性的,如图3C,为一个示例性计算图的结构示意图,包括计算节点A、计算节点B、计算节点C和计算节点D,假设计算节点A的可执行设备为设备P1,计算节点B的可执行设备为设备P2,计算节点C的可执行设备为设备P1,计算节点D的可执行设备为设备P1,可知,计算节点B的可执行设备与其前后相连的计算节点A和计算节点D的可执行设备都不相同,则计算节点B为孤立结算节点。若设备P1上计算节点之间的数据交换时间(IO时间)为t1,设备P1与设备P2计算节点之间的数据交换时间(IO时间)为t2,t2>t1,那么计算节点B与相连计算节点之间的数据交换时间为t2。
S309、若所述孤立计算节点在其对应的可执行设备的执行时间小于所述数据交换时间,则确定执行所述计算图所需的第一整体时间。
具体的,孤立计算节点当前所对应的可执行设备已经是最优执行设备,也就是孤立计算节点当前对应的可执行设备的执行时间是最小的,如果孤立计算节点在其对应的可执行设备的执行时间小于孤立计算节点与相连计算节点之间的数据交换时间,那么就导致计算图在运行的过程中增加了数据交换的时间消耗,这可能导致计算图的计算时间增加,因此,需要重新评估孤立计算节点所分配的可执行设备。
首先确定在当前的可执行设备分配方式下,执行计算图所需的第一整体时间。执行计算图所需的第一整体时间就是每个计算节点的计算时间与各节点之间的数据交互时间之和。示例性的,参考图3C的计算图结构和步骤S308的参数设置,假设计算节点A在设备P1的执行时间为t1A=3ms,计算节点B在设备P2的执行时间为t2B=1ms,计算节点C在设备P1的执行时间为t1C=2ms,计算节点D在设备P1的执行时间为t1D=2ms,t1=1ms,t2=3ms,那么第一整体时间T1为:
T1=t1A+tAB+t2B+tBD+t1D+tAC+t1C+tCD
=3+3+1+3+2+1+2+1
=16ms
其中,tAB表示计算节点A与计算节点B之间的数据交换时间,为t2;tBD表示计算节点B与计算节点D之间的数据交换时间,为t2;tAC表示计算节点A与计算节点C之间的数据交换时间,为t1;tCD表示计算节点C与计算节点D之间的数据交换时间,为t1。
S310、确定当所述孤立计算节点当前对应的可执行设备为相连可执行设备时,执行所述计算图所需的第二整体时间,其中,所述相连可执行设备为与所述孤立计算节点相连的计算节点对应的可执行设备。
具体的,第二整体时间是指,当将孤立计算节点当前对应的可执行设备替换为相连可执行设备时,执行计算图所需要消耗的时间,相连可执行设备是指与孤立计算节点相连的计算节点对应的可执行设备。由于孤立计算节点当前对应的可执行设备是孤立计算节点对应的最优执行设备,即孤立计算节点的执行时间最小的可执行设备,那么就说明相连可执行设备并不是孤立计算节点的最优执行设备,孤立计算节点在相连可执行设备的执行时间要大于孤立计算节点在当前对应的可执行设备的执行时间。
示例性的,参考图3C的计算图结构和步骤S309的参数设置,孤立计算节点B的相连可执行设备为P1,假设孤立计算节点B在设备P1的执行时间为t1B=3ms(大于孤立计算节点B在设备P2的执行时间),将孤立计算节点B的可执行设备从设备P2替换成设备P1,其他各计算节点的可执行设备不变,则第二整体时间T2为:
T2=t1A+tAB+t1B+tBD+t1D+tAC+t1C+tCD
=3+1+3+1+2+1+2+1
=14ms
其中,tAB表示计算节点A与计算节点B之间的数据交换时间,为t1;tBD表示计算节点B与计算节点D之间的数据交换时间,为t1;tAC表示计算节点A与计算节点C之间的数据交换时间,为t1;tCD表示计算节点C与计算节点D之间的数据交换时间,为t1。
S311、若所述第二整体时间小于所述第一整体时间,则将所述孤立计算节点分配到所述相连可执行设备执行。
具体的,若第二整体时间小于第一整体时间,则表明将孤立计算节点当前对应的可执行设备替换为相连可执行设备时,执行计算图的所消耗的时间会降低,从而说明孤立计算节点在最优执行设备上所能够带来的计算加速无法覆盖设备间数据交换的时间消耗,将孤立计算节点分配到最优执行设备上执行并不是最好的AI计算配置操作,因此,为了提高计算图的运行速度,将孤立计算节点分配到相连可执行设备执行。如上述步骤中的示例,虽然将孤立计算节点B从设备P2分配到了设备P1,导致孤立计算节点B的加速时间增加了,但是孤立计算节点B与相连的计算节点A和计算节点D的数据交换时间却大大减少了,从而使得第二整体时间T2小于第一整体时间T1,提高了计算图的运行速度。
本实施例中,通常孤立计算节点对应的可执行设备为深度学习模型的计算机器中的加速设备,相连可执行设备为深度学习模型的计算机器中的通用设备,因此,相连可执行设备可以执行孤立计算节点,将孤立计算节点分配到相连可执行设备不会引起程序混乱或错误。
当然,若第二整体时间不小于第一整体时间,则说明执行计算图所消耗的时间不变,那么就没有必要对孤立计算节点当前所对应的可执行设备进行调整,可继续将孤立计算节点运行在当前所对应的可执行设备上。
在可替代实施例中,当深度学习模型的计算机器包括三种或更多的设备时,可能存在第一可执行设备与第二可执行设备不相同的情况,将孤立计算节点与相连的第一计算节点的数据交换时间称为第一交换时间,孤立计算节点与相连的第二计算节点之间的数据交换时间为第二交换时间,那么第一交换时间和第二交换时间不相等。相应的,步骤S309中的“若所述孤立计算节点在其对应的可执行设备的执行时间小于所述数据交换时间”可替换为“若所述孤立计算节点在其对应的可执行设备的执行时间小于所述第一交换时间或第二交换时间”。以深度学习模型的计算机器包括三种设备为例,如图3B所示,步骤S309~S311可替换为步骤S3121~S3124。
S3121、确定当所述孤立计算节点当前对应的可执行设备为第一可执行设备时,执行所述计算图所需的第三整体时间,其中,所述第一可执行设备为与所述孤立计算节点相连的第一计算节点对应的可执行设备。
具体的,第三整体时间是指,当将孤立计算节点当前对应的可执行设备替换为第一可执行设备时,执行计算图所需要消耗的时间,第一可执行设备为与孤立计算节点相连的第一计算节点对应的可执行设备。第三整体时间的计算方式与上述步骤中的计算方式相似,在此不再赘述。
S3122、确定当所述孤立计算节点当前对应的可执行设备为第二可执行设备时,执行所述计算图所需的第四整体时间,其中,所述第二可执行设备为与所述孤立计算节点相连的第二计算节点对应的可执行设备。
具体的,第四整体时间是指,当将孤立计算节点当前对应的可执行设备替换为第二可执行设备时,执行计算图所需要消耗的时间,第二可执行设备为与孤立计算节点相连的第二计算节点对应的可执行设备。第四整体时间的计算方式与上述步骤中的计算方式相似,在此不再赘述。
当确定了第一整体时间、第三整体时间和第四整体时间后,可根据三者的关系调整孤立计算节点当前对应的可执行设备,当第三整体时间为三者中的最小值时,执行步骤S3123;当第四整体时间为三者中的最小值时,执行步骤S3124;当第一整体时间为三者中的最小值时,保持孤立计算节点当前对应的可执行设备不变。
S3123、若所述第三整体时间小于所述第一整体时间和所述第四整体时间,则将所述孤立计算节点分配到所述第一可执行设备执行。
具体的,若第三整体时间小于第一整体时间和第四整体时间,即第三整体时间是最小的,则说明将孤立计算节点分配到第一可执行设备执行时,执行计算图所消耗的时间最小,那么调整孤立计算节点当前所对应的可执行设备,将其分配到第一可执行设备执行。
S3124、若所述第四整体时间小于所述第一整体时间和所述第三整体时间,则将所述孤立计算节点分配到所述第二可执行设备执行。
具体的,若第四整体时间小于第一整体时间和第三整体时间,即第四整体时间是最小的,则说明将孤立计算节点分配到第一可执行设备执行时,执行计算图所消耗的时间最小,那么调整孤立计算节点当前所对应的可执行设备,将其分配到第二可执行设备执行。
本发明实施例三提供的AI计算配置方法,当孤立计算节点在最优执行设备上所能够带来的计算加速无法覆盖设备间数据交换的时间消耗,将孤立计算节点分配到相连可执行设备执行,即对计算图的节点分离进行了局部的同化优化,,进一步保证了计算图的运行速度和效率,并能够使整个计算图的性能达到最优平衡。
实施例四
图4为本发明实施例四提供的AI计算配置装置的结构示意图,本实施例可适用于基于数据流架构的深度学习模型计算图的分离,该装置可通过硬件或软件的方式实现,并可执行本发明任意实施例提供的AI计算配置方法,具备实现方法的相应功能结构和有益效果,本实施例中未相近描述的内容可参考本发明任意方法实施例的描述。
如图4所示,本发明实施例四提供的AI计算配置装置包括:计算图获取模块410、节点类型确定模块420、可执行设备确定模块430和节点分配模块440,其中:
计算图获取模块410用于获取基于数据流架构的计算图,所述计算图包括多个计算节点;
节点类型确定模块420用于确定所述计算节点的节点类型;
可执行设备确定模块430用于根据所述节点类型确定对应的可执行设备;
节点分配模块440用于将所述计算节点分配到所述可执行设备执行。
进一步的,节点分配模块440包括:
执行时间确定单元,用于当所述可执行设备的数量为多个时,确定每个可执行设备执行所述计算节点需要的执行时间;
第一节点分配单元,用于将所述计算节点分配到最小执行时间所对应的可执行设备执行。
进一步的,节点分配模块440还包括:
执行条件确定单元,用于确定每个可执行设备的执行条件;
最优执行设备确定单元,用于根据每个可执行设备的执行条件和执行时间确定最优执行设备;
第二节点分配单元,用于将所述计算节点分配到所述最优执行设备执行。
进一步的,所述最优执行设备确定单元具体用于:
确定所述计算节点的参数配置;
若所述参数配置符合可执行设备的执行条件,则将所述可执行设备作为目标执行设备,得到至少一个目标执行设备,所述目标执行设备的执行时间为目标执行时间;
将最小目标执行时间所对应的目标执行设备作为最优执行设备。
进一步的,节点分配模块440还包括:
孤立计算节点确定单元,用于确定分配可执行设备后的计算图中的孤立计算节点以及所述孤立计算节点与相连计算节点之间的数据交换时间;
第一整体时间确定单元,用于若所述孤立计算节点在其对应的可执行设备的执行时间小于所述数据交换时间,则确定执行所述计算图所需的第一整体时间;
第二整体时间确定单元,用于确定当所述孤立计算节点当前对应的可执行设备为相连可执行设备时,执行所述计算图所需的第二整体时间,其中,所述相连可执行设备为与所述孤立计算节点相连的计算节点对应的可执行设备;
第三节点分配单元,用于若所述第二整体时间小于所述第一整体时间,则将所述孤立计算节点分配到所述相连可执行设备执行。
进一步的,节点分配模块440还包括:
第三整体时间确定单元,用于确定当所述孤立计算节点当前对应的可执行设备为第一可执行设备时,执行所述计算图所需的第三整体时间,其中,所述第一可执行设备为与所述孤立计算节点相连的第一计算节点对应的可执行设备;
第四整体时间确定单元,用于确定当所述孤立计算节点当前对应的可执行设备为第二可执行设备时,执行所述计算图所需的第四整体时间,其中,所述第二可执行设备为与所述孤立计算节点相连的第二计算节点对应的可执行设备;
第四节点分配单元,用于若所述第三整体时间小于所述第一整体时间和所述第四整体时间,则将所述孤立计算节点分配到所述第一可执行设备执行;
第五节点分配单元,用于若所述第四整体时间小于所述第一整体时间和所述第三整体时间,则将所述孤立计算节点分配到所述第二可执行设备执行。
进一步的,所述孤立计算节点确定单元具体用于:
若当前计算节点的可执行设备与第一可执行设备和第二可执行设备都不相同,则将所述当前计算节点作为孤立计算节点,其中,所述第一可执行设备为与当前计算节点相连的第一计算节点对应的可执行设备,所述第二可执行设备为与当前计算节点相连的第二计算节点对应的可执行设备。
本发明实施例四提供的AI计算配置装置根据节点类型分配计算节点的可执行设备,计算图的内部计算节点的数量不会影响分离工作,实现了基于数据流架构的深度学习模型的计算图的自动分离,提高了AI计算配置操作的效率,根据可执行设备的执行时间进一步选择计算更快的可执行设备,使得实现AI计算配置的前提下兼顾了计算速度和效率,提升计算图的性能。
实施例五
图5是本发明实施例五提供的一种设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性设备512的框图。图5显示的设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,设备512以通用设备的形式表现。设备512的组件可以包括但不限于:一个或者多个处理器516(图5中以一个处理器为例),存储装置528,连接不同系统组件(包括存储装置528和处理器516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry SubversiveAlliance,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)530和/或高速缓存存储器532。设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储装置528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例如存储装置528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。
设备512也可以与一个或多个外部设备514(例如键盘、指向终端、显示器524等)通信,还可与一个或者多个使得用户能与该设备512交互的终端通信,和/或与使得该设备512能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器520通过总线518与设备512的其它模块通信。应当明白,尽管图中未示出,可以结合设备512使用其它硬件和/或软件模块,包括但不限于:微代码、终端驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器516通过运行存储在存储装置528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的AI计算配置方法,该方法可以包括:
获取基于数据流架构的计算图,所述计算图包括多个计算节点;
确定所述计算节点的节点类型;
根据所述节点类型确定对应的可执行设备;
将所述计算节点分配到所述可执行设备执行。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的AI计算配置方法,该方法可以包括:
获取基于数据流架构的计算图,所述计算图包括多个计算节点;
确定所述计算节点的节点类型;
根据所述节点类型确定对应的可执行设备;
将所述计算节点分配到所述可执行设备执行。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种AI计算配置方法,其特征在于,包括:
获取基于数据流架构的计算图,所述计算图包括多个计算节点;
确定所述计算节点的节点类型;
根据所述节点类型确定对应的可执行设备;
将所述计算节点分配到所述可执行设备执行。
2.如权利要求1所述的方法,其特征在于,将所述计算节点分配到所述可执行设备执行,包括:
当所述可执行设备的数量为多个时,确定每个可执行设备执行所述计算节点需要的执行时间;
将所述计算节点分配到最小执行时间所对应的可执行设备执行。
3.如权利要求2所述的方法,其特征在于,确定每个可执行设备执行所述计算节点需要的执行时间之后,还包括:
确定每个可执行设备的执行条件;
根据每个可执行设备的执行条件和执行时间确定最优执行设备;
将所述计算节点分配到所述最优执行设备执行。
4.如权利要求3所述的方法,其特征在于,根据每个可执行设备的执行条件和执行时间确定最优执行设备,包括:
确定所述计算节点的参数配置;
若所述参数配置符合可执行设备的执行条件,则将所述可执行设备作为目标执行设备,得到至少一个目标执行设备,所述目标执行设备的执行时间为目标执行时间;
将最小目标执行时间所对应的目标执行设备作为最优执行设备。
5.如权利要求4所述的方法,其特征在于,将所述计算节点分配到所述最优执行设备执行之后,还包括:
确定分配可执行设备后的计算图中的孤立计算节点以及所述孤立计算节点与相连计算节点之间的数据交换时间;
若所述孤立计算节点在其对应的可执行设备的执行时间小于所述数据交换时间,则确定执行所述计算图所需的第一整体时间;
确定当所述孤立计算节点当前对应的可执行设备为相连可执行设备时,执行所述计算图所需的第二整体时间,其中,所述相连可执行设备为与所述孤立计算节点相连的计算节点对应的可执行设备;
若所述第二整体时间小于所述第一整体时间,则将所述孤立计算节点分配到所述相连可执行设备执行。
6.如权利要求5所述的方法,其特征在于,确定执行所述计算图所需的第一整体时间之后,还包括:
确定当所述孤立计算节点当前对应的可执行设备为第一可执行设备时,执行所述计算图所需的第三整体时间,其中,所述第一可执行设备为与所述孤立计算节点相连的第一计算节点对应的可执行设备;
确定当所述孤立计算节点当前对应的可执行设备为第二可执行设备时,执行所述计算图所需的第四整体时间,其中,所述第二可执行设备为与所述孤立计算节点相连的第二计算节点对应的可执行设备;
若所述第三整体时间小于所述第一整体时间和所述第四整体时间,则将所述孤立计算节点分配到所述第一可执行设备执行;
若所述第四整体时间小于所述第一整体时间和所述第三整体时间,则将所述孤立计算节点分配到所述第二可执行设备执行。
7.如权利要求5所述的方法,其特征在于,确定分配可执行设备后的计算图中的孤立计算节点,包括:
若当前计算节点的可执行设备与第一可执行设备和第二可执行设备都不相同,则将所述当前计算节点作为孤立计算节点,其中,所述第一可执行设备为与当前计算节点相连的第一计算节点对应的可执行设备,所述第二可执行设备为与当前计算节点相连的第二计算节点对应的可执行设备。
8.一种AI计算配置装置,其特征在于,包括:
计算图获取模块,用于获取基于数据流架构的计算图,所述计算图包括多个计算节点;
节点类型确定模块,用于确定所述计算节点的节点类型;
可执行设备确定模块,用于根据所述节点类型确定对应的可执行设备;
节点分配模块,用于将所述计算节点分配到所述可执行设备执行。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的AI计算配置方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的AI计算配置方法。
CN202010575470.6A 2020-06-22 2020-06-22 Ai计算配置方法、装置、设备及存储介质 Active CN111752709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010575470.6A CN111752709B (zh) 2020-06-22 2020-06-22 Ai计算配置方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010575470.6A CN111752709B (zh) 2020-06-22 2020-06-22 Ai计算配置方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111752709A true CN111752709A (zh) 2020-10-09
CN111752709B CN111752709B (zh) 2024-04-30

Family

ID=72674950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010575470.6A Active CN111752709B (zh) 2020-06-22 2020-06-22 Ai计算配置方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111752709B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683488A (zh) * 2015-03-31 2015-06-03 百度在线网络技术(北京)有限公司 流式计算系统及其调度方法和装置
CN105404690A (zh) * 2015-12-16 2016-03-16 华为技术服务有限公司 查询数据库的方法和装置
CN109496294A (zh) * 2018-01-15 2019-03-19 深圳鲲云信息科技有限公司 人工智能处理装置的编译方法及系统、存储介质及终端
CN111190741A (zh) * 2020-01-03 2020-05-22 深圳鲲云信息科技有限公司 基于深度学习节点计算的调度方法、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683488A (zh) * 2015-03-31 2015-06-03 百度在线网络技术(北京)有限公司 流式计算系统及其调度方法和装置
CN105404690A (zh) * 2015-12-16 2016-03-16 华为技术服务有限公司 查询数据库的方法和装置
CN109496294A (zh) * 2018-01-15 2019-03-19 深圳鲲云信息科技有限公司 人工智能处理装置的编译方法及系统、存储介质及终端
CN111190741A (zh) * 2020-01-03 2020-05-22 深圳鲲云信息科技有限公司 基于深度学习节点计算的调度方法、设备及存储介质

Also Published As

Publication number Publication date
CN111752709B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
US9720740B2 (en) Resource management in MapReduce architecture and architectural system
CN110825436B (zh) 应用于人工智能芯片的计算方法和人工智能芯片
CN111767041A (zh) 在数据流图中插入缓冲器的方法和设备
CN111985831A (zh) 云计算资源的调度方法、装置、计算机设备及存储介质
CN111752691B (zh) Ai计算图的排序方法、装置、设备及存储介质
CN111930317A (zh) 基于ceph数据分布方法、装置、服务器及存储介质
CN111104347B (zh) 堆内存块查找方法、装置、设备及存储介质
CN112052082A (zh) 任务属性优化方法、装置、服务器及存储介质
CN114742000A (zh) 基于FPGA集群的SoC芯片验证系统、验证方法、装置
CN109284108A (zh) 数据存储方法、装置、电子设备及存储介质
CN111752709B (zh) Ai计算配置方法、装置、设备及存储介质
CN111916079A (zh) 一种电子设备的语音响应方法、系统、设备和存储介质
CN114201729A (zh) 一种矩阵运算方式的选择方法、装置、设备以及存储介质
US11275683B2 (en) Method, apparatus, device and computer-readable storage medium for storage management
CN111737193B (zh) 数据存储方法、装置、设备和存储介质
CN115220908A (zh) 资源调度方法、装置、电子设备及存储介质
CN114201727A (zh) 数据的处理方法、处理器、人工智能芯片及电子设备
CN114077481A (zh) 任务调度方法、装置、设备和存储介质
CN110960858A (zh) 一种游戏资源的处理方法、装置、设备及存储介质
CN114372238B (zh) 一种分布式状态估计方法
CN116360858B (zh) 数据的处理方法、图形处理器、电子设备及存储介质
CN111353125B (zh) 运算方法、装置、计算机设备和存储介质
CN112257843B (zh) 一种基于MobileNetV1网络推理任务的扩展指令集的系统
CN111124497B (zh) 运算方法、装置、计算机设备和存储介质
CN111026440B (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