当前位置: 首页 > 专利查询>潍坊学院专利>正文

一种用于深度学习任务的GPU资源分配方法组成比例

技术编号:36462101 阅读:17 留言:0更新日期:2023-01-25 23:01
本发明专利技术公开了一种用于深度学习任务的GPU资源分配方法,本发明专利技术涉及GPU资源分配技术领域,现提出如下方案,包括:S1:创建资源堆;S2:创建上传堆,从上传堆中创建缓冲,利用Map映射将上传堆的系统内存映射到CPU进程的虚拟地址空间,得到指向上传堆地址的指针;S3:将加载好的资源直接赋值到指针中。本发明专利技术中基于深度学习和神经网络的每个计算任务都是独立于其他计算,采用高度并行的方式进行计算,较少的控制单元使其不会受到计算以外的更多任务的干扰,使得CPU拥有更纯粹的计算环境,利用深度学习和神经网络模型在GPU的加持下会更高效地完成计算任务,通过合理分配GPU的任务,以此来实现GPU能够拥有更快的处理速度。现GPU能够拥有更快的处理速度。现GPU能够拥有更快的处理速度。

【技术实现步骤摘要】
一种用于深度学习任务的GPU资源分配方法


[0001]本专利技术涉及GPU资源分配
,具体涉及一种用于深度学习任务的GPU资源分配方法。

技术介绍

[0002]GPU其名称源自控制组群的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组,默认情况下,Docker容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资源,如果不对容器资源进行限制,容器之间就会相互影响,一些占用硬件资源较高的容器会吞噬掉所有的硬件资源,从而导致其它容器无硬件资源可用,发生停服状态,Docker提供了限制内存,CPU或磁盘IO的方法,可以对容器所占用的硬件资源大小以及多少进行限制,Docker通过GPU来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。而基于GPU对于主机的重要性,且为了增加终端对任务的处理速度,同时,基于深度学习具有的可以通过多任务学习来有效求解以及通过使用包含在相关任务的监督信号中的领域知识来改善泛化性能的特性,现提出一种用于深度学习任务的GPU资源分配方法。

技术实现思路

[0003]针对上述缺陷,本专利技术所要解决的技术问题在于提供一种用于深度学习任务的GPU资源分配方法,包括:包括有如下的分配步骤:
[0004]S1:创建资源堆;
[0005]S2:创建上传堆,从上传堆中创建缓冲,利用Map映射将上传堆的系统内存映射到CPU进程的虚拟地址空间,得到指向上传堆地址的指针;
[0006]S3:将加载好的资源直接赋值到指针中;
[0007]S4:创建一个默认堆和对应的资源缓存;
[0008]S5:将上传堆中的数据拷贝到默认堆中
[0009]在上述一种用于深度学习任务的GPU资源分配方法的技术方案中,优选地,所述默认堆中的数据可以被GPU高速访问,但无法被CPU访问。
[0010]在上述一种用于深度学习任务的GPU资源分配方法的技术方案中,优选地,所述上传堆,可以被CPU不经过高速缓存写入,并允许被GPU低速读取,初始化的时候由CPU访问一次的资源,可以通过CPU将数据拷贝到上传堆中,再由上传堆复制到默认堆中,如果CPU需要频繁更新这个资源,那么GPU可以直接从上传堆中读取,因为即使复制到了默认堆,这部分数据也会很快失效。
[0011]在上述一种用于深度学习任务的GPU资源分配方法的技术方案中,优选地,所述回读堆可以被CPU和GPU低速访问,主要是将数据从GPU传回到CPU。
[0012]在上述一种用于深度学习任务的GPU资源分配方法的技术方案中,优选地,所述步骤S1中从上传堆创建一个缓冲,可以利用Map映射,将上传堆的系统内存映射到CPU进程的
虚拟地址空间,其实就是相当于拿到了一个指向上传堆地址的指针。
[0013]在上述一种用于深度学习任务的GPU资源分配方法的技术方案中,优选地,所述步骤S2中的创建缓冲需要创建自定义堆,在获得顶点着色器输出的数据后,把流输出缓冲的输入地址设置成顶点着色器输出的地址,通过Map映射,将流输出缓冲映射到CPU虚拟地址空间中,处理里面的变量。
[0014]由上述技术方案可知,本专利技术提供一种用于深度学习任务的GPU资源分配方法与现有技术相比,本专利技术具有以下有益效果:
[0015]本专利技术中基于深度学习和神经网络的每个计算任务都是独立于其他计算,采用高度并行的方式进行计算,较少的控制单元使其不会受到计算以外的更多任务的干扰,使得CPU拥有更纯粹的计算环境,利用深度学习和神经网络模型在GPU的加持下会更高效地完成计算任务,通过合理分配GPU的任务,以此来实现GPU能够拥有更快的处理速度。
附图说明
[0016]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对本专利技术实施例或现有技术描述中所需要使用的附图做出简单地介绍和说明。显而易见地,下面描述中的附图仅仅是本专利技术的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本专利技术中一种用于深度学习任务的GPU资源分配方法示意图。
具体实施方式
[0018]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,以下所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0019]为了对本专利技术的技术方案和实现方式做出更清楚地解释和说明,以下介绍实现本专利技术技术方案的几个优选的具体实施例。
[0020]需要说明的是,当元件被称为“固定于”或“设置于”另一个元件上,它可以直接在另一个元件上或者间接设置在另一个元件上;当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至另一个元件上。
[0021]另外,本文中的术语:“内、外”,“前、后”,“左、右”,“竖直、水平”,“顶、底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
[0022]术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
[0023]具体实施例1
[0024]创建资源堆;创建上传堆,从上传堆中创建缓冲,利用Map映射将上传堆的系统内存映射到CPU进程的虚拟地址空间,得到指向上传堆地址的指针,将加载好的资源直接赋值
到指针中;创建一个默认堆和对应的资源缓存;将上传堆中的数据拷贝到默认堆中,且上传堆可以被CPU不经过高速缓存写入,并允许被GPU低速读取,初始化的时候由CPU访问一次的资源,可以通过CPU将数据拷贝到上传堆中,再由上传堆复制到默认堆中,如果CPU需要频繁更新这个资源,那么GPU可以直接从上传堆中读取,因为即使复制到了默认堆,这部分数据也会很快失效。
[0025]回读堆可以被CPU和GPU低速访问,主要是将数据从GPU传回到CPU;从上传堆创建一个缓冲,可以利用Map映射,将上传堆的系统内存映射到CPU进程的虚拟地址空间,其实就是相当于拿到了一个指向上传堆地址的指针,创建缓冲需要创建自定义堆,在获得顶点着色器输出的数据后,把流输出缓冲的输入地址设置成顶点着色器输出的地址,通过Map映射,将流输出缓冲映射到CPU虚拟地址空间中,处理里面的变量。
[0026]首先,需要定义顶点缓冲的布局,它是由输入元素和输入槽构成,有了输入槽之后就知道了缓冲中的数据的具体格式,接下来需要填充数据,也就是往顶点缓冲视图中写入数据,同样利用上传堆,然后按照前面设置好的输入槽格式,开始对数据进行赋值,其实就是一堆根据偏移本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于深度学习任务的GPU资源分配方法,其特征在于,包括有如下的分配步骤:S1:创建资源堆;S2:创建上传堆,从上传堆中创建缓冲,利用Map映射将上传堆的系统内存映射到CPU进程的虚拟地址空间,得到指向上传堆地址的指针;S3:将加载好的资源直接赋值到指针中;S4:创建一个默认堆和对应的资源缓存;S5:将上传堆中的数据拷贝到默认堆中。2.根据权利要求1所述的一种用于深度学习任务的GPU资源分配方法,其特征在于,所述默认堆中的数据可以被GPU高速访问,但无法被CPU访问。3.根据权利要求1所述的一种用于深度学习任务的GPU资源分配方法,其特征在于,所述上传堆,可以被CPU不经过高速缓存写入,并允许被GPU低速读取,初始化的时候由CPU访问一次的资源,可以通过CPU将数据拷贝到上传堆中,再由上传堆复制到默认堆中,如果CPU需要频繁更新这个资源...

【专利技术属性】
技术研发人员:张辉辉刘涛代江艳
申请(专利权)人:潍坊学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1