1.一种用于调度针对虚拟化的图形处理单元(GPU)的工作负荷提交的计算设备,所述计算设备包括:
用于建立包括多个虚拟机的虚拟化环境的虚拟化服务,其中,所述虚拟机中的每个虚拟机包括用于与所述GPU进行通信的图形驱动器以及用于存储GPU命令的多个命令缓冲器;以及
GPU调度器模块,其用于:
评估所有虚拟机的所有命令缓冲器中的GPU命令;
响应于对所述GPU命令的评估的输出,从多个不同的调度策略中动态地选择调度策略;以及
根据动态地选择的调度策略来调度所述GPU命令中的至少一个GPU命令,以用于由所述GPU进行处理。
2.根据权利要求1所述的计算设备,包括命令扫描器模块,所述命令扫描器模块用于:扫描虚拟机的所述所有命令缓冲器中的GPU命令、产生指示在同一虚拟机的不同命令缓冲器中的GPU命令之间的跨缓冲器依赖性的数据、并且基于指示跨缓冲器依赖性的所述数据而动态地选择所述调度策略。
3.根据权利要求1或权利要求2所述的计算设备,包括命令扫描器模块,所述命令扫描器模块用于:扫描虚拟机的所述所有命令缓冲器中的GPU命令、确定针对所述GPU命令中的每个GPU命令的命令类型、并且基于GPU命令的命令类型而动态地选择针对GPU命令的所述调度策略。
4.根据权利要求1或权利要求2所述的计算设备,其中,所述GPU调度器模块用于:根据动态地选择的调度策略来调度所述虚拟机中一个虚拟机的GPU命令,并且根据不同的调度策略来调度所述虚拟机中的另一个虚拟机的GPU命令。
5.根据权利要求1或权利要求2所述的计算设备,其中,所述GPU调度器模块用于:响应于检测到同一虚拟机的不同的命令缓冲器中的两个GPU命令之间的跨缓冲器依赖性,而将所述调度策略从每环形的调度策略切换至群调度策略。
6.根据权利要求5所述的计算设备,其中,所述GPU调度器模块用于:评估不同的虚拟机的GPU命令,并且根据不是群调度策略的调度策略来调度所述不同的虚拟机的GPU命令。
7.根据权利要求1、2或6中任何一项所述的计算设备,其中,所述命令缓冲器中的每个命令缓冲器被实施为环形缓冲器,并且所述GPU调度器模块用于:针对跨环形同步基元来对虚拟机的GPU命令进行扫描,并且基于存在或不存在跨环形的同步基元来选择针对所述虚拟机的GPU命令的所述调度策略。
8.根据权利要求1、2或6中任何一项所述的计算设备,其中,所述GPU调度器模块用于:基于对所述GPU命令的所述评估的所述输出,而动态地选择针对不同的虚拟机的不同的调度策略。
9.根据权利要求1、2或6中任何一项所述的计算设备,包括针对所述虚拟机中的每个虚拟机的命令扫描器模块,每个命令扫描器模块用于创建包括指示所述虚拟机的所述命令缓冲器之间的依赖性的数据的命令数据库。
10.根据权利要求1、2或6中任何一项所述的计算设备,包括仲裁器,所述仲裁器用于:评估所述所有虚拟机的所述命令数据库,并且基于对所述所有命令数据库的评估,而选择针对所述虚拟机中的至少一个虚拟机的所述调度策略。
11.根据权利要求1、2或6中任何一项所述的计算设备,其中,所述GPU调度器模块用于:扫描虚拟机的所述所有命令缓冲器中的GPU命令、检测同一虚拟机的不同的命令缓冲器中的GPU命令之间的跨缓冲器依赖性、确定在一段时间内跨缓冲器依赖性出现的频率、并且基于所述跨缓冲器依赖性出现的所述频率来改变所述调度策略。
12.根据权利要求1、2或6中任何一项所述的计算设备,其中,所述GPU调度器模块用于:监测所有虚拟机的所有命令缓冲器之间的跨缓冲器依赖性的出现,并且如果在经选择的数量的命令缓冲器中没有检测到跨缓冲器依赖性,则将所述调度策略从每环形的策略改变至群策略。
13.一种用于调度针对虚拟化的图形处理单元(GPU)的工作负荷提交的方法,所述方法包括:
建立包括多个虚拟机的虚拟化环境,其中所述虚拟机中的每个虚拟机包括用于与所述GPU进行通信的图形驱动器以及用于存储GPU命令的多个命令缓冲器;
评估所有虚拟机的所有命令缓冲器中的GPU命令;
响应于对所述GPU命令的评估的输出,从多个不同的调度策略中动态地选择调度策略;以及
根据动态地选择的调度策略来调度所述GPU命令中的至少一个GPU命令,以用于由所述GPU进行处理。
14.根据权利要求13所述的方法,包括:扫描虚拟机的所有命令缓冲器中的GPU命令、生成指示同一虚拟机的不同的命令缓冲器中的GPU命令之间的跨缓冲器依赖性的数据、并且基于指示跨缓冲器依赖性的所述数据而动态地选择所述调度策略。
15.根据权利要求13所述的方法,包括:扫描虚拟机的所有命令缓冲器中的GPU命令,确定针对所述GPU命令中的每个GPU命令的命令类型、并且基于GPU命令的命令类型而动态地选择针对GPU命令的所述调度策略。
16.根据权利要求13所述的方法,包括:根据动态地选择的调度策略来调度所述虚拟机中一个虚拟机的GPU命令,并且根据不同的调度策略来调度所述虚拟机中的另一个虚拟机的GPU命令。
17.根据权利要求13所述的方法,包括响应于检测到同一虚拟机的不同的命令缓冲器中的两个GPU命令之间的跨缓冲器依赖性,而将所述调度策略从每环形的调度策略切换至群调度策略。
18.根据权利要求17所述的方法,包括:评估不同的虚拟机的GPU命令,并且根据不是群调度策略的不同的调度策略来调度所述不同的虚拟机的GPU命令。
19.根据权利要求13所述的方法,其中,所述命令缓冲器中的每个命令缓冲器被实施为环形缓冲器,并且所述方法包括:针对跨环形同步基元来对虚拟机的GPU命令进行扫描,并且基于存在或不存在跨环形的同步基元来选择针对所述虚拟机的GPU命令的所述调度策略。
20.根据权利要求13所述的方法,包括基于对所述GPU命令的所述评估的所述输出,而动态地选择针对不同的虚拟机的不同的调度策略。
21.根据权利要求13所述的方法,包括针对所述虚拟机中的每个虚拟机,创建包括指示所述虚拟机的所述命令缓冲器之间的依赖性的数据的命令数据库。
22.根据权利要求21所述的方法,包括:评估所述所有虚拟机的所述命令数据库,以及基于对所述所有命令数据库的评估来选择针对所述虚拟机中的至少一个虚拟机的所述调度策略。
23.根据权利要求13所述的方法,包括:扫描虚拟机的所述所有命令缓冲器中的GPU命令、检测同一虚拟机的不同的命令缓冲器中的GPU命令之间的跨缓冲器依赖性、确定在一段时间内跨缓冲器依赖性出现的频率、并且基于所述跨缓冲器依赖性出现的所述频率来改变所述调度策略。
24.根据权利要求13所述的方法,包括:监测所述所有虚拟机的所述所有命令缓冲器之间的跨缓冲器依赖性的出现,并且如果在经选择的数量的命令缓冲器中没有检测到跨缓冲器依赖性,则将所述调度策略从每环形的策略改变至群策略。
25.一个或多个机器可读存储介质,其包括存储在其上的多个指令,其中响应于被执行,所述指令使得计算设备执行根据权利要求13-24中的任何一项的所述方法。