掌桥专利:专业的专利平台
掌桥专利
首页

基于容器的物联网平台GPU虚拟化控制系统

文献发布时间:2024-04-18 20:01:55


基于容器的物联网平台GPU虚拟化控制系统

技术领域

本发明涉及物联网控制的领域,尤其涉及基于容器的物联网平台GPU虚拟化控制系统。

背景技术

随着物联网的深度学习应用发展,物联网平台集成越来越多的深度学习算法。一般而言,深度学习算法的运行伴随大量矩阵和张量计算,需要图形处理单元GPU进行并行加速。目前主要采用物理GPU作为物联网平台执行深度学习任务的调度单位。而采用物理GPU作为任务调度单位可能导致计算资源浪费,不同任务之间的计算负载不平衡,以及导致不同任务之间的相互干扰;同时,物理GPU数量限制了任务的并行度和可扩展性,也增加了物联网平台的系统部署和维护的复杂性。

发明内容

本发明的目的在于提供基于容器的物联网平台GPU虚拟化控制方法和系统,其将每个深度学习任务封装为一个独立容器,以实现不同深度学习任务的隔离和独立资源管理,每个独立容器包含执行深度学习任务所需的深度学习应用程序和依赖项;还对物联网平台的GPU资源进行虚拟化管理,并利用封装库和动态链接与GPU驱动程序进行交互,劫持容器内应用程序的GPU资源调用,限制容器对GPU和显示内存的使用,实现对GPU算力和显示内存的上限隔离,防止不同深度学习任务之间相互干扰;将容器加载到能够调用GPU资源的主机设备上,并在容器启动时分配相应的GPU资源,能够避免GPU计算资源浪费,实现任务间的计算负载均衡,防止任务间的相互干扰,改善物联网平台执行任务的并行度和可扩展性,降低物联网平台的系统部署和维护难度。

本发明是通过以下技术方案实现:

基于容器的物联网平台GPU虚拟化控制方法,包括:

获取物联网平台的工作日志,对所述工作日志进行分析,得到所述物联网平台的深度学习任务信息;对深度学习任务的依赖项进行提取,构建依赖集;基于所述深度学习任务信息和依赖集,将所述物联网平台的深度学习任务封装成独立容器;

对所述独立容器进行分析,确定所述独立容器内部的应用程序的运行进程信息;基于所述运行进程信息,调整所述物联网平台的GPU调用策略,以此确定所述应用程序允许调用的GPU资源;

基于所述物联网平台下属所有主机设备的运行状态,从中选择能够调用所述GPU资源的一个主机设备;将所述独立容器加载至选择的主机设备,并当所述独立容启动后将所述GPU资源分配给所述主机设备;再基于所述独立容器的任务处理结果,调整所述主机设备对所述GPU资源的使用状态。

可选地,获取物联网平台的工作日志,对所述工作日志进行分析,得到所述物联网平台的深度学习任务信息;对深度学习任务的依赖项进行提取,构建依赖集;基于所述深度学习任务信息和依赖集,将所述物联网平台的深度学习任务封装成独立容器,包括:

获取物联网平台与用户终端的信息交互日志,对所述信息交互日志进行交互信息类型的识别处理,得到所述物联网平台接收到所述用户终端的深度学习任务信息;

对深度学习任务的依赖项进行提取,构建依赖集;基于所述深度学习任务的模型架构和数据集大小以及所述依赖集,将所述深度学习任务封装成独立容器,并对所述独立容器进行标识,以此生成所述独立容器在所述物联网平台的容器位置信息。

可选地,对所述独立容器进行分析,确定所述独立容器内部的应用程序的运行进程信息;基于所述运行进程信息,调整所述物联网平台的GPU调用策略,以此确定所述应用程序允许调用的GPU资源,包括:

对所述独立容器内部的应用程序的程序运行日志进行分析,确定所述应用程序处理所述深度学习任务过程中的运行进程信息;其中,所述运行进程信息包括所述应用程序处理所述深度学习任务过程中每个处理环节所需使用的GPU运算资源和显示内存空间大小;

指示所述物联网平台的GPU驱动程序与所述独立容器进行交互,使得所述GPU驱动程序劫持所述独立容器内部的应用程序的GPU调用权限;再基于所述运行进程信息,调整所述GPU驱动程序在自身不同处理环节中对GPU运算资源和显示内存空间调用状态,以此确定所述GPU驱动程序允许调用的GPU运算资源和显示内存空间大小。

可选地,基于所述物联网平台下属所有主机设备的运行状态,从中选择能够调用所述GPU资源的一个主机设备;将所述独立容器加载至选择的主机设备,并当所述独立容启动后将所述GPU资源分配给所述主机设备;再基于所述独立容器的任务处理结果,调整所述主机设备对所述GPU资源的使用状态,包括:

获取所述物联网平台下属所有主机设备各自的待处理数据量和平均数据处理速度,以此估计每个主机设备完成自身待处理数据的所需耗时,并将具有最小所需耗时的主机设备选择作为能够调用所述GPU资源的主机设备;

基于选择的主机设备在物联网所处的节点位置信息,将所述独立容器加载至选择的主机设备,并当所述独立容器启动后,将相应的GPU运算资源和显示内存空间分配给所述主机设备;

判断所述独立容器是否完整输出所述深度学习任务的任务处理结果,若否,则保持所述主机设备对当前被分配的GPU运算资源和显示内存空间的使用状态不变;若否,则指示所述主机设备释放当前被分配的GPU运算资源和显示内存空间。

基于容器的物联网平台GPU虚拟化控制系统,包括:

深度学习任务信息生成模块,用于获取物联网平台的工作日志,对所述工作日志进行分析,得到所述物联网平台的深度学习任务信息;以及对深度学习任务的依赖项进行提取,构建依赖集;

独立容器封装模块,用于基于所述深度学习任务信息和依赖集,将所述物联网平台的深度学习任务封装成独立容器;

可调用GPU资源确定模块,用于对所述独立容器进行分析,确定所述独立容器内部的应用程序的运行进程信息;基于所述运行进程信息,调整所述物联网平台的GPU调用策略,以此确定所述应用程序允许调用的GPU资源;

主机设备选择模块,用于基于所述物联网平台下属所有主机设备的运行状态,从中选择能够调用所述GPU资源的一个主机设备;

独立容器加载与资源分配模块,用于将所述独立容器加载至选择的主机设备,并当所述独立容启动后将所述GPU资源分配给所述主机设备;

GPU资源使用变更模块,用于基于所述独立容器的任务处理结果,调整所述主机设备对所述GPU资源的使用状态。

可选地,所述深度学习任务信息生成模块用于获取物联网平台的工作日志,对所述工作日志进行分析,得到所述物联网平台的深度学习任务信息;以及对深度学习任务的依赖项进行提取,构建依赖集,包括:

获取物联网平台与用户终端的信息交互日志,对所述信息交互日志进行交互信息类型的识别处理,得到所述物联网平台接收到所述用户终端的深度学习任务信息;以及对深度学习任务的依赖项进行提取,构建依赖集;

所述独立容器封装模块用于基于所述深度学习任务信息和依赖集,将所述物联网平台的深度学习任务封装成独立容器,包括:

基于所述深度学习任务的模型架构和数据集大小以及所述依赖集,将所述深度学习任务封装成独立容器,并对所述独立容器进行标识,以此生成所述独立容器在所述物联网平台的容器位置信息。

可选地,所述可调用GPU资源确定模块用于对所述独立容器进行分析,确定所述独立容器内部的应用程序的运行进程信息;基于所述运行进程信息,调整所述物联网平台的GPU调用策略,以此确定所述应用程序允许调用的GPU资源,包括:

对所述独立容器内部的应用程序的程序运行日志进行分析,确定所述应用程序处理所述深度学习任务过程中的运行进程信息;其中,所述运行进程信息包括所述应用程序处理所述深度学习任务过程中每个处理环节所需使用的GPU运算资源和显示内存空间大小;

指示所述物联网平台的GPU驱动程序与所述独立容器进行交互,使得所述GPU驱动程序劫持所述独立容器内部的应用程序的GPU调用权限;再基于所述运行进程信息,调整所述GPU驱动程序在自身不同处理环节中对GPU运算资源和显示内存空间调用状态,以此确定所述GPU驱动程序允许调用的GPU运算资源和显示内存空间大小。

可选地,所述主机设备选择模块用于基于所述物联网平台下属所有主机设备的运行状态,从中选择能够调用所述GPU资源的一个主机设备,包括:

获取所述物联网平台下属所有主机设备各自的待处理数据量和平均数据处理速度,以此估计每个主机设备完成自身待处理数据的所需耗时,并将具有最小所需耗时的主机设备选择作为能够调用所述GPU资源的主机设备;

所述独立容器加载与资源分配模块用于将所述独立容器加载至选择的主机设备,并当所述独立容启动后将所述GPU资源分配给所述主机设备,包括:

基于选择的主机设备在物联网所处的节点位置信息,将所述独立容器加载至选择的主机设备,并当所述独立容器启动后,将相应的GPU运算资源和显示内存空间分配给所述主机设备;

所述GPU资源使用变更模块用于基于所述独立容器的任务处理结果,调整所述主机设备对所述GPU资源的使用状态,包括:

判断所述独立容器是否完整输出所述深度学习任务的任务处理结果,若否,则保持所述主机设备对当前被分配的GPU运算资源和显示内存空间的使用状态不变;若否,则指示所述主机设备释放当前被分配的GPU运算资源和显示内存空间。

与现有技术相比,本发明具有如下有益效果:

本申请提供的基于容器的物联网平台GPU虚拟化控制方法和系统将每个深度学习任务封装为一个独立容器,以实现不同深度学习任务的隔离和独立资源管理,每个独立容器包含执行深度学习任务所需的深度学习应用程序和依赖项;还对物联网平台的GPU资源进行虚拟化管理,并利用封装库和动态链接与GPU驱动程序进行交互,劫持容器内应用程序的GPU资源调用,限制容器对GPU和显示内存的使用,实现对GPU算力和显示内存的上限隔离,防止不同深度学习任务之间相互干扰;将容器加载到能够调用GPU资源的主机设备上,并在容器启动时分配相应的GPU资源,能够避免GPU计算资源浪费,实现任务间的计算负载均衡,防止任务间的相互干扰,改善物联网平台执行任务的并行度和可扩展性,降低物联网平台的系统部署和维护难度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1为本发明提供的基于容器的物联网平台GPU虚拟化控制方法的流程示意图。

图2为本发明提供的基于容器的物联网平台GPU虚拟化控制系统的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更为明显易懂,下面结合附图,对本申请的具体实施方式做详细的说明。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

本申请中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

请参阅图1所示,本申请一实施例提供的基于容器的物联网平台GPU虚拟化控制方法包括:

获取物联网平台的工作日志,对该工作日志进行分析,得到该物联网平台的深度学习任务信息;对深度学习任务的依赖项进行提取,构建依赖集;基于该深度学习任务信息和依赖集,将该物联网平台的深度学习任务封装成独立容器;

对该独立容器进行分析,确定该独立容器内部的应用程序的运行进程信息;基于该运行进程信息,调整该物联网平台的GPU调用策略,以此确定该应用程序允许调用的GPU资源;

基于该物联网平台下属所有主机设备的运行状态,从中选择能够调用该GPU资源的一个主机设备;将该独立容器加载至选择的主机设备,并当该独立容启动后将该GPU资源分配给该主机设备;再基于该独立容器的任务处理结果,调整该主机设备对该GPU资源的使用状态。

上述实施例的有益效果,该基于容器的物联网平台GPU虚拟化控制方法将每个深度学习任务封装为一个独立容器,以实现不同深度学习任务的隔离和独立资源管理,每个独立容器包含执行深度学习任务所需的深度学习应用程序和依赖项;还对物联网平台的GPU资源进行虚拟化管理,并利用封装库和动态链接与GPU驱动程序进行交互,劫持容器内应用程序的GPU资源调用,限制容器对GPU和显示内存的使用,实现对GPU算力和显示内存的上限隔离,防止不同深度学习任务之间相互干扰;将容器加载到能够调用GPU资源的主机设备上,并在容器启动时分配相应的GPU资源,能够避免GPU计算资源浪费,实现任务间的计算负载均衡,防止任务间的相互干扰,改善物联网平台执行任务的并行度和可扩展性,降低物联网平台的系统部署和维护难度。

在另一实施例中,获取物联网平台的工作日志,对该工作日志进行分析,得到该物联网平台的深度学习任务信息;对深度学习任务的依赖项进行提取,构建依赖集;基于该深度学习任务信息和依赖集,将该物联网平台的深度学习任务封装成独立容器,包括:

获取物联网平台与用户终端的信息交互日志,对该信息交互日志进行交互信息类型的识别处理,得到该物联网平台接收到该用户终端的深度学习任务信息;

对深度学习任务的依赖项进行提取,构建依赖集;基于该深度学习任务的模型架构和数据集大小以及该依赖集,将该深度学习任务封装成独立容器,并对该独立容器进行标识,以此生成该独立容器在该物联网平台的容器位置信息。

上述实施例的有益效果,物联网平台具有较强的运算能力,常用作对来自外界的用户终端的深度学习任务进行计算处理。当用户终端需要进行深度学习任务的处理时,会与物联网平台进行通信连接,此时物联网平台会形成与用户终端的信息交互日志,该信息交互日志完整全面记录用户终端与物联网平台之间的所有交互信息。再对信息交互日志进行交互信息类型的识别处理,即识别信息交互日志中每项数据信息的类型,从而得到物联网平台接收到用户终端的深度学习任务信息。在实际识别过程中,可将每项数据信息的类型与深度学习任务信息的类型进行对比匹配,从而筛选得到相应的深度学习任务信息。再以识别得到的深度学习任务信息为基础,构建形成相应的深度学习任务。再根据深度学习任务的模型架构和数据集大小以及依赖集,将深度学习任务封装形成独立容器,保证封装形成的独立容器能够与深度学习任务兼容。通常而言,当深度学习任务的任务数据量越大,对应的独立容器的容量也越大,此外独立容器内部数据结构也应当与任务数据结构相一致。此外,还对每个独立容器进行标识,确定每个独立容器在该物联网平台的容器位置信息,从而保证后续能够快速准确查到到相应的独立容器,实现对独立容器的高效加载。

在另一实施例中,对该独立容器进行分析,确定该独立容器内部的应用程序的运行进程信息;基于该运行进程信息,调整该物联网平台的GPU调用策略,以此确定该应用程序允许调用的GPU资源,包括:

对该独立容器内部的应用程序的程序运行日志进行分析,确定该应用程序处理该深度学习任务过程中的运行进程信息;其中,该运行进程信息包括该应用程序处理该深度学习任务过程中每个处理环节所需使用的GPU运算资源和显示内存空间大小;

指示该物联网平台的GPU驱动程序与该独立容器进行交互,使得该GPU驱动程序劫持该独立容器内部的应用程序的GPU调用权限;再基于该运行进程信息,调整该GPU驱动程序在自身不同处理环节中对GPU运算资源和显示内存空间调用状态,以此确定该GPU驱动程序允许调用的GPU运算资源和显示内存空间大小。

上述实施例的有益效果,独立容器内部有相应的深度学习应用程序及其依赖项,该深度学习应用程序用于执行相应的深度学习任务,并且该深度学习应用程序需要借助物联网平台的GPU运算资源和显示内存空间来完成相应的计算程序。该深度学习应用程序在对深度学习任务处理过程中不同处理环节所需的GPU运算资源和显示内存空间大小并不相同,通过对该独立容器内部的应用程序的程序运行日志进行分析,确定该应用程序处理该深度学习任务过程中的运行进程信息,便于后续以该运行进程信息为基准,严格限定独立容器允许调用的GPU运算资源和显示内存空间大小,避免独立容器过多占用物联网平台的GPU运算资源和显示内存空间而导致GPU资源的浪费和利用效率低下。此外,在对独立容器的实际处理过程中为了严格限制对GPU资源的调用上限,指示物联网平台的GPU驱动程序与独立容器进行交互,使得GPU驱动程序劫持独立容器内部的应用程序的GPU调用权限,使得GPU驱动程序获得对独立容器分配GPU资源的权限。再基于运行进程信息,调整应用程序在自身不同处理环节中对物联网平台的GPU运算资源和显示内存空间调用状态,以此确定应用程序允许调用的GPU运算资源和显示内存空间大小,从而保证物联网平台自身GPU资源的高效利用。

在另一实施例中,基于该物联网平台下属所有主机设备的运行状态,从中选择能够调用该GPU资源的一个主机设备;将该独立容器加载至选择的主机设备,并当该独立容启动后将该GPU资源分配给该主机设备;再基于该独立容器的任务处理结果,调整该主机设备对该GPU资源的使用状态,包括:

获取该物联网平台下属所有主机设备各自的待处理数据量和平均数据处理速度,以此估计每个主机设备完成自身待处理数据的所需耗时,并将具有最小所需耗时的主机设备选择作为能够调用该GPU资源的主机设备;

基于选择的主机设备在物联网所处的节点位置信息,将该独立容器加载至选择的主机设备,并当该独立容器启动后,将相应的GPU运算资源和显示内存空间分配给该主机设备;

判断该独立容器是否完整输出该深度学习任务的任务处理结果,若否,则保持该主机设备对当前被分配的GPU运算资源和显示内存空间的使用状态不变;若否,则指示该主机设备释放当前被分配的GPU运算资源和显示内存空间。

上述实施例的有益效果,物联网平台下属连接有多个主机设备,每个主机设备用于作为加载运行独立容器的物理实体,而每个主机设备各自的待处理数据量和平均数据处理速度会影响其对加载的独立容器的运行效率快慢。为此,以该物联网平台下属所有主机设备各自的待处理数据量和平均数据处理速度,以此估计每个主机设备完成自身待处理数据的所需耗时,并将具有最小所需耗时的主机设备选择作为能够调用该GPU资源的主机设备,这样能够保证独立容器能够加载到当前性能最佳的主机设备。再基于选择的主机设备在物联网所处的节点位置信息,将该独立容器加载至选择的主机设备,并当该独立容器启动后,将相应的GPU运算资源和显示内存空间分配给该主机设备,这样该主机设备能够及时加载运行独立容器以及执行独立容器内部的深度学习任务。还判断该独立容器是否完整输出该深度学习任务的任务处理结果,若否,则保持该主机设备对当前被分配的GPU运算资源和显示内存空间的使用状态不变;若否,则指示该主机设备释放当前被分配的GPU运算资源和显示内存空间,这样能够保证在主机设备完成深度学习任务的处理后,及时释放自身占用的GPU运算资源和显示内存空间,提高物联网平台的GPU资源的运转利用效率。

请参阅图2所示,本申请一实施例提供的基于容器的物联网平台GPU虚拟化控制系统包括:

深度学习任务信息生成模块,用于获取物联网平台的工作日志,对该工作日志进行分析,得到该物联网平台的深度学习任务信息;以及对深度学习任务的依赖项进行提取,构建依赖集;

独立容器封装模块,用于基于该深度学习任务信息和依赖集,将该物联网平台的深度学习任务封装成独立容器;

可调用GPU资源确定模块,用于对该独立容器进行分析,确定该独立容器内部的应用程序的运行进程信息;基于该运行进程信息,调整该物联网平台的GPU调用策略,以此确定该应用程序允许调用的GPU资源;

主机设备选择模块,用于基于该物联网平台下属所有主机设备的运行状态,从中选择能够调用该GPU资源的一个主机设备;

独立容器加载与资源分配模块,用于将该独立容器加载至选择的主机设备,并当该独立容启动后将该GPU资源分配给该主机设备;

GPU资源使用变更模块,用于基于该独立容器的任务处理结果,调整该主机设备对该GPU资源的使用状态。

上述实施例的有益效果,该基于容器的物联网平台GPU虚拟化控制系统将每个深度学习任务封装为一个独立容器,以实现不同深度学习任务的隔离和独立资源管理,每个独立容器包含执行深度学习任务所需的深度学习应用程序和依赖项;还对物联网平台的GPU资源进行虚拟化管理,并利用封装库和动态链接与GPU驱动程序进行交互,劫持容器内应用程序的GPU资源调用,限制容器对GPU和显示内存的使用,实现对GPU算力和显示内存的上限隔离,防止不同深度学习任务之间相互干扰;将容器加载到能够调用GPU资源的主机设备上,并在容器启动时分配相应的GPU资源,能够避免GPU计算资源浪费,实现任务间的计算负载均衡,防止任务间的相互干扰,改善物联网平台执行任务的并行度和可扩展性,降低物联网平台的系统部署和维护难度。

在另一实施例中,该深度学习任务信息生成模块用于获取物联网平台的工作日志,对该工作日志进行分析,得到该物联网平台的深度学习任务信息;以及对深度学习任务的依赖项进行提取,构建依赖集,包括:

获取物联网平台与用户终端的信息交互日志,对该信息交互日志进行交互信息类型的识别处理,得到该物联网平台接收到该用户终端的深度学习任务信息;以及对深度学习任务的依赖项进行提取,构建依赖集;

该独立容器封装模块用于基于该深度学习任务信息和依赖集,将该物联网平台的深度学习任务封装成独立容器,包括:

基于该深度学习任务的模型架构和数据集大小以及该依赖集,将该深度学习任务封装成独立容器,并对该独立容器进行标识,以此生成该独立容器在该物联网平台的容器位置信息。

上述实施例的有益效果,物联网平台具有较强的运算能力,常用作对来自外界的用户终端的深度学习任务进行计算处理。当用户终端需要进行深度学习任务的处理时,会与物联网平台进行通信连接,此时物联网平台会形成与用户终端的信息交互日志,该信息交互日志完整全面记录用户终端与物联网平台之间的所有交互信息。再对信息交互日志进行交互信息类型的识别处理,即识别信息交互日志中每项数据信息的类型,从而得到物联网平台接收到用户终端的深度学习任务信息。在实际识别过程中,可将每项数据信息的类型与深度学习任务信息的类型进行对比匹配,从而筛选得到相应的深度学习任务信息。再以识别得到的深度学习任务信息为基础,构建形成相应的深度学习任务。再根据深度学习任务的模型架构和数据集大小以及依赖集,将深度学习任务封装形成独立容器,保证封装形成的独立容器能够与深度学习任务兼容。通常而言,当深度学习任务的任务数据量越大,对应的独立容器的容量也越大,此外独立容器内部数据结构也应当与任务数据结构相一致。此外,还对每个独立容器进行标识,确定每个独立容器在该物联网平台的容器位置信息,从而保证后续能够快速准确查到到相应的独立容器,实现对独立容器的高效加载。

在另一实施例中,该可调用GPU资源确定模块用于对该独立容器进行分析,确定该独立容器内部的应用程序的运行进程信息;基于该运行进程信息,调整该物联网平台的GPU调用策略,以此确定该应用程序允许调用的GPU资源,包括:

对该独立容器内部的应用程序的程序运行日志进行分析,确定该应用程序处理该深度学习任务过程中的运行进程信息;其中,该运行进程信息包括该应用程序处理该深度学习任务过程中每个处理环节所需使用的GPU运算资源和显示内存空间大小;

指示该物联网平台的GPU驱动程序与该独立容器进行交互,使得该GPU驱动程序劫持该独立容器内部的应用程序的GPU调用权限;再基于该运行进程信息,调整该GPU驱动程序在自身不同处理环节中对GPU运算资源和显示内存空间调用状态,以此确定该GPU驱动程序允许调用的GPU运算资源和显示内存空间大小。

上述实施例的有益效果,独立容器内部有相应的深度学习应用程序及其依赖项,该深度学习应用程序用于执行相应的深度学习任务,并且该深度学习应用程序需要借助物联网平台的GPU运算资源和显示内存空间来完成相应的计算程序。该深度学习应用程序在对深度学习任务处理过程中不同处理环节所需的GPU运算资源和显示内存空间大小并不相同,通过对该独立容器内部的应用程序的程序运行日志进行分析,确定该应用程序处理该深度学习任务过程中的运行进程信息,便于后续以该运行进程信息为基准,严格限定独立容器允许调用的GPU运算资源和显示内存空间大小,避免独立容器过多占用物联网平台的GPU运算资源和显示内存空间而导致GPU资源的浪费和利用效率低下。此外,在对独立容器的实际处理过程中为了严格限制对GPU资源的调用上限,指示物联网平台的GPU驱动程序与独立容器进行交互,使得GPU驱动程序劫持独立容器内部的应用程序的GPU调用权限,使得GPU驱动程序获得对独立容器分配GPU资源的权限。再基于运行进程信息,调整应用程序在自身不同处理环节中对物联网平台的GPU运算资源和显示内存空间调用状态,以此确定应用程序允许调用的GPU运算资源和显示内存空间大小,从而保证物联网平台自身GPU资源的高效利用。

在另一实施例中,该主机设备选择模块用于基于该物联网平台下属所有主机设备的运行状态,从中选择能够调用该GPU资源的一个主机设备,包括:

获取该物联网平台下属所有主机设备各自的待处理数据量和平均数据处理速度,以此估计每个主机设备完成自身待处理数据的所需耗时,并将具有最小所需耗时的主机设备选择作为能够调用该GPU资源的主机设备;

该独立容器加载与资源分配模块用于将该独立容器加载至选择的主机设备,并当该独立容启动后将该GPU资源分配给该主机设备,包括:

基于选择的主机设备在物联网所处的节点位置信息,将该独立容器加载至选择的主机设备,并当该独立容器启动后,将相应的GPU运算资源和显示内存空间分配给该主机设备;

该GPU资源使用变更模块用于基于该独立容器的任务处理结果,调整该主机设备对该GPU资源的使用状态,包括:

判断该独立容器是否完整输出该深度学习任务的任务处理结果,若否,则保持该主机设备对当前被分配的GPU运算资源和显示内存空间的使用状态不变;若否,则指示该主机设备释放当前被分配的GPU运算资源和显示内存空间。

上述实施例的有益效果,物联网平台下属连接有多个主机设备,每个主机设备用于作为加载运行独立容器的物理实体,而每个主机设备各自的待处理数据量和平均数据处理速度会影响其对加载的独立容器的运行效率快慢。为此,以该物联网平台下属所有主机设备各自的待处理数据量和平均数据处理速度,以此估计每个主机设备完成自身待处理数据的所需耗时,并将具有最小所需耗时的主机设备选择作为能够调用该GPU资源的主机设备,这样能够保证独立容器能够加载到当前性能最佳的主机设备。再基于选择的主机设备在物联网所处的节点位置信息,将该独立容器加载至选择的主机设备,并当该独立容器启动后,将相应的GPU运算资源和显示内存空间分配给该主机设备,这样该主机设备能够及时加载运行独立容器以及执行独立容器内部的深度学习任务。还判断该独立容器是否完整输出该深度学习任务的任务处理结果,若否,则保持该主机设备对当前被分配的GPU运算资源和显示内存空间的使用状态不变;若否,则指示该主机设备释放当前被分配的GPU运算资源和显示内存空间,这样能够保证在主机设备完成深度学习任务的处理后,及时释放自身占用的GPU运算资源和显示内存空间,提高物联网平台的GPU资源的运转利用效率。

总体而言,该基于容器的物联网平台GPU虚拟化控制方法和系统将每个深度学习任务封装为一个独立容器,以实现不同深度学习任务的隔离和独立资源管理,每个独立容器包含执行深度学习任务所需的深度学习应用程序和依赖项;还对物联网平台的GPU资源进行虚拟化管理,并利用封装库和动态链接与GPU驱动程序进行交互,劫持容器内应用程序的GPU资源调用,限制容器对GPU和显示内存的使用,实现对GPU算力和显示内存的上限隔离,防止不同深度学习任务之间相互干扰;将容器加载到能够调用GPU资源的主机设备上,并在容器启动时分配相应的GPU资源,能够避免GPU计算资源浪费,实现任务间的计算负载均衡,防止任务间的相互干扰,改善物联网平台执行任务的并行度和可扩展性,降低物联网平台的系统部署和维护难度。

上述仅为本发明的一个具体实施方式,其它基于本发明构思的前提下做出的任何改进都视为本发明的保护范围。

相关技术
  • 一种车辆及携乘人员的安全检查系统
  • 一种人员安全检查系统
技术分类

06120116573841