Nothing Special   »   [go: up one dir, main page]

CN117724823A - 基于声明式语义的多模型工作流描述的任务执行方法 - Google Patents

基于声明式语义的多模型工作流描述的任务执行方法 Download PDF

Info

Publication number
CN117724823A
CN117724823A CN202410175197.6A CN202410175197A CN117724823A CN 117724823 A CN117724823 A CN 117724823A CN 202410175197 A CN202410175197 A CN 202410175197A CN 117724823 A CN117724823 A CN 117724823A
Authority
CN
China
Prior art keywords
task
target
model
executing
description
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
Application number
CN202410175197.6A
Other languages
English (en)
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202410175197.6A priority Critical patent/CN117724823A/zh
Publication of CN117724823A publication Critical patent/CN117724823A/zh
Pending legal-status Critical Current

Links

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

Landscapes

  • Stored Programmes (AREA)

Abstract

本说明书公开了基于声明式语义的多模型工作流描述的任务执行方法。在本说明书提供的任务执行方法中,确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。

Description

基于声明式语义的多模型工作流描述的任务执行方法
技术领域
本说明书涉及计算机技术领域,尤其涉及基于声明式语义的多模型工作流描述的任务执行方法。
背景技术
声明式语法是一种将问题描述为一系列声明或规则的语法。开发人员只需定义需要达成的目标,然后让计算机去计算和实现这些目标。这种语法不需要开发人员关注底层实现,只需要定义目标和规则,计算机会自动计算和实现。在执行各种智能计算任务时,使用声明式语法能够大幅优化工作流程,减少不必要的工作量。
如今,随着基于AI构建的生成式模型的应用愈发成熟,智能计算中越来越多的计算任务开始依赖于多个AI模型协同完成。然而管理和执行这类多模型任务通常是非常复杂的,使用单一节点进行计算也存在性能瓶颈。所以要对任务进行分解,并且要对分解后的任务有效的进行任务规划、资源分配和协同执行。目前,现有方法在采用声明式语法描述计算任务时,只能够针对通用任务产生通用的工作流描述,难以反映AI模型在执行计算任务时的动态性与复杂性。
因此,如何更优地通过声明式语法描述依赖于多个基于AI构建的模型协同执行的计算任务是一个亟待解决的问题。
发明内容
本说明书提供基于声明式语义的多模型工作流描述的任务执行方法,以至少部分地解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了基于声明式语义的多模型工作流描述的任务执行方法,包括:
确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;
获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;
对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;
确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;
根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
可选地,获取所述目标任务的声明式语义描述,具体包括:
获取所述目标任务的任务本体描述、各子任务的子任务描述、所述各子任务的任务运行时描述以及所述各子任务的任务周边描述,作为所述目标任务的声明式语义描述。
可选地,所述任务本体描述至少包括各子任务的执行顺序、各子任务的执行条件以及各子任务间的依赖关系。
可选地,每个子任务的子任务描述至少包括任务名称、任务标识、依赖关系、任务输入、任务输出、任务参数、分解能力、任务支持资源。
可选地,每个子任务的任务运行时描述至少包括任务标识、任务计算量、任务访存量。
可选地,每个子任务的任务周边描述至少包括任务层级、任务所需资源、任务调度策略。
可选地,获取所述目标模型的模型信息,具体包括:
获取所述目标模型的模型源代码、辅助工具代码、模型参数、输入数据。
可选地,对所述各目标模型进行拆分,得到若干任务单元,具体包括:
针对每个目标模型,根据该目标模型的拓扑结构,确定该目标模型在执行子任务时所需的各算子之间的耦合度;
根据所述耦合度对所述该目标模型进行拆分,得到该目标模型的各任务单元。
可选地,确定各任务单元在执行所述任务内容时的资源需求,具体包括:
针对每个任务单元,根据该任务单元执行的任务内容,以及所述任务所需资源,确定该任务单元在执行所述任务内容时的资源需求。
可选地,所述资源分配信息至少包括资源可用性评估、任务优先级、并行执行信息、资源分配策略。
可选地,采用所述任务各单元执行各任务内容,具体包括:
根据所述声明式语义描述,确定所述各任务内容对应的程序代码;
采用所述各任务单元执行所述各任务内容对应的程序代码。
本说明书提供的基于声明式语义的多模型工作流描述的任务执行装置,所述装置包括:
确定模块,用于确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;
获取模块,用于获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;
拆分模块,用于对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;
分配模块,用于确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;
执行模块,用于根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于声明式语义的多模型工作流描述的任务执行方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于声明式语义的多模型工作流描述的任务执行方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的基于声明式语义的多模型工作流描述的任务执行方法中,确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
在采用本说明书提供的基于声明式语义的多模型工作流描述的任务执行方法执行依赖于多模型协作的复杂智能计算任务时,可在确定出目标任务与执行目标任务的目标模型后,获取声明式语义描述与目标模型的模型信息;将目标模型拆分为更细粒度的任务单元,并根据各任务单元的资源需求确定出资源分配信息;最终根据资源分配信息采用各任务单元执行各任务内容,得到目标任务的执行结果。采用本方法可允许用户声明性地定义多个模型任务,系统接受这些声明式任务描述并根据任务之间的依赖关系和约束来自动分解、调度和执行任务,以一种高级抽象的方式来描述任务和模型之间的关系。本方法通过工作流提供了一种灵活、可扩展的方法来管理和执行多模型任务,便用户高效利用计算资源和满足性能需求,提升任务效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种基于声明式语义的多模型工作流描述的任务执行方法的流程示意图;
图2为本说明书提供的一种基于声明式语义的多模型工作流描述的任务执行装置的示意图;
图3为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种基于声明式语义的多模型工作流描述的任务执行方法的流程示意图,具体包括以下步骤:
S100:确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务。
本说明书所提供的基于声明式语义的多模型工作流描述的任务执行方法中的所有步骤均可由任何具有计算功能的电子设备实现,例如终端、服务器等设备。
本说明书所提供的基于声明式语义的多模型工作流描述的任务执行方法主要用于执行依赖于多模型协作完成的复杂任务。基于此,可在此步骤中,首先确定出需要完成的目标任务。在目标任务依赖多模型协作的复杂情况下,目标任务通常可由若干个子任务构成。在确定需要完成的各子任务的情况下,可相应确定出需要的目标模型。通常情况下,不同的目标模型可用于执行不同子任务。
举例来说,假如用户需要描述一个图像中存在的指定物体的个数。那么这一任务可由两个子任务构成,相应地,需要两个不同的目标模型来完成。其中,第一个子任务可以是生成对图像的语言描述,可采用大语言模型来完成;第二个子任务可以是统计图像中指定物体的数量,可采用采卷积神经网络模型来完成。
S102:获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息。
在步骤S100中确定出目标任务和执行目标任务需要的目标模型后,可在此步骤中进一步确定出目标任务的声明式语义描述,以及各目标模型的模型信息。
与传统的通用描述不同,在本方法中,在获取目标任务的声明式语义描述时,可具体地,获取所述目标任务的任务本体描述、各子任务的子任务描述、所述各子任务的任务运行时描述以及所述各子任务的任务周边描述,作为所述目标任务的声明式语义描述。
在本方法中,通过声明式语义描述,将一个依赖多模型的复杂目标任务由粗粒度到细粒度,从任务本体描述、子任务描述、任务运行时描述、任务周边描述这四个维度进行具体地描述。
任务本体描述可至少包括各子任务的执行顺序、各子任务的执行条件以及各子任务间的依赖关系。任务本体描述可用于描述目标任务下的各子任务间的依赖关系,以指定子任务的执行顺序和条件。子任务间根据执行顺序可能存在并联、串联等结构。抽象地说,子任务间通过数据流联通,若视子任务为节点,数据流为边,那么任务本体描述中的子任务可以抽象为一个有向图结构。多模型声明式语义将子任务间的依赖关系定义为:
①串行:表示为<依赖任务名称A>&&<依赖任务名称B>;
②并行:表示为<依赖任务名称A>||<依赖任务名称B>;
③循环:表示为always@(条件){<依赖任务名称A>};
④分支判断:表示为if(条件)<依赖任务名称A>^<依赖任务名称B>。
每个子任务的子任务描述可至少包括任务名称、任务标识、依赖关系、任务输入、任务输出、任务参数、分解能力、任务支持资源。对于每个子任务来说,依然可进行进一步地分解,将子任务更细粒度地拆分为多个任务内容。类似的,各任务内容之间页存在数据流,任务内容同样可以抽象表示为有向图结构。换句话说,任务内容与子任务一样具有一致属性,仅仅是粒度更细,递归地从另一个维度扩展了子任务。任务内容可以看作是由一个较大的子任务拆分称为若干较小的子任务;子任务可以看作是若干较小的任务内容组成的一个较大的任务内容。子任务描述的方式可如下:
{
‘task’:‘module_0’,#任务名称
‘id’:‘0-0-0’,#任务唯一标识,格式0-0-0用于表征任务的细分粒度
‘dep’: [-1],#表示任务依赖关系
‘input_desc’: {‘loc’: [‘./home/data/’],’dim’: [[3, 224, 224]],’unit’:[float32]} #表示任务输入描述,包括数据位置、维度和单位
‘output_desc’: {‘loc’: [<resource-0-1>],’dim’: [[1, 128, 128]],‘unit’: [float32]} #输出描述
‘args’: {‘module-specific’: [‘value’]},#任务参数
‘atomic’: True/False,#布尔值,表示任务是否可以进一步细分
‘supported’: [‘resource_id_0’,’resource_id_1’,’resource_id_2’] # 任务支持的资源
}
上述内容为对子任务中可拆分出的任务内容的一组描述,对于每个子任务,可存在多组上述描述内容,分别用于描述一个子任务下的不同任务内容。当然,由于子任务与任务内容的属性一致,仅存在粒度上的不同,子任务本身也可作为任务内容采用上述方式进行描述。需要注意的是,在上述对子任务描述的示例中,所有具体数值均是为了便于理解所给出的可行的实施例的一种,在实际应用时,均可根据具体需求进行设置。
每个子任务的任务运行时描述可至少包括任务标识、任务计算量、任务访存量。在本方法中,目标任务、子任务、任务内容可以看作为属性一致、粒度不同的概念。其中,目标任务为最粗粒度,任务内容为最细粒度;拆分目标任务可得到子任务,拆分子任务可得到任务内容。需要注意的是,拆分出的最细粒度的任务内容一定是可以单独执行的,否则不能进行拆分。其中,任务标识的格式可理解为“目标任务-子任务-任务内容”的层级。任务运行时描述主要针对目标任务、子任务或任务内容在运行过程中的性能参数,任务运行时描述的作用为拓展运行过程中任务的形态,包括卷积层计算量,访存量、并行度以及数据传输量等。任务运行时描述的方式可如下:
{
‘id’: 0-0-0,#任务标识
‘arithmetic_intensity’: 10 FLOPs,#计算量,其中卷积层的计算量公式:M2•K2• Cin• Cout
‘memory_intensity’: 200 Byte,#访存量,模型各层权重参数的内存占用与每层所输出的特征图的内存占用之和
}
在表征计算量的公式中,M表示卷积核的大小,即卷积核的高度和宽度;K表示每个卷积核的通道数,即卷积核的深度;Cin表示输入数据的通道数,即输入图像或上一层的输出的深度;Cout表示输出数据的通道数,即卷积层的神经元数量。该公式的含义为,对于一个卷积层,计算量取决于卷积核的大小、每个卷积核的通道数、输入数据的通道数以及输出数据的通道数。计算量是通过在输入数据上滑动卷积核,并对每个位置进行点乘和求和得到的。这个计算量的指标通常以浮点运算次数(FLOPs)为单位,表示进行的浮点运算的次数。
模型的访存量为模型在处理目标任务/子任务/任务内容时,模型各层权重参数的内存占用与每层所输出的特征图的内存占用之和。类似的,上述描述中的所有具体数据并不唯一,在实际需求中均可根据具体需求进行设置。
每个子任务的任务周边描述可至少包括任务层级、任务所需资源、任务调度策略。任务周边描述用于描述与任务相关的其他特征量的定义与参数,允许用户自定义分配层级,例如,可将层级的分配定义为子任务id为0的任务内容放在CPU设备上执行,子任务id为1的任务内容放在GPU设备上执行等,即在一个任务周边描述中,任务是否允许其不同层级的表示放在不同的设备上。任务周边描述的方式可如下:
{
‘id’: 0-0-0,#任务标识
‘device_id’:‘gpu-0’,#任务所需资源类型
‘method’:’dynamic-drl’,#任务所需调度策略
},
{
‘id’: 0-1-0
‘device-id’:’cpu-0’
‘method’:’dynamic-dp’
}
值得一提的是,除上述内容外,用户还可根据具体需求在任务周边描述中进行其它定义,本说明书对此不做具体限制。
额外的,声明式语义描述除了描述任务外,还可对计算资源之间的通讯状态进行描述。为了更通用地表示一个资源,系统可通过通讯性能模型使用一系列参数对一次点对点通信的时间消耗进行建模,点对点通信的成本可以进一步推广到集合通信当中,可使用如下参数描述一个集群通信网络的状态:
{
‘source_id’:‘zjnode-5’, #此处若为device的id则描述主机间通信,若为resource的id则为主机内通信
‘target_id’:‘zjnode-6’,
‘L’:84ms,#延迟(latency)
‘pklr’:<1%,#丢包率(Packet Lose Rate)
‘jitter’:<20ms,#抖动
‘overhead’:#开销
‘gpm’:#消息发送间隔
‘gpb’:#字节注入间隔
‘p’:#进程总数
}
其中,延迟是数据包通过网络从发送方传输到接收方所需的时间量,通常通过数据的往返时间(Round-Trip Time)来测量。抖动反应了传输单独数据包之间延迟的变化情况,虽然数据包被均匀发送,但它们可能会由于抖动而以不同的延迟到达。开销表示处理器为发送或接收消息花费的时间,包括准备消息、发送队列中排队、向NIC发送信号等。消息发送间隔(gap per message,gpm)表示网卡向链路注入相邻两个数据包之间所需要的最小时间,其倒数反应了网络的带宽,处理器在网络中被阻塞之前能够发送[L/g]个消息。字节注入间隔(gap per bite,gpb)表示向网络中注入两个字节的最小间隔,对于长消息而言1/gpb即代表网络带宽。
在本方法中,在获取目标模型的模型信息可至少获取目标模型的模型源代码、辅助工具代码、模型参数、输入数据。在实际应用时,每种不同的模型信息均可被封装在一个单独的文件中,存放在预设的路径下进行应用。预设的文件夹的架构可如下述方式呈现:
├── in_model_seg/
│├── model_1/
││├── source_code/
│││├── model.py #模型源代码文件
│││├── utils.py #辅助工具代码文件
││├── model_weight.pth #模型参数文件
├── Input_Data/
│├── dataset_1/
││├── data_files/ #输入数据文件
│││├── input_1.jpg
│││├── input_2.jpg
├── Model_Description/
│├── model_1_desc.json #语义描述文件
在上述架构中,最外层的三个文件夹为in_model_seg、Input_Data与Model_Description。其中,in_model_seg文件夹下存有model_1文件夹,model_1文件夹下存有source_code文件夹与模型参数文件model_weight.pth,source_code文件夹下存放了模型源代码文件与辅助工具代码文件。Input_Data文件夹下存有dataset_1文件夹,dataset_1文件夹下存有data_files文件夹,data_files文件夹下存放了输入数据,实施例中为图像文件input_1.jpg与input_2.jpg。Model_Description文件夹下存放了语义描述文件model_1_desc.json,其中包含了本步骤中介绍的目标任务的声明式语义描述。
通过上述方式,即可获取到目标任务的声明式语义描述,以及目标模型的模型信息。
额外的,在获取到的声明式语义描述后,可对声明式语义描述进行一定的语义解析,以保证声明式语义描述中的内容准确无误。具体地,语义解析可至少包括字段补充、语法校验、语义校验、中间代码生成以及目标代码生成。
其中,字段补充为检查声明式语义中的描述,确保所有必要的字段都已提供,并在必要时自动填充缺失的字段。这有助于减少用户错误和确保任务的完整性;语法校验为验证声明式语义的语法正确性,以确保其符合语法规则和约定。这通常涉及使用解析器来检查语法错误;语义校验为确保声明式语义的描述在语义上是合理和一致的,例如,检查任务之间的依赖关系是否有效;中间代码生成为将各任务、节点转化为中间代码,并用特定顺序拼装起来,生成并优化中间代码;目标代码生成为从前端语言转为后端系统可理解、可执行的目标代码,生成可执行的目标程序。
S104:对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容。
在此步骤中,根据声明式语义描述中划分出的任务内容,对目标模型进行相应地拆分,将目标模型的结构划分成更小、更便于管理的任务单元。在步骤S100中说明过,不同的目标模型用于执行不同的子任务,与之相似的,一个子任务所对应的目标模型划分得到的不同任务单元用于执行该子任务下的不同任务内容。
在划分时,可直接按照子任务在声明式语义描述中被拆分成的任务内容,将对应的目标模型划分为任务单元。更优地,还可根据模型的拓扑结构进行效果更好的划分。具体地,可针对每个目标模型,根据该目标模型的拓扑结构,确定该目标模型在执行子任务时所需的各算子之间的耦合度;根据所述耦合度对所述该目标模型进行拆分,得到该目标模型的各任务单元。
一个模型的拓扑结构可以表征出该模型采用的各算子。根据模型拓扑结构的不同,模型的不同算子之间的耦合程度不同。当两个或多个算子之间的耦合程度较高时,这几个算子放在一起进行运算的效果是要优于分开运算的。因此,可将耦合度较高的算子划分在一个任务单元中。相对应的,该任务单元会执行包含的算子所对应的所有任务内容。换句话说,当按照声明式语义描述中的规定来区分任务内容时,一个任务单元可能执行不只一个任务内容。
由于在声明式语义中划分出的各任务内容相互独立,均可单独执行。因此,在资源充足的情况下,将目标模型进一步划分为与任务内容相对应的独立的任务单元,可实现各任务单元并行执行不同的任务内容,进一步提高运算效率。
S106:确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息。
为了保证分解后的各任务内容可以顺利执行,在执行前,需要先确定出各任务单元在执行对应的任务内容时需要的资源,并进行相应地规划。在此步骤中,任务的规划基于资源需求分析,包括处理器、内存、存储、网络带宽等。
一般情况下,在目标任务的声明式语义描述中会规定出各任务内容所需的计算资源,可根据声明式语义描述中的规定直接确定出资源需求。具体地,可针对每个任务单元,根据该任务单元执行的任务内容,以及所述任务所需资源,确定该任务单元在执行所述任务内容时的资源需求。
另一种情况,当声明式语义描述中缺少对应的字段时,可采用Roofline Model确定出任务内容的资源需求。通过结合Roofline Model,分析程序的计算/访存比,从而对任务更适合在哪一种计算资源上运行进行判断。Roofline Model使用计算量和访存量来定量描述任务的计算强度,使用算力和带宽来定量描述计算平台的计算强度。Roofline Model旨在探讨:模型在一个计算平台的限制下,到底能达到多快的浮点计算速度。更具体的来说,Roofline Model 解决的,是“计算量为A且访存量为B的模型在算力为C且带宽为D的计算平台所能达到的理论性能上限E是多少”这个问题。
在确定出各任务内容的资源需求后,便可对各任务单元在执行任务内容所需的资源进行分配,也就是确定出资源分配信息。具体地,所述资源分配信息可至少包括资源可用性评估、任务优先级、并行执行信息、资源分配策略。
其中,资源可用性评估为获取系统当前可用资源的数量和性能,包括计算节点、中央处理器(Central Processing Unit,CPU)数量、图形处理器(Graphics ProcessingUnit,GPU)数量、内存容量、存储、带宽等。任务优先级为对每个任务内容分配优先级,以便在资源有限时能够首先执行最重要的任务,也就是优先级最高的任务。并行执行信息为根据声明式描述语义中的描述,确定哪些任务内容可以并行执行,那些任务内容可以同时在不同资源上执行。资源分配策略为让各任务内容得到适当的资源分配,以最大程度地满足任务需求。
S108:根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
在此步骤中,可根据步骤S106中确定出的资源分配信息,为各任务单元分配需要的计算资源,使各任务单元执行相应的任务内容,得到最终的目标任务的执行结果。当然,在执行的过程中,可动态调整计算资源,根据各任务内容的执行情况和资源可用性,动态进行资源的分配,确保任务在整个执行过程中得到最佳的资源支持。
在采用所述任务各单元执行各任务内容时,可具体地,根据所述声明式语义描述,确定所述各任务内容对应的程序代码;采用所述各任务单元执行所述各任务内容对应的程序代码。正如背景技术中介绍的,基于声明式语法所写出的声明式语义描述并不能由机器直接执行,需要首先将其转换为能够被机器理解的代码后,再进行执行。
在采用本说明书提供的基于声明式语义的多模型工作流描述的任务执行方法执行依赖于多模型协作的复杂智能计算任务时,可在确定出目标任务与执行目标任务的目标模型后,获取声明式语义描述与目标模型的模型信息;将目标模型拆分为更细粒度的任务单元,并根据各任务单元的资源需求确定出资源分配信息;最终根据资源分配信息采用各任务单元执行各任务内容,得到目标任务的执行结果。采用本方法可允许用户声明性地定义多个模型任务,系统接受这些声明式任务描述并根据任务之间的依赖关系和约束来自动分解、调度和执行任务,以一种高级抽象的方式来描述任务和模型之间的关系。本方法通过工作流提供了一种灵活、可扩展的方法来管理和执行多模型任务,便用户高效利用计算资源和满足性能需求,提升任务效率。
以上是本说明书提供的基于声明式语义的多模型工作流描述的任务执行方法,基于同样的思路,本说明书还提供了相应的基于声明式语义的多模型工作流描述的任务执行装置,如图2所示。
图2为本说明书提供的一种基于声明式语义的多模型工作流描述的任务执行装置示意图,具体包括:
确定模块200,用于确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;
获取模块202,用于获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;
拆分模块204,用于对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;
分配模块206,用于确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;
执行模块208,用于根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
可选地,所述获取模块202,具体用于获取所述目标任务的任务本体描述、各子任务的子任务描述、所述各子任务的任务运行时描述以及所述各子任务的任务周边描述,作为所述目标任务的声明式语义描述。
可选地,所述任务本体描述至少包括各子任务的执行顺序、各子任务的执行条件以及各子任务间的依赖关系。
可选地,每个子任务的子任务描述至少包括任务名称、任务标识、依赖关系、任务输入、任务输出、任务参数、分解能力、任务支持资源。
可选地,每个子任务的任务运行时描述至少包括任务标识、任务计算量、任务访存量。
可选地,每个子任务的任务周边描述至少包括任务层级、任务所需资源、任务调度策略。
可选地,所述获取模块202,具体用于获取所述目标模型的模型源代码、辅助工具代码、模型参数、输入数据。
可选地,所述拆分模块204,具体用于针对每个目标模型,根据该目标模型的拓扑结构,确定该目标模型在执行子任务时所需的各算子之间的耦合度;根据所述耦合度对所述该目标模型进行拆分,得到该目标模型的各任务单元。
可选地,所述分配模块206,具体用于针对每个任务单元,根据该任务单元执行的任务内容,以及所述任务所需资源,确定该任务单元在执行所述任务内容时的资源需求。
可选地,所述资源分配信息至少包括资源可用性评估、任务优先级、并行执行信息、资源分配策略。
可选地,所述执行模块208,具体用于根据所述声明式语义描述,确定所述各任务内容对应的程序代码;采用所述各任务单元执行所述各任务内容对应的程序代码。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的基于声明式语义的多模型工作流描述的任务执行方法。
本说明书还提供了图3所示的电子设备的示意结构图。如图3所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的基于声明式语义的多模型工作流描述的任务执行方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种基于声明式语义的多模型工作流描述的任务执行方法,其特征在于,包括:
确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;
获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;
对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;
确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;
根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
2.如权利要求1所述的方法,其特征在于,获取所述目标任务的声明式语义描述,具体包括:
获取所述目标任务的任务本体描述、各子任务的子任务描述、所述各子任务的任务运行时描述以及所述各子任务的任务周边描述,作为所述目标任务的声明式语义描述。
3.如权利要求2所述的方法,其特征在于,所述任务本体描述至少包括各子任务的执行顺序、各子任务的执行条件以及各子任务间的依赖关系。
4.如权利要求2所述的方法,其特征在于,每个子任务的子任务描述至少包括任务名称、任务标识、依赖关系、任务输入、任务输出、任务参数、分解能力、任务支持资源。
5.如权利要求2所述的方法,其特征在于,每个子任务的任务运行时描述至少包括任务标识、任务计算量、任务访存量。
6.如权利要求2所述的方法,其特征在于,每个子任务的任务周边描述至少包括任务层级、任务所需资源、任务调度策略。
7.如权利要求1所述的方法,其特征在于,获取所述目标模型的模型信息,具体包括:
获取所述目标模型的模型源代码、辅助工具代码、模型参数、输入数据。
8.如权利要求1所述的方法,其特征在于,对所述各目标模型进行拆分,得到若干任务单元,具体包括:
针对每个目标模型,根据该目标模型的拓扑结构,确定该目标模型在执行子任务时所需的各算子之间的耦合度;
根据所述耦合度对所述该目标模型进行拆分,得到该目标模型的各任务单元。
9.如权利要求6所述的方法,其特征在于,确定各任务单元在执行所述任务内容时的资源需求,具体包括:
针对每个任务单元,根据该任务单元执行的任务内容,以及所述任务所需资源,确定该任务单元在执行所述任务内容时的资源需求。
10.如权利要求1所述的方法,其特征在于,所述资源分配信息至少包括资源可用性评估、任务优先级、并行执行信息、资源分配策略。
11.如权利要求1所述的方法,其特征在于,采用所述任务各单元执行各任务内容,具体包括:
根据所述声明式语义描述,确定所述各任务内容对应的程序代码;
采用所述各任务单元执行所述各任务内容对应的程序代码。
12.一种基于声明式语义的多模型工作流描述的任务执行装置,其特征在于,包括:
确定模块,用于确定由若干子任务构成的目标任务,以及执行所述目标任务所需的各目标模型,不同目标模型用于执行不同子任务;
获取模块,用于获取所述目标任务的声明式语义描述,以及所述目标模型的模型信息;
拆分模块,用于对所述各目标模型进行拆分,得到若干任务单元,其中,不同任务单元用于执行子任务下的不同的任务内容;
分配模块,用于确定各任务单元在执行所述任务内容时的资源需求,并根据所述资源需求以及所述声明式语义描述确定所述各任务单元的资源分配信息;
执行模块,用于根据所述资源分配信息,采用所述任务各单元执行各任务内容,得到所述目标任务的执行结果。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~11任一项所述的方法。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~11任一项所述的方法。
CN202410175197.6A 2024-02-07 2024-02-07 基于声明式语义的多模型工作流描述的任务执行方法 Pending CN117724823A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410175197.6A CN117724823A (zh) 2024-02-07 2024-02-07 基于声明式语义的多模型工作流描述的任务执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410175197.6A CN117724823A (zh) 2024-02-07 2024-02-07 基于声明式语义的多模型工作流描述的任务执行方法

Publications (1)

Publication Number Publication Date
CN117724823A true CN117724823A (zh) 2024-03-19

Family

ID=90211021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410175197.6A Pending CN117724823A (zh) 2024-02-07 2024-02-07 基于声明式语义的多模型工作流描述的任务执行方法

Country Status (1)

Country Link
CN (1) CN117724823A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066240A (zh) * 2016-10-08 2017-08-18 阿里巴巴集团控股有限公司 组件功能的实现方法和装置
CN113722083A (zh) * 2020-05-25 2021-11-30 中兴通讯股份有限公司 大数据处理方法、装置、服务器及存储介质
CN116185629A (zh) * 2023-02-22 2023-05-30 之江实验室 一种任务执行的方法、装置、存储介质及电子设备
CN116225653A (zh) * 2023-03-09 2023-06-06 中国科学院软件研究所 深度学习多模型部署场景下qos感知的资源分配方法及装置
CN116383797A (zh) * 2023-05-31 2023-07-04 北京顶象技术有限公司 一种无缺口滑动验证码及其生成方法
CN116541176A (zh) * 2023-05-24 2023-08-04 中国电信股份有限公司北京研究院 算力资源分配的优化方法、优化装置、电子设备和介质
CN116701001A (zh) * 2023-08-08 2023-09-05 国网浙江省电力有限公司信息通信分公司 目标任务分配方法、装置、电子设备及存储介质
CN116880995A (zh) * 2023-09-08 2023-10-13 之江实验室 一种模型任务的执行方法、装置、存储介质及电子设备
CN117076535A (zh) * 2023-08-17 2023-11-17 安元科技股份有限公司 企业级声明式领域模型定义及存储模型转换方法及系统
CN117311998A (zh) * 2023-11-30 2023-12-29 卓世未来(天津)科技有限公司 一种大模型部署方法及系统
WO2024007849A1 (zh) * 2023-04-26 2024-01-11 之江实验室 面向智能计算的分布式训练容器调度
CN117519877A (zh) * 2023-11-15 2024-02-06 Oppo广东移动通信有限公司 快应用卡片的渲染方法、装置、存储介质及电子设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066240A (zh) * 2016-10-08 2017-08-18 阿里巴巴集团控股有限公司 组件功能的实现方法和装置
CN113722083A (zh) * 2020-05-25 2021-11-30 中兴通讯股份有限公司 大数据处理方法、装置、服务器及存储介质
CN116185629A (zh) * 2023-02-22 2023-05-30 之江实验室 一种任务执行的方法、装置、存储介质及电子设备
CN116225653A (zh) * 2023-03-09 2023-06-06 中国科学院软件研究所 深度学习多模型部署场景下qos感知的资源分配方法及装置
WO2024007849A1 (zh) * 2023-04-26 2024-01-11 之江实验室 面向智能计算的分布式训练容器调度
CN116541176A (zh) * 2023-05-24 2023-08-04 中国电信股份有限公司北京研究院 算力资源分配的优化方法、优化装置、电子设备和介质
CN116383797A (zh) * 2023-05-31 2023-07-04 北京顶象技术有限公司 一种无缺口滑动验证码及其生成方法
CN116701001A (zh) * 2023-08-08 2023-09-05 国网浙江省电力有限公司信息通信分公司 目标任务分配方法、装置、电子设备及存储介质
CN117076535A (zh) * 2023-08-17 2023-11-17 安元科技股份有限公司 企业级声明式领域模型定义及存储模型转换方法及系统
CN116880995A (zh) * 2023-09-08 2023-10-13 之江实验室 一种模型任务的执行方法、装置、存储介质及电子设备
CN117519877A (zh) * 2023-11-15 2024-02-06 Oppo广东移动通信有限公司 快应用卡片的渲染方法、装置、存储介质及电子设备
CN117311998A (zh) * 2023-11-30 2023-12-29 卓世未来(天津)科技有限公司 一种大模型部署方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
丁刚毅等: "《OpenHarmony操作系统》", 30 November 2022, 北京理工大学出版社, pages: 86 - 87 *
潘洪军: "一个面向对象语言的形式语义模型", 通化师范学院学报, no. 06, 31 December 1998 (1998-12-31) *

Similar Documents

Publication Publication Date Title
US7689998B1 (en) Systems and methods that manage processing resources
Posse et al. An executable formal semantics for UML-RT
CN112068957B (zh) 资源分配方法、装置、计算机设备及存储介质
Lee et al. A systematic design space exploration of MPSoC based on synchronous data flow specification
Cannella et al. Adaptivity support for MPSoCs based on process migration in polyhedral process networks
JP2024536659A (ja) タスク実行方法、装置、記憶媒体及び電子デバイス
CN114416360A (zh) 资源分配方法、装置及物联网系统
CN116467061B (zh) 一种任务执行的方法、装置、存储介质及电子设备
US12088451B2 (en) Cross-platform programmable network communication
CN116151363B (zh) 分布式强化学习系统
CN110750359B (zh) 硬件资源配置方法、装置、云侧设备和存储介质
CN116011562A (zh) 算子处理方法及算子处理装置、电子设备和可读存储介质
Maruf et al. Requirements-preserving design automation for multiprocessor embedded system applications
CN117724823A (zh) 基于声明式语义的多模型工作流描述的任务执行方法
CN116204324A (zh) 一种任务执行的方法、装置、存储介质及电子设备
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
Kreku et al. Automatic workload generation for system-level exploration based on modified GCC compiler
Jaber High-Level soc modeling and performance estimation applied to a multi-core implementation of LTE enodeb physical layer
CN117170669B (zh) 一种基于前端高低代码融合的页面展示方法
CN115051980B (zh) 一种HTCondor超算网格文件传输方法及系统
Cera Providing adaptability to MPI applications on current parallel architectures
Wong et al. Requirements for static task scheduling in real time embedded systems
CN118939275B (zh) 分类参数的编译方法、调用方法、装置、设备和程序产品
WO2024060256A1 (en) Self-evolving and multi-versioning code
Lumpp Software Optimization and Orchestration for Heterogeneous and Distributed Architectures

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