CN113127203A - 面向云边计算的深度学习分布式编译器及构造方法 - Google Patents

面向云边计算的深度学习分布式编译器及构造方法 Download PDF

Info

Publication number
CN113127203A
CN113127203A CN202110449381.1A CN202110449381A CN113127203A CN 113127203 A CN113127203 A CN 113127203A CN 202110449381 A CN202110449381 A CN 202110449381A CN 113127203 A CN113127203 A CN 113127203A
Authority
CN
China
Prior art keywords
model
deep learning
scheduling
compiler
compiling
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
CN202110449381.1A
Other languages
English (en)
Other versions
CN113127203B (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202110449381.1A priority Critical patent/CN113127203B/zh
Publication of CN113127203A publication Critical patent/CN113127203A/zh
Application granted granted Critical
Publication of CN113127203B publication Critical patent/CN113127203B/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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/505Allocation 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 the load
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Abstract

本发明公开了一种面向云边计算的深度学习分布式编译器及构造方法,编译器包括模型编译框架和模型调度框架;模型编译框架通过容器化深度学习编译器和Kubernetes容器编排系统,完成分布式编译多模型任务的工作;模型编译框架能快速构建深度学习分布式编译器,充分利用服务器集群的优势来解决突发的大量编译需求,克服了深度学习编译器无法分布式编译的不足;模型调度框架对模型编译过程进行资源分析,获取模型运行最高效的资源组合,并设计了Distributed‑DRF调度算法来指导调度中间件来进行调度决策,提高了资源分配的公平性和模型调度的准确性。

Description

面向云边计算的深度学习分布式编译器及构造方法
技术领域
本发明属于深度学习编译器和边缘计算领域,特别涉及一种面向云边计算的深度学习分布式编译器及构造方法。
背景技术
随着边缘计算的发展,云边协同的时代已经到来。人们已经达成了某种共识:那些在边缘设备(edge device)与物联网设备(IoT device)上实现了真正的智能的公司将定义计算的未来。深度学习模型在边缘设备上的应用非常广泛,如手机上的人脸识别和车载系统的自动驾驶等等。深度学习编译器通过编译优化技术,能把各种深度学习模型编译部署到边缘设备上高效地运行,极大地缩短了模型的推理时间。但深度学习编译器在编译优化时,是一个典型的计算密集型应用,会占用大量的CPU资源。通常,深度学习编译器会在服务器端进行编译优化工作,在边缘设备端进行模型部署运行工作。
现如今的深度学习编译器只能在单台服务器上运行,不支持分布式。而由于编译优化是一个非常消耗资源的过程,当面临大量的编译需求时,单台服务器将无法满足。如果要在源码上对深度学习编译器进行修改,研究员需要花费巨大的工作量去阅读和理解其源码,并进行长时间的调试才能完成。如何将深度学习编译器快速构建成分布式应用,充分利用服务器集群的优势来解决大量的编译需求,是本发明面临的挑战之一。
不同的模型所需要的运行资源也不相同。分配大量的资源给资源需求小的模型,会造成资源的浪费。分配不足的资源给资源需求大的模型,会造成模型运行时间过长,甚至运行失败的可能。在资源有限的场景下,模型之间的资源竞争也是影响模型运行时间的一个很重要因素。当深度学习分布式编译器编译好模型后,如何给编译好的模型公平合理地分配资源,并将模型调度到合适的终端设备上运行,也是一个挑战。
DRF(Dominant Resource Fairness)调度算法是一种针对多种资源的一般化的max-min算法。DRF调度算法有如下优点:1)DRF调度算法鼓励用户共享资源,通过确保如果资源在用户之间平均分配,则没有用户会过得更好。2)DRF调度算法是策略证明,因为用户不能通过谎报需求来增加分配。3)DRF是无嫉妒的,因为没有用户愿意将它的分配与另一个用户的分配进行交换。4)DRF分配是帕雷托有效的,因为在不减少另一个用户的分配的情况下,不可能改善一个用户的分配。DRF调度算法在进行资源分配时,把不同设备上的资源当作了一个整体进行考虑,并没有考虑分布式场景。而且DRF调度算法还没有对模型任务的资源分配进行实时跟踪,这会导致模型任务的DS不准确,不能如实地反应模型任务之间的资源需求关系,从而导致资源分配的不公平和模型调度的不合理。此外,DRF调度算法没有对设备的资源使用情况进行实时跟踪,这会导致模型运行完释放后的资源没有得到充分的利用,造成资源的浪费。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种面向云边计算的深度学习分布式编译器及构造方法,能分布式地完成大量的多种模型编译任务,并对编译好的模型进行公平合理的调度,达到降低等待时间,提高系统资源利用率的目的。
为了达到上述目的,本发明采用以下技术方案:
本发明一方面提供了一种面向云边计算的深度学习分布式编译器,包括模型编译框架和模型调度框架;
所述模型编译框架通过容器化深度学习编译器和Kubernetes容器编排系统,完成分布式编译多模型任务的工作;所述模型编译框架用于速构建成深度学习分布式编译器,利用服务器集群的优势来解决大量的编译需求;
所述模型调度框架对模型编译过程进行资源分析,获取模型运行最高效的资源组合,并设计了Distributed-DRF调度算法来指导调度中间件来进行调度决策;所述Distributed-DRF调度算法用于实时计算模型任务的DS并通过DS作为资源分配的依据,提高了资源分配的公平性,并且Distributed-DRF调度算法还用于实时监控设备的资源值。
作为优选的技术方案,所述模型编译框架由运行在Kubernetes上的深度学习编译器容器组成,模型编译框架的工作是对来自不同深度学习框架的各种深度学习模型进行针对特定目标设备的编译优化;所述模型编译框架中有若干个Work Node,Work Node对应着集群上的服务器,每个Work Node中运行着若干个Pod,Pod里面运行的是容器化的深度学习编译器实例,承载着具体的编译优化任务。
作为优选的技术方案,所述模型编译框架选择深度学习编译器TVM进行容器化,并分层设计TVM的镜像,TVM的镜像分为两大层:可写层和只读层,可写层在创建深度学习编译器容器时形成,用于存储深度学习编译器运行时产生的数据;只读层是通过编写DockerFile,并使用DockerFile生成镜像时形成;只读层是自下而上建立的,只读层的最底层是bootfs镜像层,bootfs镜像层是负责镜像启动,bootfs镜像层上一层是rootfs BasicImage操作系统镜像层;
编译器镜像层用于将TVM优化后的模型,编译成能运行到相应边缘设备端的底层代码,编译器镜像层往上一层是TVM镜像层,TVM镜像层用于对来自各种深度学习框架的深度学习模型进行优化,并把优化后的模型传递到编译层编译,TVM镜像层上一层是只读层的最顶层深度学习框架层,深度学习框架层构建了各种深度学习框架,用于接收来自各种深度学习框架的深度学习模型,并把模型传递到TVM镜像层优化。
作为优选的技术方案,所述模型调度框架包括TVM-Service、多种模型任务等待队列、调度器、Kubectl和各种终端设备;所述模型调度框架的工作是根据模型编译框架提供的模型负载需求数据以及Kubectl收集到的目标终端设备的资源数据,采用智能的调度算法为模型公平地分配资源,并将模型调度到合适的终端运行,降低平均等待时间。
作为优选的技术方案,所述TVM-Service连接了模型编译框架和模型调度框架,为Pod提供了一个统一的固定的地址入口,模型调度框架只需要通过固定的IP地址和端口号就能访问TVM-Service,从而访问模型编译框架。
作为优选的技术方案,所述多种模型任务等待队列是由各种模型任务组成,模型进入模型任务等待队列之前都要经历分类和容器化,同种模型归属于同种模型任务,每种模型任务中存放的是若干个容器化的模型以及模型相应的负载需求数据,模型任务中容器化的模型等待调度器把它们调度到合适的终端设备运行。
作为优选的技术方案,所述调度器处于多种模型任务等待队列和终端设备之间,调度器以一种Kubernetes中间件的方式进行工作,一开始,调度器会通过Kubectl收集终端设备的资源数据,以及从多种模型任务等待队列中提取模型的负载需求数据,调度器会依据终端设备的资源数据和模型的负载需求数据,通过智能调度算法给模型容器分配资源,并调度到合适的终端设备上运行。
作为优选的技术方案,所述Distributed-DRF调度算法包括下述步骤:
通过调度中间件,获取实时的终端设备资源值和模型任务分配的资源值;
计算每个模型任务的DS;
挑选DS最小的模型任务,并查找终端设备中是否有满足模型任务资源需求的设备;
若找到,则将模型调度到该终端设备上运行;
若没找到,则模型将等待终端设备资源释放后再进行调度。
本发明另一方面提供了一种面向云边计算的深度学习分布式编译器的构造方法,应用于所述的面向云边计算的深度学习分布式编译器,包括下述步骤:
S1、是对来自不同深度学习框架的各种模型进行编译;
S2、是通过调整编译策略,提取深度学习模型在目标设备上运行最有效率的负载需求值;
S3、将编译好的模型容器化,并把容器化的模型以及模型相应负载需求值压入模型任务等待队列中;
S4、调度器通过调度算法计算模型任务的优先级,并将优先级最高的模型容器调度到合适的终端设备上运行。
作为优选的技术方案,步骤S1-S3的工作由模型编译框架完成,步骤S4的工作由模型调度框架完成;
步骤S4的工作分为内层和外层循环两部分,内层循环从优先级列表中选取优先级最高的模型任务,并判断模型任务中是否具有等待调度的模型,如果有,则将模型导出并检测终端设备资源值是否满足模型运行需求,如果满足则将模型以容器的形式调度到终端设备上运行,如果模型任务中没有等待调度的模型或者终端设备的资源值无法满足模型运行需求,则将模型任务移出优先级队列中,内层循环继续从优先级列表中选取优先级最高的模型任务;如果优先级列表中没有模型任务或者模型成功调度到终端设备,内层循环将会退出到外层循环,外层循环判断模型任务等待队列中是否具有模型任务,如果没有则工作流结束,此外,外层循环在一个调度完成后,会重新计算优先级列表的优先级。
本发明与现有技术相比,具有如下优点和有益效果:
(1)针对云端编译优化深度学习模型,边缘设备端调度运行的云边协同场景,本发明提出了模型编译框架和模型调度框架的构造方法,两个框架相结合组成深度学习分布式编译器。
(2)与现有的深度学习编译器相比,深度学习分布式编译器提出了容器化深度学习编译器的方法并通过Kubernetes容器编排系统,能快速地将深度学习编译器构建成分布式应用并处理大量的编译需求,完成分布式编译多种模型任务的工作。
(3)本发明设计了一个调度器作为中间件来指导模型调度框架的调度,并改进了DRF调度算法没有考虑分布式场景和没有实时监控资源的问题,提出了Distributed-DRF调度算法,Distributed-DRF调度算法提高了DRF调度算法的公平性和调度的合理性和调度的合理性。
附图说明
图1是本发明实施例面向云边计算的深度学习分布式编译器的结构示意图;
图2为本发明实施例深度学习编译器镜像分层存储结构;
图3为本发明实施例面向云边计算的深度学习分布式编译器的工作流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例
如图1所示,本实施例面向云边计算的深度学习分布式编译器总体架构由两部分组成,分别是模型编译框架和模型调度框架。
所述模型编译框架通过容器化深度学习编译器和Kubernetes容器编排系统,完成分布式编译多模型任务的工作;所述模型编译框架用于速构建成深度学习分布式编译器,利用服务器集群的优势来解决大量的编译需求;
所述模型调度框架对模型编译过程进行资源分析,获取模型运行最高效的资源组合,并设计了Distributed-DRF调度算法来指导调度中间件来进行调度决策;所述Distributed-DRF调度算法用于实时计算模型任务的DS并通过DS作为资源分配的依据,提高了资源分配的公平性,并且Distributed-DRF调度算法还用于实时监控设备的资源值,提高了模型调度的准确性。
如图1的左半部分所示,模型编译框架由运行在Kubernetes上的深度学习编译器容器组成。模型编译框架的工作是对来自不同深度学习框架的各种深度学习模型进行针对特定目标设备的编译优化。模型编译框架中有若干个Work Node,Work Node对应着集群上的服务器。每个Work Node中运行着若干个Pod。Pod里面运行的是容器化的深度学习编译器实例,承载着具体的编译优化任务。本发明通过调整深度学习编译器的编译策略,在编译过程中提取模型运行时的负载信息,找到模型在目标设备上运行最高效的负载需求,并把它作为模型调度框架进行模型调度的依据。
如图1的右半部分所示,模型调度框架由TVM-Service、多种模型任务等待队列、调度器、Kubectl和各种终端设备组成。模型调度框架的工作是根据模型编译框架提供的模型负载需求数据以及Kubectl收集到的目标终端设备的资源数据,采用智能的调度算法为模型公平地分配资源,并将模型调度到合适的终端运行,降低平均等待时间,提高资源利用率。
图2是深度学习编译器镜像的分层存储结构,深度学习编译器镜像分为两大层:可写层和只读层。可写层在创建深度学习编译器容器时形成,用于存储深度学习编译器运行时产生的数据。只读层是本发明通过编写DockerFile,并使用DockerFile生成镜像时形成。只读层是自下而上建立的。只读层的最底层是bootfs镜像层,bootfs镜像层是负责镜像启动。bootfs镜像层上一层是rootfs Basic Image操作系统镜像层。本发明采用了ubuntu:16。04的镜像作操作系统镜像。采用ubuntu:16。04的镜像会便于安装TVM的一些软件依赖。rootfs Basic Image操作系统镜像层上一层是编译器镜像层,主要安装了LLVM、OpenCL、Metal和CUDA。编译器镜像层的主要功能是将TVM优化后的模型,编译成能运行到相应边缘设备端的底层代码。编译器镜像层往上一层是TVM镜像层,TVM镜像层主要的功能是对来自各种深度学习框架的深度学习模型进行优化,并把优化后的模型传递到编译层编译。TVM镜像层上一层是只读层的最顶层深度学习框架层。深度学习框架层构建了各种深度学习框架,用于接收来自各种深度学习框架的深度学习模型,并把模型传递到TVM镜像层优化。本发明根据Dokcerfile创建TVM容器镜像,并测试它的可用性。测试完后,本发明把它上传到私有镜像仓库中,便于在创建Pod时拉取相关镜像。
进一步的,所述模型调度框架包括TVM-Service、多种模型任务等待队列、调度器、Kubectl和各种终端设备;所述模型调度框架的工作是根据模型编译框架提供的模型负载需求数据以及Kubectl收集到的目标终端设备的资源数据,采用智能的调度算法为模型公平地分配资源,并将模型调度到合适的终端运行,降低平均等待时间。
更进一步的,所述TVM-Service连接了模型编译框架和模型调度框架,为Pod提供了一个统一的固定的地址入口,模型调度框架只需要通过固定的IP地址和端口号就能访问TVM-Service,从而访问模型编译框架。
更进一步的,所述多种模型任务等待队列是由各种模型任务组成,模型进入模型任务等待队列之前都要经历分类和容器化,同种模型归属于同种模型任务,每种模型任务中存放的是若干个容器化的模型以及模型相应的负载需求数据,模型任务中容器化的模型等待调度器把它们调度到合适的终端设备运行。
更进一步的,所述调度器处于多种模型任务等待队列和终端设备之间,调度器以一种Kubernetes中间件的方式进行工作,一开始,调度器会通过Kubectl收集终端设备的资源数据,以及从多种模型任务等待队列中提取模型的负载需求数据,调度器会依据终端设备的资源数据和模型的负载需求数据,通过智能调度算法给模型容器分配资源,并调度到合适的终端设备上运行。
更进一步的,所述Distributed-DRF调度算法包括下述步骤:
通过调度中间件,获取实时的终端设备资源值和模型任务分配的资源值;
计算每个模型任务的DS;
挑选DS最小的模型任务,并查找终端设备中是否有满足模型任务资源需求的设备;
若找到,则将模型调度到该终端设备上运行;
若没找到,则模型将等待终端设备资源释放后再进行调度。
如图3所示,本实施例提供了一种面向云边计算的深度学习分布式编译器的构造方法,包括下述步骤:
S1、是对来自不同深度学习框架的各种模型进行编译;
S2、是通过调整编译策略,提取深度学习模型在目标设备上运行最有效率的负载需求值;
S3、将编译好的模型容器化,并把容器化的模型以及模型相应负载需求值压入模型任务等待队列中;
S4、调度器通过调度算法计算模型任务的优先级,并将优先级最高的模型容器调度到合适的终端设备上运行。
进一步的,步骤S1-S3的工作由模型编译框架完成,步骤S4的工作由模型调度框架完成;
步骤S4的工作分为内层和外层循环两部分,内层循环从优先级列表中选取优先级最高的模型任务,并判断模型任务中是否具有等待调度的模型,如果有,则将模型导出并检测终端设备资源值是否满足模型运行需求,如果满足则将模型以容器的形式调度到终端设备上运行,如果模型任务中没有等待调度的模型或者终端设备的资源值无法满足模型运行需求,则将模型任务移出优先级队列中,内层循环继续从优先级列表中选取优先级最高的模型任务;如果优先级列表中没有模型任务或者模型成功调度到终端设备,内层循环将会退出到外层循环,外层循环判断模型任务等待队列中是否具有模型任务,如果没有则工作流结束,此外,外层循环在一个调度完成后,会重新计算优先级列表的优先级。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.面向云边计算的深度学习分布式编译器,其特征在于,包括模型编译框架和模型调度框架;
所述模型编译框架通过容器化深度学习编译器和Kubernetes容器编排系统,完成分布式编译多模型任务的工作;所述模型编译框架用于速构建成深度学习分布式编译器,利用服务器集群的优势来解决大量的编译需求;
所述模型调度框架对模型编译过程进行资源分析,获取模型运行最高效的资源组合,并设计了Distributed-DRF调度算法来指导调度中间件来进行调度决策;所述Distributed-DRF调度算法用于实时计算模型任务的DS并通过DS作为资源分配的依据,提高了资源分配的公平性,并且Distributed-DRF调度算法还用于实时监控设备的资源值。
2.根据权利要求1所述面向云边计算的深度学习分布式编译器,其特征在于,所述模型编译框架由运行在Kubernetes上的深度学习编译器容器组成,模型编译框架的工作是对来自不同深度学习框架的各种深度学习模型进行针对特定目标设备的编译优化;所述模型编译框架中有若干个Work Node,Work Node对应着集群上的服务器,每个Work Node中运行着若干个Pod,Pod里面运行的是容器化的深度学习编译器实例,承载着具体的编译优化任务。
3.根据权利要求1所述面向云边计算的深度学习分布式编译器,其特征在于,所述模型编译框架选择深度学习编译器TVM进行容器化,并分层设计TVM的镜像,TVM的镜像分为两大层:可写层和只读层,可写层在创建深度学习编译器容器时形成,用于存储深度学习编译器运行时产生的数据;只读层是通过编写DockerFile,并使用DockerFile生成镜像时形成;只读层是自下而上建立的,只读层的最底层是bootfs镜像层,bootfs镜像层是负责镜像启动,bootfs镜像层上一层是rootfs Basic Image操作系统镜像层;
编译器镜像层用于将TVM优化后的模型,编译成能运行到相应边缘设备端的底层代码,编译器镜像层往上一层是TVM镜像层,TVM镜像层用于对来自各种深度学习框架的深度学习模型进行优化,并把优化后的模型传递到编译层编译,TVM镜像层上一层是只读层的最顶层深度学习框架层,深度学习框架层构建了各种深度学习框架,用于接收来自各种深度学习框架的深度学习模型,并把模型传递到TVM镜像层优化。
4.根据权利要求1所述面向云边计算的深度学习分布式编译器,其特征在于,所述模型调度框架包括TVM-Service、多种模型任务等待队列、调度器、Kubectl和各种终端设备;所述模型调度框架的工作是根据模型编译框架提供的模型负载需求数据以及Kubectl收集到的目标终端设备的资源数据,采用智能的调度算法为模型公平地分配资源,并将模型调度到合适的终端运行,降低平均等待时间。
5.根据权利要求4所述面向云边计算的深度学习分布式编译器,其特征在于,所述TVM-Service连接了模型编译框架和模型调度框架,为Pod提供了一个统一的固定的地址入口,模型调度框架只需要通过固定的IP地址和端口号就能访问TVM-Service,从而访问模型编译框架。
6.根据权利要求4所述面向云边计算的深度学习分布式编译器,其特征在于,所述多种模型任务等待队列是由各种模型任务组成,模型进入模型任务等待队列之前都要经历分类和容器化,同种模型归属于同种模型任务,每种模型任务中存放的是若干个容器化的模型以及模型相应的负载需求数据,模型任务中容器化的模型等待调度器把它们调度到合适的终端设备运行。
7.根据权利要求4所述面向云边计算的深度学习分布式编译器,其特征在于,所述调度器处于多种模型任务等待队列和终端设备之间,调度器以一种Kubernetes中间件的方式进行工作,一开始,调度器会通过Kubectl收集终端设备的资源数据,以及从多种模型任务等待队列中提取模型的负载需求数据,调度器会依据终端设备的资源数据和模型的负载需求数据,通过智能调度算法给模型容器分配资源,并调度到合适的终端设备上运行。
8.根据权利要求1所述面向云边计算的深度学习分布式编译器,其特征在于,所述Distributed-DRF调度算法包括下述步骤:
通过调度中间件,获取实时的终端设备资源值和模型任务分配的资源值;
计算每个模型任务的DS;
挑选DS最小的模型任务,并查找终端设备中是否有满足模型任务资源需求的设备;
若找到,则将模型调度到该终端设备上运行;
若没找到,则模型将等待终端设备资源释放后再进行调度。
9.面向云边计算的深度学习分布式编译器的构造方法,其特征在于,应用于权利要求1-8中任一项所述的面向云边计算的深度学习分布式编译器,包括下述步骤:
S1、是对来自不同深度学习框架的各种模型进行编译;
S2、是通过调整编译策略,提取深度学习模型在目标设备上运行最有效率的负载需求值;
S3、将编译好的模型容器化,并把容器化的模型以及模型相应负载需求值压入模型任务等待队列中;
S4、调度器通过调度算法计算模型任务的优先级,并将优先级最高的模型容器调度到合适的终端设备上运行。
10.根据权权利要求9所述面向云边计算的深度学习分布式编译器的构造方法,其特征在于,步骤S1-S3的工作由模型编译框架完成,步骤S4的工作由模型调度框架完成;
步骤S4的工作分为内层和外层循环两部分,内层循环从优先级列表中选取优先级最高的模型任务,并判断模型任务中是否具有等待调度的模型,如果有,则将模型导出并检测终端设备资源值是否满足模型运行需求,如果满足则将模型以容器的形式调度到终端设备上运行,如果模型任务中没有等待调度的模型或者终端设备的资源值无法满足模型运行需求,则将模型任务移出优先级队列中,内层循环继续从优先级列表中选取优先级最高的模型任务;如果优先级列表中没有模型任务或者模型成功调度到终端设备,内层循环将会退出到外层循环,外层循环判断模型任务等待队列中是否具有模型任务,如果没有则工作流结束,此外,外层循环在一个调度完成后,会重新计算优先级列表的优先级。
CN202110449381.1A 2021-04-25 2021-04-25 面向云边计算的深度学习分布式编译器及构造方法 Active CN113127203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110449381.1A CN113127203B (zh) 2021-04-25 2021-04-25 面向云边计算的深度学习分布式编译器及构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110449381.1A CN113127203B (zh) 2021-04-25 2021-04-25 面向云边计算的深度学习分布式编译器及构造方法

Publications (2)

Publication Number Publication Date
CN113127203A true CN113127203A (zh) 2021-07-16
CN113127203B CN113127203B (zh) 2022-06-14

Family

ID=76780387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110449381.1A Active CN113127203B (zh) 2021-04-25 2021-04-25 面向云边计算的深度学习分布式编译器及构造方法

Country Status (1)

Country Link
CN (1) CN113127203B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419880A (zh) * 2021-07-19 2021-09-21 北京百度网讯科技有限公司 云手机根权限获取方法、相关装置及计算机程序产品
CN113626035A (zh) * 2021-07-23 2021-11-09 南方科技大学 基于tvm面向risc-v设备的神经网络编译方法
TWI823408B (zh) * 2022-05-27 2023-11-21 國立成功大學 機械設備雲端控制系統

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017133351A1 (zh) * 2016-02-05 2017-08-10 华为技术有限公司 一种资源分配方法及资源管理器
CN109471725A (zh) * 2018-10-24 2019-03-15 新华三大数据技术有限公司 资源分配方法、装置和服务器
CN110489126A (zh) * 2019-08-08 2019-11-22 腾讯科技(深圳)有限公司 编译任务的执行方法和装置、存储介质及电子装置
CN111026397A (zh) * 2019-10-22 2020-04-17 烽火通信科技股份有限公司 一种rpm包分布式编译方法及装置
CN111061487A (zh) * 2019-12-16 2020-04-24 厦门市美亚柏科信息股份有限公司 一种基于容器的负载均衡分布式编译系统和方法
US20200310775A1 (en) * 2019-03-27 2020-10-01 Wipro Limited Method for accessing container images in a distributed ledger network environment
CN111966500A (zh) * 2020-09-07 2020-11-20 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质
CN112099918A (zh) * 2019-09-13 2020-12-18 谷歌有限责任公司 容器化环境中的集群的实时迁移

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017133351A1 (zh) * 2016-02-05 2017-08-10 华为技术有限公司 一种资源分配方法及资源管理器
CN109471725A (zh) * 2018-10-24 2019-03-15 新华三大数据技术有限公司 资源分配方法、装置和服务器
US20200310775A1 (en) * 2019-03-27 2020-10-01 Wipro Limited Method for accessing container images in a distributed ledger network environment
CN110489126A (zh) * 2019-08-08 2019-11-22 腾讯科技(深圳)有限公司 编译任务的执行方法和装置、存储介质及电子装置
CN112099918A (zh) * 2019-09-13 2020-12-18 谷歌有限责任公司 容器化环境中的集群的实时迁移
CA3092364A1 (en) * 2019-09-13 2021-03-13 Google Llc Live migration of clusters in containerized environments
CN111026397A (zh) * 2019-10-22 2020-04-17 烽火通信科技股份有限公司 一种rpm包分布式编译方法及装置
CN111061487A (zh) * 2019-12-16 2020-04-24 厦门市美亚柏科信息股份有限公司 一种基于容器的负载均衡分布式编译系统和方法
CN111966500A (zh) * 2020-09-07 2020-11-20 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张朝滨: "基于Ninja的分布式编译系统", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊)》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419880A (zh) * 2021-07-19 2021-09-21 北京百度网讯科技有限公司 云手机根权限获取方法、相关装置及计算机程序产品
CN113419880B (zh) * 2021-07-19 2024-04-09 北京百度网讯科技有限公司 云手机根权限获取方法、相关装置及计算机程序产品
CN113626035A (zh) * 2021-07-23 2021-11-09 南方科技大学 基于tvm面向risc-v设备的神经网络编译方法
CN113626035B (zh) * 2021-07-23 2022-11-11 南方科技大学 基于tvm面向risc-v设备的神经网络编译方法
TWI823408B (zh) * 2022-05-27 2023-11-21 國立成功大學 機械設備雲端控制系統

Also Published As

Publication number Publication date
CN113127203B (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
CN113127203B (zh) 面向云边计算的深度学习分布式编译器及构造方法
CN111427681B (zh) 边缘计算中基于资源监控的实时任务匹配调度系统和方法
CN111052149B (zh) 用于确定网络中的内存需求的方法和装置
KR102257028B1 (ko) 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
Pilla et al. A hierarchical approach for load balancing on parallel multi-core systems
CN107038070B (zh) 一种云环境下执行可靠性感知的并行任务调度方法
CN111738434A (zh) 在异构处理单元上执行深度神经网络的方法
Tang et al. A container based edge offloading framework for autonomous driving
CN114915629A (zh) 信息处理方法、装置、系统、电子设备及存储介质
US20130268941A1 (en) Determining an allocation of resources to assign to jobs of a program
CN113110914A (zh) 一种基于微服务架构的物联网平台构建方法
Takeda et al. Sensory uncertainty field for mobile robot navigation
CN114841345A (zh) 一种基于深度学习算法的分布式计算平台及其应用
CN113010598A (zh) 面向遥感大数据处理的动态自适应分布式协同工作流系统
Karimian-Aliabadi et al. Analytical composite performance models for big data applications
CN115829006A (zh) 神经网络模型的编译方法、装置、电子设备和存储介质
Chen et al. Task partitioning and offloading in IoT cloud-edge collaborative computing framework: a survey
Feljan et al. Task allocation optimization for multicore embedded systems
Pugliese et al. Modeling and supporting grid scheduling
Liu et al. Reliability modelling and optimization for microservice‐based cloud application using multi‐agent system
Wu et al. Intelligent fitting global real‐time task scheduling strategy for high‐performance multi‐core systems
Qiao et al. Analysis of Evolutionary Model of DIKW Based on Cloud Resource Allocation Management
CN113010296B (zh) 基于形式化模型的任务解析与资源分配方法及系统
CN106844024B (zh) 一种自学习运行时间预测模型的gpu/cpu调度方法及系统
EP4189542A1 (en) Sharing of compute resources between the virtualized radio access network (vran) and other workloads

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