一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

渲染池显存管理方法及装置与流程

2021-10-24 05:16:00 来源:中国专利 TAG:显存 渲染 装置 公开 计算机


1.本公开涉及计算机技术领域,尤其涉及渲染池显存管理方法及装置。


背景技术:

2.目前渲染池中所有任务对显卡显存是一种没有限制的共享式访问,也就是说不同的渲染任务使用的显存大小没有进行量化,主要由虚拟显卡渲染任务本身决定,这样会导致一些虚拟显卡渲染任务由于任务量重而占用大量的显存,而一些虚拟显卡渲染任务由于一时任务量轻占用的显存小。这样对渲染池中的虚拟显卡之间造成不均衡,在iaas层对每个虚拟显卡的收费存在无法量化的问题。


技术实现要素:

3.本公开实施例提供一种渲染池显存管理方法及装置,能够解决渲染池中的虚拟显卡之间造成不均衡,并且在iaas层对每个虚拟显卡的收费存在无法量化的问题。所述技术方案如下:
4.根据本公开实施例的第一方面,提供一种渲染池显存管理方法,所述方法包括:
5.配置虚拟显卡的显存大小;
6.在所述虚拟显卡进行渲染时,从渲染任务中获取渲染资源以及所述渲染资源大小;
7.根据所述渲染资源大小获取所述虚拟显卡中的渲染总资源大小;
8.检查所述渲染资源中是否存在资源释放请求,所述资源释放请求中包括:目标渲染资源的标记,所述资源释放请求用于请求释放所述目标渲染资源;
9.如果所述渲染资源中存在所述资源释放请求,则根据所述目标渲染资源的标记释放所述目标渲染资源;
10.如果所述渲染资源中不存在所述资源释放请求,判断当前渲染总资源大小是否大于或等于所述虚拟显卡的显存大小;
11.若大于或等于,则按照预设规则释放虚拟显存。
12.本公开实施例提供的渲染池显存管理方法,方法包括:配置虚拟显卡的显存大小;在虚拟显卡进行渲染时,从渲染任务中获取渲染资源以及渲染资源大小;根据渲染资源大小获取虚拟显卡中的渲染总资源大小;检查渲染资源中是否存在资源释放请求,资源释放请求中包括:目标渲染资源的标记,资源释放请求用于请求释放目标渲染资源;如果渲染资源中存在资源释放请求,则根据目标渲染资源的标记释放目标渲染资源;如果渲染资源中不存在资源释放请求,判断当前渲染总资源大小是否大于或等于虚拟显卡的显存大小;若大于或等于,则按照预设规则释放虚拟显存,在释放虚拟显存后根据渲染资源执行渲染操作;若小于,则根据渲染资源执行渲染操作。其中,为每个虚拟显卡直接配置显存大小,使虚拟显卡的显存不会随意增长,均衡化了渲染池中的各虚拟显卡,并且通过虚拟显卡显存的大小设置的方式,可以定位虚拟显卡的等级,从而细化收费模式。
13.在一个实施例中,所述方法还包括:
14.根据所述渲染资源确定所述渲染资源的标记。
15.在一个实施例中,所述根据所述渲染资源确定所述渲染资源的标记,包括:
16.对所述渲染资源进行哈希运算,得到所述渲染资源的哈希值;
17.确定所述哈希值为所述渲染资源的标记。
18.在一个实施例中,所述根据所述目标渲染资源的标记释放所述目标渲染资源之后,所述方法还包括:
19.获取所述目标渲染资源的标记对应的所述目标渲染资源的大小;
20.从所述渲染总资源大小中减去所述目标渲染资源的大小,获取所述当前渲染总资源大小。
21.在一个实施例中,所述按照预设规则释放虚拟显存,包括:
22.获取预设时间范围内使用频率最小的渲染资源的标记;
23.释放所述使用频率最小的渲染资源的标记对应的虚拟显存。
24.在一个实施例中,所述获取预设时间范围内使用频率最小的渲染资源的标记,包括:
25.根据最近最少使用算法来获取所述预设时间范围内使用频率最小的渲染资源的标记。
26.在一个实施例中,所述根据最近最少使用算法来获取所述预设时间范围内使用频率最小的渲染资源的标记,包括:
27.使用链表保存所有渲染资源的标记;
28.新加入的渲染资源的标记插入得到链表的头部;
29.在第一渲染资源被访问时,将所述第一渲染资源对应的标记移到所述链表的头部;
30.确定所述链表中末尾的渲染资源的标记为所述预设时间范围内使用频率最小的渲染资源的标记。
31.根据本公开实施例的第二方面,提供一种渲染池显存管理装置,所述装置包括:
32.配置模块,用于配置虚拟显卡的显存大小;
33.第一获取模块,用于在所述虚拟显卡进行渲染时,从渲染任务中获取渲染资源以及所述渲染资源大小;
34.第二获取模块,用于根据所述渲染资源大小获取所述虚拟显卡中的渲染总资源大小;
35.检查模块,用于检查所述渲染资源中是否存在资源释放请求,所述资源释放请求中包括:目标渲染资源的标记,所述资源释放请求用于请求释放所述目标渲染资源;
36.第一释放模块,用于如果所述渲染资源中存在所述资源释放请求,则根据所述目标渲染资源的标记释放所述目标渲染资源;
37.判断模块,用于如果所述渲染资源中不存在所述资源释放请求,判断当前渲染总资源大小是否大于或等于所述虚拟显卡的显存大小;
38.第二释放模块,用于若大于或等于,则按照预设规则释放虚拟显存。
39.在一个实施例中,所述装置还包括:
40.确定模块,用于根据所述渲染资源确定所述渲染资源的标记。
41.在一个实施例中,所述确定模块包括:
42.运算子模块,用于对所述渲染资源进行哈希运算,得到所述渲染资源的哈希值;
43.第一确定子模块,用于确定所述哈希值为所述渲染资源的标记。
44.在一个实施例中,所述装置还包括:
45.第三获取模块,用于在第一释放模块根据所述目标渲染资源的标记释放所述目标渲染资源之后,获取所述目标渲染资源的标记对应的所述目标渲染资源的大小;
46.第四获取模块,用于从所述渲染总资源大小中减去所述目标渲染资源的大小,获取所述当前渲染总资源大小。
47.在一个实施例中,所述第二释放模块包括:
48.第一获取子模块,用于获取预设时间范围内使用频率最小的渲染资源的标记;
49.第一释放子模块,用于释放所述使用频率最小的渲染资源的标记对应的虚拟显存。
50.在一个实施例中,所述第一获取子模块包括:
51.第二获取子模块,用于根据最近最少使用算法来获取所述预设时间范围内使用频率最小的渲染资源的标记。
52.在一个实施例中,所述第二获取子模块包括:
53.保存子单元,用于使用链表保存所有渲染资源的标记;
54.插入子单元,用于将新加入的渲染资源的标记插入得到链表的头部;
55.转移子单元,用于在第一渲染资源被访问时,将所述第一渲染资源对应的标记移到所述链表的头部;
56.第二确定子单元,用于确定所述链表中末尾的渲染资源的标记为所述预设时间范围内使用频率最小的渲染资源的标记。
57.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
58.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
59.图1是本公开实施例提供的一种渲染池显存管理方法的流程图;
60.图2是本公开实施例提供的一种渲染任务格式示意图;
61.图3是本公开实施例提供的一种渲染池显存管理方法的流程图;
62.图4是本公开实施例提供的一种渲染池显存管理方法的流程图;
63.图5是本公开实施例提供的一种基于lru的资源释放方案的示意图;
64.图6是本公开实施例提供的一种显卡划分示意图;
65.图7是本公开实施例提供的一种渲染池显存管理装置的结构示意图;
66.图8是本公开实施例提供的一种渲染池显存管理装置的结构示意图;
67.图9是本公开实施例提供的一种渲染池显存管理装置中确定模块的结构示意图;
68.图10是本公开实施例提供的一种渲染池显存管理装置的结构示意图;
69.图11是本公开实施例提供的一种渲染池显存管理装置中第二释放模块的结构示意图;
70.图12是本公开实施例提供的一种渲染池显存管理装置中第一获取子模块的结构示意图;
71.图13是本公开实施例提供的一种渲染池显存管理装置中第二获取子模块的结构示意图。
具体实施方式
72.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
73.图1是本公开实施例提供的一种渲染池显存管理方法的流程图,如图1所示,方法包括:
74.101、配置虚拟显卡的显存大小;
75.其中,可以人工配置虚拟显卡的显存大小,也可以自动配置虚拟显卡的显存大小,本公开不对虚拟显卡的显存大小的配置方式加以限制。
76.配置虚拟显卡的显存大小,示例的,配置vmem大小为vms,而实际的物理显存大小为pms,在物理显存中用于管理虚拟显存的大小为vpms,其中,vpms小于实际的物理显存大小。
77.示例的,vpms可以为物理显存实际大小的85%。
78.102、在虚拟显卡进行渲染时,从渲染任务中获取渲染资源以及渲染资源大小;
79.虚拟显卡在进行渲染时以相对独立的渲染任务进行处理,渲染任务格式如图2所示,其中,cmd为渲染任务交互命令;obj为渲染任务对象;len为渲染任务大小。
80.虚拟显卡在进行渲染时直接将渲染任务进行解析并解码出渲染指令后进行实际的渲染操作。因此在进行实际的渲染操作之前,可以知道本次渲染任务的渲染指令和渲染资源大小(纹理数据等)。本公开中的渲染池显存管理方法主要依据渲染资源的大小,该显存管理方法由于是在用户空间的一种资源界定方法,因此无法进行精确的划分。而在对物理gpu的显存进行划分时将利用实际显存的85%进行管理操作。
81.103、根据渲染资源大小获取虚拟显卡中的渲染总资源大小;
82.每次在获取到渲染资源大小后,还会去获取虚拟显卡中的渲染总资源大小,此时的渲染总资源大小为在接收到渲染任务之前的虚拟显卡中的渲染资源大小加上当前获取到的渲染资源大小之和。
83.104、检查渲染资源中是否存在资源释放请求,资源释放请求中包括:目标渲染资源的标记,资源释放请求用于请求释放目标渲染资源;如果渲染资源中存在资源释放请求,执行步骤105;如果渲染资源中不存在资源释放请求,执行步骤106。
84.渲染资源的标记用于标记渲染资源,以避免渲染资源之间相互混淆。在一种可实现方式中,可以根据渲染资源确定渲染资源的标记。
85.示例的,可以对渲染资源进行哈希运算,得到渲染资源的哈希值,确定得到的哈希
值为渲染资源的标记。
86.实际实现时,可以通过各种方式确定渲染资源的标记(资源id)。在一种优选实施方式中,可以对渲染资源进行哈希运算,得到该渲染资源的哈希值,将该哈希值确定为渲染资源的标记,通过这种方式来对渲染资源进行标记的好处是可以确保虚拟显卡对渲染资源只统计一次并且在后续渲染资源释放时也只会释放一次。
87.对渲染资源进行哈希运算,是指对满足图2格式的渲染任务数据整体进行哈希运算,得到一个哈希值,这个哈希值作为当前渲染资源的标记。
88.105、根据目标渲染资源的标记释放目标渲染资源;
89.106、判断当前渲染总资源大小是否大于或等于虚拟显卡的显存大小;如果当前渲染总资源大小大于或等于虚拟显卡的显存大小,执行步骤107;如果当前渲染总资源大小小于虚拟显卡的显存大小,执行步骤108;
90.107、按照预设规则释放虚拟显存;
91.在一个实施例中,如图3所示,按照预设规则释放虚拟显存,包括以下子步骤1071

1072:
92.1071、获取预设时间范围内使用频率最小的渲染资源的标记;
93.在一种实现方式中,根据最近最少使用算法来获取预设时间范围内使用频率最小的渲染资源的标记。
94.实际实现时,可以根据lru(least recently used,最近最少使用)算法来确定当前最长时间没有使用的渲染资源。其实现原理是:根据数据的历史访问记录来进行淘汰数据,其核心思想是:如果数据最近被访问过,那么将来被访问的几率也更高,而最近最少被访问的渲染资源则可以被淘汰(即,释放)。
95.具体的,根据最近最少使用算法来获取预设时间范围内使用频率最小的渲染资源的标记,如图4所示,包括以下子步骤10711

10714:
96.10711、使用链表保存所有渲染资源的标记;
97.10712、新加入的渲染资源的标记插入得到链表的头部;
98.10713、在第一渲染资源被访问时,将第一渲染资源对应的标记移到链表的头部;
99.其中,第一渲染资源为链表中保存的任一渲染资源。
100.10714、确定链表中末尾的渲染资源的标记为预设时间范围内使用频率最小的渲染资源的标记。
101.一种可选的,基于lru的资源释放方案,其原理可参照图5。
102.首先,使用一个链表保存渲染资源的标记,新加入的渲染资源的标记插入链表头部;每当某一个渲染资源被访问,则将相应的渲染资源的移到链表头部;当需要释放虚拟显存时,选取列表末尾的渲染资源的,从物理显存中将该渲染资源的对应的渲染资源释放掉,同时,向虚拟显卡发送一个资源释放请求,其中携带该被释放的渲染资源的标记。
103.1072、释放使用频率最小的渲染资源的标记对应的虚拟显存。
104.可以计算出最近最少使用的渲染资源并获取渲染资源的标记,根据渲染资源的标记将物理显存中的该渲染资源进行释放,同时,接着执行步骤102

104操作。
105.继续按照上述的例子,判断渲染总资源大小,是否超过虚拟显存配置大小vms,如果没有超过继续进行渲染,同样执行102

104操作;如果超过vms,即表示虚拟显存不足,此
时,转入步骤107进行虚拟显存的释放。
106.本公开中的方法主要是显存的划分,为虚拟显卡分配不同的显存大小。由于将一张物理显卡虚拟为多张虚拟显卡,如图6所示,因此,各个虚拟显卡在渲染特性方面都是相同的,因此对不同虚拟显卡的定位主要依靠算力划分和显存划分。但是gpu算力在用户空间无法量化,只能通过显存管理的方法确定虚拟显卡的性能。
107.在为虚拟显卡分配显存时,可以为不同的虚拟显卡分配不同的显存。如果虚拟显卡中显存大,对于大任务量的渲染可以一次性完成,性能强;如果虚拟显卡中显存小,对大任务量的渲染需要分多次进行渲染,性能低。
108.并且,本公开中的显存管理方法主要是将虚拟显卡(vgpu)渲染时的资源进行了限定,在实际的渲染中依然共享所有的物理显存。
109.而目前渲染池中所有任务对显卡显存是一种没有限制的共享式访问,也就是说不同的渲染任务使用的显存大小没有进行量化,主要由虚拟显卡渲染任务本身决定,这样会导致一些虚拟显卡渲染任务由于任务量重而占用大量的显存,而一些虚拟显卡渲染任务由于一时任务量轻占用的显存小。这样对渲染池中虚拟机显卡之间造成不均衡,在iaas层对每个虚拟显卡的收费存在无法量化的问题。
110.而本公开提出的渲染池中的显存管理方法将虚拟显卡的渲染任务使用的显存进行量化与约束,为每个虚拟显卡直接配置显存大小,使虚拟显卡的显存不会随意增长。
111.并且通过虚拟显卡显存的大小设置的方式,可以定位虚拟显卡的等级,从而细化收费模式。例如:为虚拟显卡分配显存大的收费高,而为虚拟显卡分配显存小的收费低。
112.本公开实施例提供的渲染池显存管理方法,方法包括:配置虚拟显卡的显存大小;在虚拟显卡进行渲染时,从渲染任务中获取渲染资源以及渲染资源大小;根据渲染资源大小获取虚拟显卡中的渲染总资源大小;检查渲染资源中是否存在资源释放请求,资源释放请求中包括:目标渲染资源的标记,资源释放请求用于请求释放目标渲染资源;如果渲染资源中存在资源释放请求,则根据目标渲染资源的标记释放目标渲染资源;如果渲染资源中不存在资源释放请求,判断当前渲染总资源大小是否大于或等于虚拟显卡的显存大小;若大于或等于,则按照预设规则释放虚拟显存,在释放虚拟显存后根据渲染资源执行渲染操作;若小于,则根据渲染资源执行渲染操作。其中,为每个虚拟显卡直接配置显存大小,使虚拟显卡的显存不会随意增长,均衡化了渲染池中的各虚拟显卡,并且通过虚拟显卡显存的大小设置的方式,可以定位虚拟显卡的等级,从而细化收费模式。
113.在一个实施中,根据目标渲染资源的标记释放目标渲染资源之后,方法还包括以下子步骤a1

a2:
114.a1、获取目标渲染资源的标记对应的目标渲染资源的大小;
115.a2、从渲染总资源大小中减去目标渲染资源的大小,获取当前渲染总资源大小。
116.如果渲染资源中存在资源释放请求,则根据其中的目标渲染资源的标记,确定该已被释放的渲染资源的大小,然后,从渲染的总资源大小中减去该释放的渲染资源的大小,得到当前渲染的总资源大小。
117.基于上述图1对应的实施例中所描述的渲染池显存管理方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
118.本公开实施例提供一种渲染池显存管理装置,如图7所示,该渲染池显存管理装置
包括:
119.配置模块11,用于配置虚拟显卡的显存大小;
120.第一获取模块12,用于在所述虚拟显卡进行渲染时,从渲染任务中获取渲染资源以及所述渲染资源大小;
121.第二获取模块13,用于根据所述渲染资源大小获取所述虚拟显卡中的渲染总资源大小;
122.检查模块14,用于检查所述渲染资源中是否存在资源释放请求,所述资源释放请求中包括:目标渲染资源的标记,所述资源释放请求用于请求释放所述目标渲染资源;
123.第一释放模块15,用于如果所述渲染资源中存在所述资源释放请求,则根据所述目标渲染资源的标记释放所述目标渲染资源;
124.判断模块16,用于如果所述渲染资源中不存在所述资源释放请求,判断当前渲染总资源大小是否大于或等于所述虚拟显卡的显存大小;
125.第二释放模块17,用于若大于或等于,则按照预设规则释放虚拟显存。
126.在一个实施例中,如图8所示,所述装置还包括:
127.确定模块18,用于根据所述渲染资源确定所述渲染资源的标记。
128.在一个实施例中,如图9所示,所述确定模块18包括:
129.运算子模块181,用于对所述渲染资源进行哈希运算,得到所述渲染资源的哈希值;
130.第一确定子模块182,用于确定所述哈希值为所述渲染资源的标记。
131.在一个实施例中,如图10所示,所述装置还包括:
132.第三获取模块19,用于在第一释放模块根据所述目标渲染资源的标记释放所述目标渲染资源之后,获取所述目标渲染资源的标记对应的所述目标渲染资源的大小;
133.第四获取模块20,用于从所述渲染总资源大小中减去所述目标渲染资源的大小,获取所述当前渲染总资源大小。
134.在一个实施例中,如图11所示,所述第二释放模块17包括:
135.第一获取子模块171,用于获取预设时间范围内使用频率最小的渲染资源的标记;
136.第一释放子模块172,用于释放所述使用频率最小的渲染资源的标记对应的虚拟显存。
137.在一个实施例中,如图12所示,所述第一获取子模块171包括:
138.第二获取子模块1711,用于根据最近最少使用算法来获取所述预设时间范围内使用频率最小的渲染资源的标记。
139.在一个实施例中,如图13所示,所述第二获取子模块1711包括:
140.保存子单元17111,用于使用链表保存所有渲染资源的标记;
141.插入子单元17112,用于将新加入的渲染资源的标记插入得到链表的头部;
142.转移子单元17113,用于在第一渲染资源被访问时,将所述第一渲染资源对应的标记移到所述链表的头部;
143.第二确定子单元17114,用于确定所述链表中末尾的渲染资源的标记为所述预设时间范围内使用频率最小的渲染资源的标记。
144.基于上述图1对应的实施例中所描述的渲染池显存管理方法,本公开实施例还提
供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:read only memory,rom)、随机存取存储器(英文:random access memory,ram)、cd

rom、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的渲染池显存管理方法,此处不再赘述。
145.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
146.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜