一种多虚拟机共享FPGA板卡的方法、系统及装置制造方法及图纸

技术编号:20865555 阅读:13 留言:0更新日期:2019-04-17 09:10
本发明专利技术公开了一种多虚拟机共享FPGA板卡的方法、系统及装置。具体地,本申请创建PCIE虚拟层(包括若干个PCIE子虚拟层)和虚拟PCIE设备,且一个虚拟机对应一个虚拟PCIE设备,多个虚拟PCIE设备对应一个PCIE子虚拟层,一个PCIE子虚拟层对应一个FPGA板卡,从而实现多个虚拟机通过一个PCIE子虚拟层共享使用FPGA板卡(即多个虚拟机共享一个PCIE总线,均通过该PCIE总线访问FPGA板卡),从而解决了部分虚拟机无法同时启动的问题,提高了用户的体验效果。

【技术实现步骤摘要】
一种多虚拟机共享FPGA板卡的方法、系统及装置
本专利技术涉及云服务器领域,特别是涉及一种多虚拟机共享FPGA板卡的方法、系统及装置。
技术介绍
云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。用户无需购买硬件,只需要在云服务器上申请服务器资源即可实现任意的服务器的部署。目前,云服务器上通常会配置多个虚拟机,以便多用户可同时进行操作且互不影响。而对于一些人工智能、深度学习等计算能力要求较高的应用场景,云服务器需要通过PCIE(peripheralcomponentinterconnectexpress,外设部件高速互连)接口扩展FPGA(Field-ProgrammableGateArray,现场可编程门阵列)板卡,以扩展云服务器的逻辑计算能力,支持这些应用场景。现有技术中,一个FPGA板卡只能供一个虚拟机使用。但是,云服务器的PCIE接口的个数有限,导致能够扩展的FPGA板卡的个数有限。当在云服务器上启动虚拟机的个数大于FPGA板卡扩展的个数时,会导致部分虚拟机没有对应的FPGA板卡使用。若要使每个虚拟机都能使用FPGA板卡,一般采用分时使用的方式实现,但此方式会导致分时使用的虚拟机无法同时启动,从而降低了用户的体验效果。因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
技术实现思路
本专利技术的目的是提供一种多虚拟机共享FPGA板卡的方法、系统及装置,实现了多个虚拟机共享使用FPGA板卡,从而解决了部分虚拟机无法同时启动的问题,提高了用户的体验效果。为解决上述技术问题,本专利技术提供了一种多虚拟机共享FPGA板卡的方法,包括:预先在云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;所述FPGA板卡为供配置于所述云服务器的虚拟机共享使用的加速卡;预先从所述虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备;当所述虚拟机中的第一虚拟机启动后,使所述第一虚拟机加载对应的第一PCIE子虚拟层的第一虚拟PCIE设备;利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡,以使所述第一FPGA板卡在多虚拟机同时发送待处理数据时按照预设共享处理模式进行数据处理,并将处理后的数据返回至对应虚拟机。优选地,预先在云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;所述FPGA板卡为供配置于所述云服务器的虚拟机共享使用的加速卡;预先从所述虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备的过程,包括:预先获取供配置于云服务器的虚拟机使用的FPGA板卡的个数和所述虚拟机的个数;当FPGA板卡的个数小于所述虚拟机的个数时,从所述FPGA板卡中确定供多个虚拟机共享使用的FPGA板卡,且从所述虚拟机中确定共享使用同一FPGA板卡的虚拟机,以为所有虚拟机分配好FPGA板卡;在所述云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与供多个虚拟机共享使用的FPGA板卡一一对应的PCIE子虚拟层;根据所有虚拟机的分配结果,确定每个所述PCIE子虚拟层所交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备。优选地,所述利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡的过程,包括:利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并将所述待处理数据写入至所述第一PCIE子虚拟层中预先为所述第一虚拟PCIE设备配置的共享内存,以利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡。优选地,所述预设共享处理模式的设置过程包括:预先设置共享使用同一FPGA板卡的多个虚拟机的优先级;当共享使用同一FPGA板卡的多个虚拟机同时发送待处理数据时,使该FPGA板卡按照所述优先级进行数据处理;其中,优先级较高的虚拟机的数据处理顺序在优先级较低的虚拟机的数据处理顺序之前。优选地,所述预设共享处理模式的设置过程包括:当共享使用同一FPGA板卡的多个虚拟机同时发送待处理数据时,使该FPGA板卡按照先进先出的规则进行数据处理。优选地,该方法还包括:当所述虚拟机的共享关系发生变化时,按照所述虚拟机的当前共享关系重新创建所述PCIE虚拟层和所述虚拟PCIE设备。为解决上述技术问题,本专利技术还提供了一种多虚拟机共享FPGA板卡的系统,包括:创建模块,用于预先在云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;所述FPGA板卡为供配置于所述云服务器的虚拟机共享使用的加速卡;预先从所述虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备;虚拟设备加载模块,用于当所述虚拟机中的第一虚拟机启动后,使所述第一虚拟机加载对应的第一PCIE子虚拟层的第一虚拟PCIE设备;数据处理模块,用于利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡,以使所述第一FPGA板卡在多虚拟机同时发送待处理数据时按照预设共享处理模式进行数据处理,并将处理后的数据返回至对应虚拟机。优选地,所述创建模块包括:个数获取单元,用于预先获取供配置于云服务器的虚拟机使用的FPGA板卡的个数和所述虚拟机的个数;虚拟机分配单元,用于当FPGA板卡的个数小于所述虚拟机的个数时,从所述FPGA板卡中确定供多个虚拟机共享使用的FPGA板卡,且从所述虚拟机中确定共享使用同一FPGA板卡的虚拟机,以为所有虚拟机分配好FPGA板卡;虚拟层创建单元,用于在所述云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与供多个虚拟机共享使用的FPGA板卡一一对应的PCIE子虚拟层;虚拟设备创建单元,用于根据所有虚拟机的分配结果,确定每个所述PCIE子虚拟层所交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备。优选地,该系统还包括:重新创建模块,用于当所述虚拟机的共享关系发生变化时,按照所述虚拟机的当前共享关系重新创建所述PCIE虚拟层和所述虚拟PCIE设备。为解决上述技术问题,本专利技术还提供了一种多虚拟机共享FPGA板卡的装置,包括:存储器,用于存储计算机程序;处理器,用于在执行所述计算机程序时实现上述任一种多虚拟机共享FPGA板卡的方法。本专利技术提供了一种多虚拟机共享FPGA板卡的方法,包括:预先在云服务器的主机系统中创建PCIE虚拟层;其中,PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;FPGA板卡为供配置于云服务器的虚拟机共享使用的加速卡;预先从虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟本文档来自技高网...

【技术保护点】
1.一种多虚拟机共享FPGA板卡的方法,其特征在于,包括:预先在云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;所述FPGA板卡为供配置于所述云服务器的虚拟机共享使用的加速卡;预先从所述虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备;当所述虚拟机中的第一虚拟机启动后,使所述第一虚拟机加载对应的第一PCIE子虚拟层的第一虚拟PCIE设备;利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡,以使所述第一FPGA板卡在多虚拟机同时发送待处理数据时按照预设共享处理模式进行数据处理,并将处理后的数据返回至对应虚拟机。

【技术特征摘要】
1.一种多虚拟机共享FPGA板卡的方法,其特征在于,包括:预先在云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;所述FPGA板卡为供配置于所述云服务器的虚拟机共享使用的加速卡;预先从所述虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备;当所述虚拟机中的第一虚拟机启动后,使所述第一虚拟机加载对应的第一PCIE子虚拟层的第一虚拟PCIE设备;利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡,以使所述第一FPGA板卡在多虚拟机同时发送待处理数据时按照预设共享处理模式进行数据处理,并将处理后的数据返回至对应虚拟机。2.如权利要求1所述的多虚拟机共享FPGA板卡的方法,其特征在于,预先在云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与FPGA板卡一一对应的PCIE子虚拟层;所述FPGA板卡为供配置于所述云服务器的虚拟机共享使用的加速卡;预先从所述虚拟机中为每个PCIE子虚拟层选择与其交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备的过程,包括:预先获取供配置于云服务器的虚拟机使用的FPGA板卡的个数和所述虚拟机的个数;当FPGA板卡的个数小于所述虚拟机的个数时,从所述FPGA板卡中确定供多个虚拟机共享使用的FPGA板卡,且从所述虚拟机中确定共享使用同一FPGA板卡的虚拟机,以为所有虚拟机分配好FPGA板卡;在所述云服务器的主机系统中创建PCIE虚拟层;其中,所述PCIE虚拟层包括与供多个虚拟机共享使用的FPGA板卡一一对应的PCIE子虚拟层;根据所有虚拟机的分配结果,确定每个所述PCIE子虚拟层所交互的虚拟机,并在每个所述PCIE子虚拟层中创建与所交互的虚拟机一一对应的虚拟PCIE设备。3.如权利要求1所述的多虚拟机共享FPGA板卡的方法,其特征在于,所述利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡的过程,包括:利用所述第一虚拟PCIE设备接收所述第一虚拟机的待处理数据,并将所述待处理数据写入至所述第一PCIE子虚拟层中预先为所述第一虚拟PCIE设备配置的共享内存,以利用所述第一PCIE子虚拟层将所述待处理数据发送至对应的第一FPGA板卡。4.如权利要求3所述的多虚拟机共享FPGA板卡的方法,其特征在于,所述预设共享处理模式的设置过程包括:预先设置共享使用同一FPGA板卡的多个虚拟机的优先级;当共享使用同一FPGA板卡的多个虚拟机同时发送待处理数据时,使该FPGA板卡按照所述优先级进行数据处理;其...

【专利技术属性】
技术研发人员:樊嘉恒郝锐
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1