一种显存分配方法、装置、电子设备及存储介质

阅读: 评论:0

著录项
  • CN202010144896.6
  • 20200304
  • CN111400035A
  • 20200710
  • 杭州海康威视系统技术有限公司
  • 陈兴友
  • G06F9/50
  • G06F9/50

  • 浙江省杭州市滨江区阡陌路555号1幢B楼19层
  • 浙江(33)
  • 北京柏杉松知识产权代理事务所(普通合伙)
  • 丁芸;马敬
摘要
本申请的一种显存分配方法、装置、电子设备及存储介质,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量;判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存,若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。实现保证当前应用显存使用的情况下,防止出现申请显存的数量超过GPGPU的全部显存,导致出现争抢显存的情况,从而保证各应用的显存供应,提高显存的使用效率。
权利要求

1.一种显存分配方法,其特征在于,包括:

在当前应用申请显存时,获取所述当前应用申请的显存的数量,得到待申请显存数量;

读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,所述总分配显存数量为预先设定的给所述当前应用分配的显存数量的上限,所述已使用显数量存为所述当前应用已经分配的显存数量;

判断所述待申请显存数量与所述已使用显存数量的和是否大于所述总分配显存数量;

若所述待申请显存数量与所述已使用显存数量的和不大于所述总分配显存数量,则为所述当前应用分配所述待申请显存数量的显存;

若所述待申请显存数量与所述已使用显存数量的和大于所述总分配显存数量,则向所述当前应用发送指定格式的显存不足信息。

2.根据权利要求1所述的方法,其特征在于,在当前应用申请显存时,获取所述当前应用申请的显存的数量,得到待申请显存数量之前,所述方法还包括:

启动所述当前应用,创建所述当前应用配置文件,其中,所述配置文件包括总分配显存数量和已使用显存数量,所述总分配显存数量为给所述当前应用分配的显存数量的上限,初始状态下所述已使用显存数量的值为零;

判断总可用显存数量是否大于所述总分配显存数量,其中,所述总可用显存数量为图像处理器中尚未使用的显存数量;

若所述总可用显存数量大于所述总分配显存数量,则判定所述当前应用配置文件配置完成。

3.根据权利要求2所述的方法,其特征在于,所述判断总可用显存数量是否大于所述总分配显存数量之后,所述方法还包括:

若所述总可用显存数量不大于所述总分配显存数量,将所述总可用显存数量的值赋予所述总分配显存数量。

4.根据权利要求1所述的方法,其特征在于,所述为所述当前应用分配所述待申请显存数量的显存之后,所述方法还包括:

根据所述待申请显存数量对所述已使用显存数量进行更新。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在所述当前应用释放显存时,获取所述当前应用的显存释放的数量,得到显存释放数量;

根据所述显存释放数量更新所述已使用显存数量。

6.一种显存分配装置,其特征在于,包括:

显存申请模块,用于在当前应用申请显存时,获取所述当前应用申请的显存的数量,得到待申请显存数量;

显存读取模块,用于读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,所述总分配显存数量为预先设定的给所述当前应用分配的显存数量的上限,所述已使用显数量存为所述当前应用已经分配的显存数量;

显存判断模块,用于判断所述待申请显存数量与所述已使用显存数量的和是否大于所述总分配显存数量;

申请分配模块,用于若所述待申请显存数量与所述已使用显存数量的和不大于所述总分配显存数量,则为所述当前应用分配所述待申请显存数量的显存;

信息发送模块,用于若所述待申请显存数量与所述已使用显存数量的和大于所述总分配显存数量,则向所述当前应用发送指定格式的显存不足信息。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:

文件创建模块,用于启动所述当前应用,创建所述当前应用配置文件,其中,所述配置文件包括总分配显存数量和已使用显存数量,所述总分配显存数量为给所述当前应用分配的显存数量的上限,初始状态下所述已使用显存数量的值为零;

数量判断模块,用于判断总可用显存数量是否大于所述总分配显存数量,其中,所述总可用显存数量为图像处理器中尚未使用的显存数量;

完成判定模块,用于若所述总可用显存数量大于所述总分配显存数量,则判定所述当前应用配置文件配置完成。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

显存赋值模块,用于若所述总可用显存数量不大于所述总分配显存数量,将所述总可用显存数量的值赋予所述总分配显存数量。

9.根据权利要求6所述的装置,其特征在于,所述装置还包括:

显存更新模块,用于根据所述待申请显存数量对所述已使用显存数量进行更新。

10.根据权利要求6所述的装置,其特征在于,所述装置还包括:

释放信息模块,用于在所述当前应用释放显存时,获取所述当前应用的显存释放的数量,得到显存释放数量;

数量更新模块,用于根据所述显存释放数量更新所述已使用显存数量。

11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的所述计算机程序时,实现权利要求1-5任一所述的方法步骤。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。

说明书

一种显存分配方法、装置、电子设备及存储介质

技术领域

本申请涉及信息技术领域,特别是涉及一种显存分配方法、装置、电子设备及存储介质。

背景技术

随深度学习等技术的快速发展,模型的计算已经越来越被广泛的应用,在训练模型过程中需要大量显存和GPU(Graphics Processing Unit,图形处理器)计算资源,而再通过训练好的模型进行实际使用时显存需求会降低很多。并且通过模型压缩、剪枝等技术,前后的差距可能会达到一两个数量级。

然而,目前进行显存的复用,一般都是通过口头或书面协商等方式,划分时段进行显存的使用,从而达到显存的复用的目的。然而在同一时间段内,多余的显存未进行使用,则只会浪费掉,同时还会促使主流深度学习软件尝试尽可能多地申请显存,从而导致显存的使用效率低。

申请内容

本申请实施例的目的在于提供一种显存分配方法、装置、电子设备及存储介质,以实现提高显存的使用效率的目的。具体技术方案如下:

第一方面,本申请提供了一种显存分配方法,包括:

在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;

读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量;

判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;

若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存;

若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。

可选的,在在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量之前,上述方法还包括:

启动当前应用,创建当前应用配置文件,其中,配置文件包括总分配显存数量和已使用显存数量,总分配显存数量为给当前应用分配的显存数量的上限,初始状态下已使用显存数量的值为零;

判断总可用显存数量是否大于总分配显存数量,其中,总可用显存数量为图像处理器中尚未使用的显存数量;

若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成。

可选的,判断总可用显存数量是否大于总分配显存数量之后,上述方法还包括:

若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量。

可选的,为当前应用分配待申请显存数量的显存之后,上述方法还包括:

根据待申请显存数量对已使用显存数量进行更新。

可选的,上述方法还包括:

在当前应用释放显存时,获取当前应用的显存释放的数量,得到显存释放数量;

根据显存释放数量更新已使用显存数量。

第二方面,本申请提供了一种显存分配装置,包括:

显存申请模块,用于在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;

显存读取模块,用于读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量;

显存判断模块,用于判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;

申请分配模块,用于若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存;

信息发送模块,用于若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。

可选的,上述装置还包括:

文件创建模块,用于启动当前应用,创建当前应用配置文件,其中,配置文件包括总分配显存数量和已使用显存数量,总分配显存数量为给当前应用分配的显存数量的上限,初始状态下已使用显存数量的值为零;

数量判断模块,用于判断总可用显存数量是否大于总分配显存数量,其中,总可用显存数量为图像处理器中尚未使用的显存数量;

完成判定模块,用于若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成。

可选的,上述装置还包括:

显存赋值模块,用于若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量。

可选的,上述装置还包括:

显存更新模块,用于根据待申请显存数量对已使用显存数量进行更新。

可选的,上述装置还包括:

释放信息模块,用于在当前应用释放显存时,获取当前应用的显存释放的数量,得到显存释放数量;

数量更新模块,用于根据显存释放数量更新已使用显存数量。

根据本公开实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的计算机程序时,实现上述任一显存分配的方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,

计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一显存分配的方法。

本申请实施例提供的一种显存分配方法、装置、电子设备及存储介质,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量;判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。从而实现在根据应用的请求进行显存的分配,在保证当前应用的显存使用的情况下,防止出现申请显存的数量超过GPGPU的全部显存,导致出现争抢显存的情况,从而保证各应用的显存供应,提高显存的使用效率。当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本申请实施例的一种显存分配方法的一种流程图。

图2为本申请实施例的一种配置文件创建方法的一种流程图。

图3为本申请实施例的一种显存分配方法的另一种流程图。

图4为本申请实施例的一种平台管理程序部分的流程示意图。

图5为本申请实施例的一种显存分配方法的一种实例图。

图6为本申请实施例的一种显存分配装置的一种结构示意图。

图7为本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了实现提高显存的使用效率,本申请实施例提供了一种显存方法、装置、电子设备及存储介质,以下分别进行详细说明。

首先,对本申请实施例中的专业术语进行解释:

CGroup(Control Group,控制组):是一项对进程的处理器、内存、磁盘IO(磁盘的输入/输出)、网络等资源使用情况进行限制、审计、隔离的内核功能。

GPGPU(General-purpose computing on graphics processing units,通用图形处理器):可以进行图形以外通用计算任务的图形处理器。

CUDA(Compute Unified Device Architecture,统一计算设备架构):NVIDIA(英伟达)推出的用于在GPU上进行并行通用计算的编程模型及软件开发包。

容器:借助Linux(一种操作系统)命名空间、CGroup功能实现的操作系统层虚拟化技术及软件。

显存:GPGPU设备中的内存。

图1为本申请实施例的一种显存分配方法的一种流程图,包括以下步骤:

在步骤S11中,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量。

本申请实施例的数据获取方法针对的是智能终端设备中的显存,因此可以通过智能终端设备执行,具体的,该智能终端设备可以为电脑或服务器等。

其中,上述当前应用申请显存可以为多种形式的应用进行显存的申请,例如服务器中的用于模型训练的应用,在进行模型训练之前或模型训练的过程中申请用于执行该应用的显存,其申请显存的数量,即上述待申请显存的数量。其中,当前应用为GPGPU中当前时刻正在进行显存申请的任一应用,例如上述用于模型训练的应用。

在步骤S12中,读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量。

其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量。例如,当前图像处理器的总显存为8GB,而对于服务器中某一应用通过预设规则设定分配显存的上限为500MB,则总分配显存为500MB。

在步骤S13中,判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量。

其中,判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量,即判断上述当前应用的申请显存的数量和已使用显存的数量是否大于上述向当前应用设定的总显存的数量。

在步骤S14中,若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。

在步骤S15中,若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。

其中,通过上述判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量,若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存,若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。可以在上述目标应用的已用显存和待申请显存的数量小于预设的上限时分配申请数量的显存,防止出现申请显存的数量超过GPGPU的全部显存,导致出现争抢显存的情况,保证各应用的显存供应,提高显存的使用效率。

可选的,在在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量之前,上述方法还包括:启动当前应用,创建当前应用配置文件,其中,配置文件包括总分配显存数量和已使用显存数量,总分配显存数量为给当前应用分配的显存数量的上限,初始状态下已使用显存数量的值为零;判断总可用显存数量是否大于总分配显存数量,其中,总可用显存数量为图像处理器中尚未使用的显存数量;若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成。

可选的,判断总可用显存数量是否大于总分配显存数量之后,上述方法还包括:若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量。

可选的,为当前应用分配待申请显存数量的显存之后,上述方法还包括:根据待申请显存数量对已使用显存数量进行更新。

可选的,上述方法还包括:在当前应用释放显存时,获取当前应用的显存释放的数量,得到显存释放数量;根据显存释放数量更新已使用显存数量。

可见,通过本申请实施例的显存分配方法,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量;判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。从而实现在根据应用的请求进行显存的分配,在保证当前应用的显存使用的情况下,防止出现申请显存的数量超过GPGPU的全部显存,导致出现争抢显存的情况,从而保证各应用的显存供应,提高显存的使用效率。

图2为本申请实施例的一种配置文件创建方法的一种流程图,包括以下步骤:

在步骤S21中,启动当前应用,创建当前应用配置文件。

其中,配置文件包括总分配显存数量和已使用显存数量,总分配显存数量为给当前应用分配的显存数量的上限,初始状态下已使用显存数量的值为零。上述配置文件可以为vgpu_cfg_s类型的文件。

其中,启动当前应用,创建当前应用配置文件之前,上述方法还可以包括:申请储存空间,该储存空间的大小为当前应用配置文件数据量大小的指定数量的倍数,该指定数量为倍数为单个机器允许的最大GPGPU应用数。

在步骤S22中,判断总可用显存数量是否大于总分配显存数量。

其中,总可用显存数量为图像处理器中尚未使用的显存数量。例如,对于某一图像处理器的总显存为8GB,已使用显存为2GB,则当前图像处理器的总可用显存为6GB。总分配显存数量可以为预先设置好的数值,也可以在当前应用启动时用人工设置。

在步骤S23中,若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成。

在步骤S24中,若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量。

其中,判断总可用显存数量是否大于总分配显存数量,若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成,若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量,可以防止当总可用显存的数量小于总分配显存时,导致在申请显存判断时的判断错误。

通过上述判断总可用显存数量是否大于总分配显存数量,若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成,若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量。可以生成本申请的配置文件,从而可以在当前应用进行显存的申请时,通过读取配置文件进行显存申请是否成功的判断。

图3为本申请实施例的一种显存分配方法的另一种流程图,包括以下步骤:

在步骤S11中,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量。

在步骤S12中,读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量。

其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量。

在步骤S13中,判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量。

在步骤S14中,若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。

在步骤S15中,若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。

其中,上述指定格式的显存不足信息可以为任意格式的信息,若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息,可以通过上述应用进行判断是否继续进行显存的申请。

可见,通过针对显存进行控制,可使得当前应用查得的可用显存小于GPGPU的全部显存,当应用申请的显存总数超过设定数值时,阻止当前申请,防止当前申请显存和已使用显存之和大于GPGPU的显存,导致争抢显存的现象,保证多个应用可以共用一块GPGPU设备。

在步骤S31中,根据待申请显存数量对已使用显存数量进行更新。

上述,根据待申请显存数量对已使用显存数量进行更新,可以待申请显存的数量加上已申请显存的数量,通过计算得到的更新后的已申请显存的数量。

可选的,上述方法还包括:在当前应用释放显存时,获取当前应用的显存释放的数量,得到显存释放数量;根据显存释放数量更新已使用显存数量。

可选的,上述方法还包括:进行显存的数量的修正,如如果已使用显存数据变为负数,修正为零,以应对部分驱动程序的设计疏漏。

其中,可选的,用户界面采用CGroup,以方便容器化应用使用,通过cgroupfs暴露出三个接口:mem.max,mem.cur,weight,非容器场合也可以通过新建CGroup来使用这些接口。其中,cgroupfs为CGroup暴露到VFS(Linux虚拟文件系统)层的操作接口,其中mem.max用于查看和设置应用的总分配显存数量,mem.cur用于查看应用当前使用的显存数量,weight留作后续计算能力调度用途。添加GPU CGroup,通过vgpu_set和vgpu_show访问vgpu_cfg_s,与GPGPU驱动程序没有强耦合。参见图4,图4为本申请实施例的一种平台管理程序部分的流程示意图。包括:步骤S41开始,步骤S42接收新应用,判断是否允许接收新应用,若允许执行步骤S44,若不允许执行步骤S43,S43结束,S44,创建CGroup实例,S45填充mem.max,向mem.max的进行总分配显存的赋值,S46启动应用程序,初始化vgpu_cfg_s。用户态的执行在接收到新GPGPU应用的执行请求时,先创建GPU CGroup,然后根据用户需求或平台限额,写入mem.max参数,随后即可在该CGroup实例中创建新进程。

可见,通过本申请实施例的显存分配方法,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量;判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。并可以在显存不足时向当前应用发送显存不足的信息,从而实现在根据应用的请求进行显存的分配,在保证当前应用的显存使用的情况下,防止出现申请显存的数量超过GPGPU的全部显存,导致出现争抢显存的情况,从而保证各应用的显存供应,提高显存的使用效率。

图5为本申请实施例的一种显存分配方法的一种实例图,包括以下步骤:

S51读取最大应用数设置,初始化vgpu_cfg_s表;S52启动GPGPU应用;S53初始化GPGPU上下文,设置vgpu_cfg_s项;S54查询总显存;S55查询实际可用显存,当大于vgpu_cfg_s分配显存时执行S56,当为其他情况执行S57;S56返回vgpu_cfg_s中的设置;S57返回实际可用显存;S58继续执行,判断是否继续执行,当继续执行时执行S59,当不继续执行时执行S60;S59动作,动作判断,当执行完毕时执行S60,当申请显存时执行S61,当释放显存时执行步骤S63;S60释放上下文,重置vgpu_cfg_s项;S61申请显存,判断申请的显存是否超过限额,当超过时执行S62,当没超过时执行S58;S62继续,判断是否继续执行,若是则执行S58,若否则执行S60;S63释放显存,判断是否释放显存,当已用显存正常时执行步骤S58,当已用显存为负数执行步骤S64;S64重置已用显存。其中由于现有GPU驱动程序缺陷可能导致已用显存显示为负数,通过重置已用显存可以进行显存修正。

图6为本申请实施例的一种显存分配装置的一种结构示意图,包括以下步骤:

显存申请模块601,用于在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量。

显存读取模块602,用于读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量。

显存判断模块603,用于判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量。

申请分配模块604,用于若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。

信息发送模块605,用于若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。

可选的,上述装置还包括:

文件创建模块,用于启动当前应用,创建当前应用配置文件,其中,配置文件包括总分配显存数量和已使用显存数量,总分配显存数量为给当前应用分配的显存数量的上限,初始状态下已使用显存数量的值为零;

数量判断模块,用于判断总可用显存数量是否大于总分配显存数量,其中,总可用显存数量为图像处理器中尚未使用的显存数量;

完成判定模块,用于若总可用显存数量大于总分配显存数量,则判定当前应用配置文件配置完成。

可选的,上述装置还包括:

显存赋值模块,用于若总可用显存数量不大于总分配显存数量,将总可用显存数量的值赋予总分配显存数量。

可选的,上述装置还包括:

显存更新模块,用于根据待申请显存数量对已使用显存数量进行更新。

可选的,上述装置还包括:

释放信息模块,用于在当前应用释放显存时,获取当前应用的显存释放的数量,得到显存释放数量;

数量更新模块,用于根据显存释放数量更新已使用显存数量。

可见,通过本申请实施例的显存分配装置,在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量;判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。从而实现在根据应用的请求进行显存的分配,在保证当前应用的显存使用的情况下,防止出现申请显存的数量超过GPGPU的全部显存,导致出现争抢显存的情况,从而保证各应用的显存供应,提高显存的使用效率。

本申请实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:

在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;

读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量;

判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;

若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存;

若待申请显存数量与已使用显存数量的和大于总分配显存数量,则向当前应用发送指定格式的显存不足信息。

可选的,上述处理器用于执行上述存储器存放的程序时,还能够实现上述任一显存分配方法。

上述电子设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现如下步骤:

在当前应用申请显存时,获取当前应用申请的显存的数量,得到待申请显存数量;

读取当前应用对应的预设配置文件中的总分配显存数量和已使用显存数量,其中,总分配显存数量为预先设定的给当前应用分配的显存数量的上限,已使用显数量存为当前应用已经分配的显存数量;

判断待申请显存数量与已使用显存数量的和是否大于总分配显存数量;

若待申请显存数量与已使用显存数量的和不大于总分配显存数量,则为当前应用分配待申请显存数量的显存。

可选的,上述计算机程序被处理器执行时,还能够实现上述任一显存分配方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

本文发布于:2023-04-13 07:05:08,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86342.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图