本公开涉及计算机,具体地,涉及一种显存管理方法、装置、系统、介质及设备。
背景技术:
1、随着信息技术的不断发展,ai(artificial intelligence,人工智能)深度学习技术的出现,使计算机的使用更加智能化。在设备中使用ai深度学习技术可以使数据处理更加智能化。进一步地,为了提高深度学习的速度,在深度学习领域中往往还采用gpu(graphics processing unit,图形处理器)对深度学习进行加速。为了满足深度学习加速需求,gpu所部署的独立显卡往往设计有相对较大的显存空间。
2、由于技术规范或者硬件设计等相关原因,在一些cpu(central processing unit,中央处理器)平台上,bios(basic input output system,基本输入输出系统)给pci(peripheral component interconnect,外设组件互联标准)bar(base addressregister,基址寄存器)配置的可分配空间受到限制,这使得显卡这样的pci设备能够被访问的显存空间受限。在这种场景下cpu在访问显存的时候只能在有限的空间内进行操作,而无法访问全部显存,从而导致不能将全部显存空间有效利用,造成空间浪费。
技术实现思路
1、本公开的目的是提供一种显存管理方法、装置、系统、介质及设备,在访问显存空间受限时,使得所有显存空间可以得到利用,提高了显存空间利用率。
2、为了实现上述目的,本公开实施例的第一方面提供一种显存管理方法,所述方法包括:
3、响应于上层应用申请显存空间的请求,确定所述上层应用对所申请显存空间的操作权限;
4、根据所述操作权限,确定用于创建所述所申请显存空间的目标显存池,并指示显卡在所述目标显存池创建目标显存空间,其中,所述目标显存池为可见显存池或者不可见显存池;
5、在所述操作权限非不可读写权限、且所述目标显存池为所述不可见显存池的情况下,在主存中创建对应所述目标显存空间的中转存储空间,所述中转存储空间用于通过直接内存访问dma中转所述上层应用对所述目标显存空间的操作数据;
6、返回所述目标显存空间的句柄给所述上层应用。
7、可选地,所述根据所述操作权限,确定用于创建所述所申请显存空间的目标显存池,包括:
8、当所述操作权限为只读权限或者读写权限时,在所述所申请显存空间小于所述可见显存池的空闲空间的情况下,确定用于创建所述所申请显存空间的目标显存池为所述可见显存池,或者,在所述所申请显存空间大于等于所述可见显存池的空闲空间的情况下,确定用于创建所述所申请显存空间的目标显存池为所述不可见显存池。
9、可选地,所述根据所述操作权限,确定用于创建所述所申请显存空间的目标显存池,包括:
10、当所述操作权限为不可读写权限时,确定用于创建所述所申请显存空间的目标显存池为所述不可见显存池。
11、可选地,所述上层应用对所述所申请显存空间的操作权限包括只读权限、读写权限以及不可读写权限,相应地,所述上层应用对所述目标显存空间的操作包括读取操作以及写入操作;
12、在所述目标显存池为所述不可见显存池的情况下,所述方法还包括:
13、响应于所述上层应用对所述目标显存空间的读取操作,通过dma获取所述目标显存空间中对应的读取数据,将所述读取数据写入所述中转存储空间,并将所述中转存储空间中的读取数据返回给所述上层应用;或者,
14、响应于所述上层应用将计算数据写入所述目标显存空间的写入操作,将所述计算数据写入中转存储空间,并通过dma将所述中转存储空间中的计算数据搬运到所述目标显存空间。
15、可选地,在所述目标显存池为所述可见显存池的情况下,所述方法还包括:
16、响应于所述上层应用对所述目标显存空间的读取操作,将所述目标显存空间中对应的读取数据返回给所述上层应用;或者,
17、响应于所述上层应用将计算数据写入所述目标显存空间的写入操作,将所述计算数据写入所述目标显存空间。
18、可选地,在返回所述目标显存空间的句柄给所述上层应用之后,所述方法还包括:
19、接收上层应用发送的所述目标显存空间的句柄,确定所述主存中是否存在对应所述目标显存空间的中转存储空间;
20、在确定所述主存中存在对应所述目标显存空间的中转存储空间的情况下,将所述中转存储空间映射到主存,得到第一映射地址,或者,在确定所述主存中不存在对应所述目标显存空间的中转存储空间的情况下,将所述目标显存空间映射到主存,得到第二映射地址;
21、其中,所述第一映射地址用于操作所述中转存储空间,所述第二映射地址用于操作所述目标显存空间。
22、本公开实施例的第二方面提供一种显存管理装置,所述装置包括:
23、响应模块,用于响应于上层应用申请显存空间的请求,确定所述上层应用对所申请显存空间的操作权限;
24、确定模块,用于根据所述操作权限,确定用于创建所述所申请显存空间的目标显存池,并指示显卡在所述目标显存池创建目标显存空间,其中,所述目标显存池为可见显存池或者不可见显存池;
25、创建模块,用于在所述操作权限非不可读写权限、且所述目标显存池为所述不可见显存池的情况下,在主存中创建对应所述目标显存空间的中转存储空间,所述中转存储空间用于通过直接内存访问dma中转所述上层应用对所述目标显存空间的操作数据;
26、返回模块,用于返回所述目标显存空间的句柄给所述上层应用。
27、本公开实施例的第三方面提供一种显存管理系统,所述系统包括中央处理器cpu和显卡,所述显卡的显存包括可见显存池和不可见显存池,所述可见显存池为基址寄存器bar映射到所述显存的存储空间,所述不可见显存池为所述显存中除了所述可见显存池以外的存储空间;
28、所述cpu用于响应于上层应用申请显存空间的请求,确定所述上层应用对所申请显存空间的操作权限,根据所述操作权限确定用于创建所述所申请显存空间的目标显存池,并指示显卡在所述目标显存池创建目标显存空间,以及在所述操作权限非不可读写权限、且所述目标显存池为所述不可见显存池的情况下,在主存中创建对应所述目标显存空间的中转存储空间,所述中转存储空间用于通过直接内存访问dma中转所述上层应用对所述目标显存空间的操作数据;
29、所述显卡用于响应所述指示,在所述目标显存池中创建所述目标显存空间;
30、所述cpu用于返回所述目标显存空间的句柄给所述上层应用。
31、本公开实施例的第四方面提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面中任一项所提供的显存管理方法的步骤。
32、本公开实施例的第五方面,提供一种电子设备,包括:
33、存储器,其上存储有计算机程序;
34、处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所提供的显存管理方法的步骤。
35、通过上述技术方案,根据上层应用对所申请显存空间的操作权限,确定在可见显存池或者不可见显存池创建目标显存空间。由于访问不可见显存池受限,因此本公开实施例在上层应用对所申请显存空间的操作权限非不可读写权限、且目标显存池为不可见显存池的情况下,在主存中创建对应目标显存空间的中转存储空间。这样,可以基于直接内存访问dma技术,通过中转存储空间中转上层应用对目标显存空间的操作数据,从而使得所有显存空间可以得到利用,提高了显存空间利用率。
36、本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。