CN109766179B - 一种显存分配方法以及装置 - Google Patents
一种显存分配方法以及装置 Download PDFInfo
- Publication number
- CN109766179B CN109766179B CN201711097282.1A CN201711097282A CN109766179B CN 109766179 B CN109766179 B CN 109766179B CN 201711097282 A CN201711097282 A CN 201711097282A CN 109766179 B CN109766179 B CN 109766179B
- Authority
- CN
- China
- Prior art keywords
- video memory
- gpu
- virtual gpu
- virtual
- physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种显存分配的方法、一种显存分配的装置、电子设备以及存储介质,所述方法包括:根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;保存为所述虚拟GPU分配的至少两个显存段的物理地址。所述方法以显存段为单位为虚拟GPU分配显存,分配的显存段的总容量满足虚拟GPU的容量要求即可,无需保证物理GPU所对应的显存为连续状态,避免了现有技术中的显存分配过程受物理GPU的显存分布状态所约束,从而使得物理GPU所对应的显存空间能够更加合理、充分利用。
Description
技术领域
本发明涉及GPU虚拟化领域,具体涉及一种显存分配方法。本发明同时涉及一种显存分配装置、电子设备以及存储介质。
背景技术
目前虚拟机系统中的图形处理方式有三种,分别为:采用虚拟显卡的方式,采用显卡直通的方式,以及采用GPU虚拟化的方式,其中,GPU虚拟化也称显卡虚拟化,是指将物理GPU的资源同时供给多个虚拟机进行使用,该技术也称GPU一对多虚拟化技术。通过上述GPU虚拟化技术,可满足在游戏、视频编辑、画面渲染、以及计算机辅助设计等方面对GPU的使用需求。
所述物理GPU的资源包括运算时间片和显存空间(英文名称为Frame Buffer);在一个物理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的容量要求即可,而无需保持所述物理GPU所对应的显存为连续状态。因此,避免了现有技术中显存的分配过程受物理GPU的显存分布状态所约束,从而使得物理GPU所对应的显存空间能够更加合理、充分利用。
附图说明
图1为本申请第一实施例提供的显存分配方法的流程图;
图2为一种显存分配技术中虚拟GPU的地址转换示意图;
图3为一种显存分配技术中虚拟GPU地址空间到物理GPU地址空间的映射效果图;
图4-1为一种显存分配技术中物理GPU的地址空间上的显存分布图;
图4-2为一种显存分配技术中释放部分显存后的物理GPU的地址空间上的显存分布图;
图5为本申请第一实施例提供的使用本申请所提供的显存分配方法进行显存分配的效果图;
图6为本申请第二实施例提供的装置的单元框图;
图7是本申请第三实施例提供的电子设备示意图;
图8是本申请第五实施例提供的显存分配方法的流程图;
图9是本申请第六实施例提供的装置的单元框图;
图10是本申请第七实施例提供的电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
本申请提供一种显存分配方法,一种显存分配装置、一种电子设备以及一种存储介质,以下提供实施例进行详细说明。本申请第一实施例提供一种显存分配方法,该方法主要应用于GPU虚拟化过程中,其实施主体可为对虚拟化运行过程进行管理的虚拟机管理程序,例如虚拟机监视器Hypervisor。请参考图1理解该实施例,图1为本实施例提供的显存分配方法的流程图。
如图1所示,所述显存分配方法包括如下步骤:
S101,根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的。
本步骤的作用在于根据虚拟GPU的容量要求,以显存段的形式为其分配显存。在本方案的显存分配方法中,该步骤为本方法的核心操作步骤。
所述GPU(英文全称Graphic Processing Unit)为计算机图形处理器的英文简称,是专门用于处理图形信息的核心处理器。所述物理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在创建时所需要的显存容量,显存(Frame Buffer),也称帧缓存,用于存放即将被GPU处理以及处理过的图形信息,其功能类似于计算机内存,而GPU功能与中央处理器CPU功能相似,每一个GPU都有与其处理能力相对应的显存空间。
在一种显存分配技术中,显存分配的过程如下所示:
假设一个物理GPU能支持A、B、C、D四种类型的虚拟GPU,其中A的性能等同于物理GPU的性能,B的性能为物理GPU性能的1/2,C的性能为物理GPU性能的1/4,D的性能为物理GPU性能的1/8,则上述对虚拟GPU分配显存空间的方式为按照上述的性能比例进行相应划分。例如,物理GPU一共有x GB的显存空间,对于A类型的虚拟GPU而言,需使用物理GPU上所有的显存空间,即x GB;相应的,B类型的虚拟GPU使用x/2GB的显存空间;C类型的虚拟GPU使用x/4GB的显存空间;D类型使用x/8GB的显存空间。
如果虚拟GPU需对某一进程进行访问,则需首先进行地址映射,具体为:通过GPU存储管理器将所述进程在所述虚拟GPU上的虚拟地址转换为所述虚拟GPU的物理地址,该过程采用该虚拟GPU所对应的虚拟机里的GPU驱动所维护的映射页表进行地址映射而完成;然后,对所述虚拟GPU的物理地址加上事先分配的固定相位差,以转换成物理GPU的物理地址。该过程可参考图2,图2为一种显存分配技术中虚拟GPU的地址转换示意图。
每个虚拟GPU都有与其对应的地址空间,所述地址空间中用于存放所述虚拟GPU所对应的显存的空间为实际使用的虚拟地址空间,所述虚拟GPU地址空间到所述物理GPU地址空间的映射效果请参考图3,如图3所示,在所述虚拟GPU1和虚拟GPU2的地址空间上,对于所述虚拟GPU1和虚拟GPU2来说,其所拥有的显存是连续的,在所述物理GPU的地址空间上,为所述虚拟GPU1和虚拟GPU2所分配的显存是物理连续的。
如图4-1中所示,对应于同一个物理GPU,先后创建了一个D类型的虚拟GPU(占用1/8显存),C类型的虚拟GPU(占用1/4显存),B类型的虚拟GPU(占用1/2显存)和一个D类型的虚拟GPU(占用1/8显存)。从GPU的角度看,物理GPU所对应的显存在物理GPU的地址空间中是连续的一段,其划分给每一个虚拟GPU所对应的显存也是连续的。如果D1和D2两个虚拟GPU被释放了,则如图4-2所示,在所述物理GPU所对应的显存上共有1/4的显存和GPU时间片剩余,然而,该1/4的显存却无法用于创建一个C类型的虚拟GPU,其原因在于,所述剩余的1/4的显存在所述物理GPU的地址空间上是不连续的。
本实施例提供的显存分配方法,其分配原理与上述一种显存分配的方法相同,仅在具体分配方式上有所区别,本实施例是以显存段的形式对虚拟GPU进行显存分配,而无需保证对虚拟GPU所分配的显存以物理连续的形式存在。
所述显存段指的是预先对所述物理GPU所对应的显存空间进行划分而获得的显存容量单位,其作用在于使所述物理GPU所对应的显存空间以更小单位呈现,从而在GPU虚拟化的过程中,能够以物理GPU所对应的更小单位的显存对所述虚拟GPU进行显存分配,即、对于每一个虚拟GPU而言,其所需分配的显存段的数量至少为两个。
所述对所述物理GPU所对应的显存空间进行划分,可预先确定每个显存段的容量,按所述容量确定显存段的数量,例如,对于显存空间为8GB的物理GPU,预先确定每个显存段的容量为128MB、256MB或者512MB等,则对应的显存段的数量为64个、32个或16个;或者按预先确定的显存段的数量确定显存段的容量。本实施例中选用后者,将所述物理GPU所对应的显存空间按存储容量平均划分成预定数目的具有相同存储容量的显存段,例如,若预将显存空间为8GB的物理GPU所对应的显存划分为32个显存段,则每个显存段的显存空间为256MB;同理,若预将显存空间为8GB的物理GPU所对应的显存划分为16个显存段,则每个显存段的显存空间为512MB。
对于所述对所述物理GPU所对应的显存空间进行划分的实施过程,可通过GPU存储管理器完成,所述GPU存储管理器的功能与内存管理单元(英文名称Memory ManagementUnit,简称MMU)的功能类似,主要用于进行显存管理,以及提供虚实地址转换等硬件支持。本实施例中,所述GPU存储管理器增设用于配置显存段容量的显存段配置接口,该接口的寄存器可存储显存段的配置信息,如每个显存段所占的容量大小。
所述根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配显存段,该过程实质为以显存段为单位为待创建的虚拟GPU分配显存,在满足所述虚拟GPU所需的总的显存容量的要求下,对于所述显存段的位置不作要求,即,对于各显存段之间的连续性无要求。该过程可通过如下步骤完成:
首先,按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量,计算所述虚拟GPU所需的显存段的数量。例如,基于显存空间为8GB的物理GPU上创建性能为其1/4的虚拟GPU,则相应的,该虚拟GPU所需显存为2GB,已知所述物理GPU所对应的显存空间已预先划分成32个,即每个显存段的显存空间为256MB,因此所述虚拟GPU所需的2GB显存所对应的显存段的数量为8个。
其次,从所述物理GPU所对应的显存的剩余显存段中,按所述数量选取显存段。所述剩余显存段,指的是所述物理GPU所对应的显存空间中未分配给其它虚拟GPU的、或者其它虚拟GPU释放后所获得的可用于重新分配的显存段。例如,上述基于显存空间为8GB的物理GPU上已创建了显存空间为4GB的虚拟GPU,剩余的可用于分配的显存空间为4GB,对应的剩余显存段的个数为16个,所述16个显存段的位置为所述物理GPU所对应的显存空间的任意位置,从所述16个显存段中任意选取8个分配给所述预创建的虚拟GPU,以作为所述虚拟GPU可使用的显存空间。
S102,保存为所述虚拟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的地址空间的分布,因此,对于虚拟层面无任何影响。
使用本申请所提供的显存分配方法进行显存分配的效果如图5所示,由图5可知,本申请提供的显存分配方法,在不影响GPU虚拟化的前提下,对物理GPU所对应的显存空间的分配方式更加灵活,使得物理GPU所对应的显存空间能够更加合理、充分的利用。
本申请第二实施例提供一种显存分配装置,该显存分配装置与本申请第一实施例提供的显存分配方法对应,在此予以简要介绍。
请同时参考图6;该图为本申请第二实施例的单元框图。
本申请第二实施例提供的显存分配装置,包括:显存段分配单元601以及显存段物理地址存放单元602。
显存段分配单元601,用于根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
显存段物理地址存放单元602,用于保存为所述虚拟GPU分配的至少两个显存段的物理地址。
可选的,所述虚拟GPU对应设置有分段页表,所述为所述虚拟GPU分配的至少两个显存段的物理地址存储于所述分段页表中。
可选的,所述分段页表可用于实现将所述虚拟GPU地址空间上的物理地址转换为物理GPU地址空间上的物理地址。
可选的,所述分段页表可独立设置为打开/闭合模式。
可选的,所述分段页表包括多个条目,每个所述条目对应一个为所述虚拟GPU分配的显存段。
可选的,所述分段页表的存放地址存储于分段页表地址寄存器中,所述分段页表地址寄存器指向处于运行中的虚拟GPU所对应的分段页表。
可选的,所述预先对物理GPU所对应的显存进行划分,包括:
将所述物理GPU所对应的显存按存储容量划分成预定数目的具有相同存储容量的显存段。
可选的,所述将所述物理GPU所对应的显存按存储容量划分成预定数目的具有相同存储容量的显存段,可通过显存段配置接口完成。
可选的,所述根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段,包括:
按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量计算所述虚拟GPU所需显存段的数量;
从所述物理GPU所对应的显存的剩余显存段中,按所述所需显存段的数量选取显存段。
本申请第三实施例提供一种电子设备,请参看图7,该图为该电子设备实施例的示意图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
所述电子设备包括:处理器701;存储器702。所述存储器702用以存储一种显存分配的程序,所述程序在被所述处理器读取运行后,执行如下操作:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
保存为所述虚拟GPU分配的至少两个显存段的物理地址。
本申请第四实施例提供一种存储介质,其上存储有指令,所述指令被执行以用于:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
保存为所述虚拟GPU分配的至少两个显存段的物理地址。
可选的,所述虚拟GPU对应设置有分段页表,所述为所述虚拟GPU分配的至少两个显存段的物理地址存储于所述分段页表中。
可选的,所述分段页表可用于实现将所述虚拟GPU地址空间上的物理地址转换为物理GPU地址空间上的物理地址。
可选的,所述分段页表可独立设置为打开/闭合模式。
可选的,所述分段页表包括多个条目,每个所述条目对应一个为所述虚拟GPU分配的显存段。
可选的,所述分段页表的存放地址存储于分段页表地址寄存器中,所述分段页表地址寄存器指向处于运行中的虚拟GPU所对应的分段页表。
可选的,所述预先对物理GPU所对应的显存进行划分,包括:
将所述物理GPU所对应的显存按存储容量划分成预定数目的具有相同存储容量的显存段。
可选的,所述将所述物理GPU所对应的显存按存储容量划分成预定数目的具有相同存储容量的显存段,可通过显存段配置接口完成。
可选的,所述根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段,包括:
按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量计算所述虚拟GPU所需显存段的数量;
从所述物理GPU所对应的显存的剩余显存段中,按所述所需显存段的数量选取显存段。
本申请第五实施例提供一种显存分配的方法,本实施例与第一实施例内容相同的部分在此不再赘述,请参见第一实施例中的相应部分。请参考图8理解该实施例,图8为本实施例提供的显存分配方法的流程图。
如图8所示,所述显存分配的方法包括如下步骤:
S201,根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段。
本步骤与第一实施例中的步骤S101的区别在于:确定为虚拟GPU分配的至少两个显存段是不连续的,此处的不连续指的是为所述虚拟GPU分配的所有显存段不是完整连续的状态,其包含两种情况,分别为:为所述虚拟GPU分配的所有显存段中的任意两个显存段之间均为不连续状态;为所述虚拟GPU分配的所有显存段之间存在不确定数量的间断。
S202,保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址。
本申请第六实施例提供一种显存分配装置,该显存分配装置与本申请第五实施例提供的显存分配方法对应,在此予以简要介绍。
请同时参考图9;该图为本申请第六实施例的单元框图。
本申请第六实施例提供的显存分配装置,包括:显存段分配单元801以及显存段物理地址存放单元802。
显存段分配单元801,用于根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段;
显存段物理地址存放单元802,用于保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址。
本申请第七实施例提供一种电子设备,请参看图10,该图为该电子设备实施例的示意图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
所述电子设备,包括:处理器901;存储器902。所述存储器902用以存储一种显存分配的程序,所述程序在被所述处理器读取运行后,执行如下操作:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段;
保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址。
本申请第八实施例提供一种存储介质,其上存储有指令,所述指令被执行以用于:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
保存为所述虚拟GPU分配的至少两个显存段的物理地址。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (15)
1.一种显存分配方法,其特征在于,包括:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;所述为所述虚拟GPU分配至少两个显存段,包括:按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量计算所述虚拟GPU所需显存段的数量;从所述物理GPU所对应的显存的剩余显存段中,按所述所需显存段的数量选取显存段;所述剩余显存段是指所述物理GPU所对应的显存空间中未分配给其它虚拟GPU的、或者其它虚拟GPU释放后所获得的可用于重新分配的显存段;
保存为所述虚拟GPU分配的至少两个显存段的物理地址。
2.根据权利要求1所述的显存分配方法,其特征在于,所述虚拟GPU对应设置有分段页表,所述为所述虚拟GPU分配的至少两个显存段的物理地址存储于所述分段页表中。
3.根据权利要求2所述的显存分配方法,其特征在于,所述分段页表可用于实现将所述虚拟GPU地址空间上的物理地址转换为物理GPU地址空间上的物理地址。
4.根据权利要求2所述的显存分配方法,其特征在于,所述分段页表可独立设置为打开/闭合模式。
5.根据权利要求2所述的显存分配方法,其特征在于,所述分段页表包括多个条目,每个所述条目对应一个为所述虚拟GPU分配的显存段。
6.根据权利要求2所述的显存分配方法,其特征在于,所述分段页表的存放地址存储于分段页表地址寄存器中,所述分段页表地址寄存器指向处于运行中的虚拟GPU所对应的分段页表。
7.根据权利要求1-6任一项所述的显存分配方法,其特征在于,所述预先对物理GPU所对应的显存进行划分,包括:
将所述物理GPU所对应的显存按存储容量划分成预定数目的具有相同存储容量的显存段。
8.根据权利要求7所述的显存分配方法,其特征在于,所述将所述物理GPU所对应的显存按存储容量划分成预定数目的具有相同存储容量的显存段,可通过显存段配置接口完成。
9.一种显存分配的装置,其特征在于,包括:
显存段分配单元,用于根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;所述为所述虚拟GPU分配至少两个显存段,包括:按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量计算所述虚拟GPU所需显存段的数量;从所述物理GPU所对应的显存的剩余显存段中,按所述所需显存段的数量选取显存段;所述剩余显存段是指所述物理GPU所对应的显存空间中未分配给其它虚拟GPU的、或者其它虚拟GPU释放后所获得的可用于重新分配的显存段;
显存段物理地址保存单元,用于保存为所述虚拟GPU分配的至少两个显存段的物理地址。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一种显存分配的程序,该设备通电并通过所述处理器运行所述显存分配的程序后,执行下述步骤:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;所述为所述虚拟GPU分配至少两个显存段,包括:按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量计算所述虚拟GPU所需显存段的数量;从所述物理GPU所对应的显存的剩余显存段中,按所述所需显存段的数量选取显存段;所述剩余显存段是指所述物理GPU所对应的显存空间中未分配给其它虚拟GPU的、或者其它虚拟GPU释放后所获得的可用于重新分配的显存段;
保存为所述虚拟GPU分配的至少两个显存段的物理地址。
11.一种存储介质,其特征在于,其上存储有指令,所述指令被执行以用于:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;所述为所述虚拟GPU分配至少两个显存段,包括:按所述虚拟GPU所需显存的容量要求和所述显存段的存储容量计算所述虚拟GPU所需显存段的数量;从所述物理GPU所对应的显存的剩余显存段中,按所述所需显存段的数量选取显存段;所述剩余显存段是指所述物理GPU所对应的显存空间中未分配给其它虚拟GPU的、或者其它虚拟GPU释放后所获得的可用于重新分配的显存段;
保存为所述虚拟GPU分配的至少两个显存段的物理地址。
12.一种显存分配方法,其特征在于,包括:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段;
保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址;
其中,所述不连续的显存段包括:为所述虚拟GPU分配的所有显存段中的任意两个显存段之间均为不连续状态的显存段;或者,为所述虚拟GPU分配的所有显存段之间存在不确定数量的间断的显存段。
13.一种显存分配装置,其特征在于,包括:
显存段分配单元,用于根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
显存段物理地址保存单元,用于保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址;
其中,所述不连续的显存段包括:为所述虚拟GPU分配的所有显存段中的任意两个显存段之间均为不连续状态的显存段;或者,为所述虚拟GPU分配的所有显存段之间存在不确定数量的间断的显存段。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一种显存分配的程序,该设备通电并通过所述处理器运行所述显存分配的程序后,执行下述步骤:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址;
其中,所述不连续的显存段包括:为所述虚拟GPU分配的所有显存段中的任意两个显存段之间均为不连续状态的显存段;或者,为所述虚拟GPU分配的所有显存段之间存在不确定数量的间断的显存段。
15.一种存储介质,其特征在于,其上存储有指令,所述指令被执行以用于:
根据虚拟GPU所需显存的容量要求,为所述虚拟GPU分配至少两个不连续的显存段;其中,所述显存段是预先对物理GPU所对应的显存进行划分而获得的;
保存为所述虚拟GPU分配的至少两个不连续的显存段的物理地址;
其中,所述不连续的显存段包括:为所述虚拟GPU分配的所有显存段中的任意两个显存段之间均为不连续状态的显存段;或者,为所述虚拟GPU分配的所有显存段之间存在不确定数量的间断的显存段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711097282.1A CN109766179B (zh) | 2017-11-09 | 2017-11-09 | 一种显存分配方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711097282.1A CN109766179B (zh) | 2017-11-09 | 2017-11-09 | 一种显存分配方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766179A CN109766179A (zh) | 2019-05-17 |
CN109766179B true CN109766179B (zh) | 2023-03-14 |
Family
ID=66449232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711097282.1A Active CN109766179B (zh) | 2017-11-09 | 2017-11-09 | 一种显存分配方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766179B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764901B (zh) * | 2019-09-17 | 2021-02-19 | 创新先进技术有限公司 | 基于gpu资源的数据处理方法、电子设备及系统 |
CN112825042A (zh) * | 2019-11-20 | 2021-05-21 | 上海商汤智能科技有限公司 | 资源管理方法和装置、电子设备及存储介质 |
CN112732449B (zh) * | 2021-01-20 | 2024-04-09 | 湖南大学 | 基于gpu虚拟化技术的显存资源分配方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163320A (zh) * | 2011-04-27 | 2011-08-24 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
CN103136057A (zh) * | 2011-11-22 | 2013-06-05 | 中兴通讯股份有限公司 | 虚拟驱动的交互方法及装置 |
CN104216781A (zh) * | 2013-05-29 | 2014-12-17 | 上海联影医疗科技有限公司 | 显存分配方法及系统 |
CN105468542A (zh) * | 2014-09-03 | 2016-04-06 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9099051B2 (en) * | 2012-03-02 | 2015-08-04 | Ati Technologies Ulc | GPU display abstraction and emulation in a virtualization system |
US9086813B2 (en) * | 2013-03-15 | 2015-07-21 | Qualcomm Incorporated | Method and apparatus to save and restore system memory management unit (MMU) contexts |
-
2017
- 2017-11-09 CN CN201711097282.1A patent/CN109766179B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163320A (zh) * | 2011-04-27 | 2011-08-24 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
CN103136057A (zh) * | 2011-11-22 | 2013-06-05 | 中兴通讯股份有限公司 | 虚拟驱动的交互方法及装置 |
CN104216781A (zh) * | 2013-05-29 | 2014-12-17 | 上海联影医疗科技有限公司 | 显存分配方法及系统 |
CN105468542A (zh) * | 2014-09-03 | 2016-04-06 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109766179A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9547535B1 (en) | Method and system for providing shared memory access to graphics processing unit processes | |
KR101137172B1 (ko) | 가상 머신의 메모리를 관리하기 위한 시스템, 방법 및 프로그램 | |
US9875195B2 (en) | Data distribution among multiple managed memories | |
TWI696952B (zh) | 資源處理方法及裝置 | |
US9274839B2 (en) | Techniques for dynamic physical memory partitioning | |
US9183157B2 (en) | Method for creating virtual machine, a virtual machine monitor, and a virtual machine system | |
EP2581828B1 (en) | Method for creating virtual machine, virtual machine monitor and virtual machine system | |
US20160239333A1 (en) | Apparatus and method for scheduling graphics processing unit workloads from virtual machines | |
US8395631B1 (en) | Method and system for sharing memory between multiple graphics processing units in a computer system | |
US9715453B2 (en) | Computing method and apparatus with persistent memory | |
CN107077375B (zh) | 用于多操作系统的显示方法、装置和电子设备 | |
CN109766179B (zh) | 一种显存分配方法以及装置 | |
US8872839B2 (en) | Real-time atlasing of graphics data | |
CN105786589A (zh) | 一种云渲染系统、服务器及方法 | |
CN107077376B (zh) | 帧缓存实现方法、装置、电子设备和计算机程序产品 | |
US10242422B2 (en) | Computing methods and apparatuses with graphics and system memory conflict check | |
CN112465689A (zh) | 基于可见显存交换区的gpu不可见显存管理方法及系统 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
JP7058658B2 (ja) | 映像表示方法、装置、電子機器及びコンピュータプログラム製品 | |
US9158553B2 (en) | System and method for expediting virtual I/O server (VIOS) boot time in a virtual computing environment | |
US11960410B2 (en) | Unified kernel virtual address space for heterogeneous computing | |
US11847052B2 (en) | Memory allocation apparatus and method | |
JP6562419B2 (ja) | 情報処理装置、及び情報処理システム | |
US20200201758A1 (en) | Virtualized input/output device local memory management | |
US20230266992A1 (en) | Processor for managing resources using dual queues, and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230615 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |