[发明专利]虚拟化环境中的智能GPU调度有效
申请号: | 201480079240.3 | 申请日: | 2014-06-26 |
公开(公告)号: | CN106663021B | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 田坤;Z·吕;Y·Z·东 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李丽 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟 环境 中的 智能 gpu 调度 | ||
1.一种用于调度针对虚拟化的图形处理单元(GPU)的工作负荷提交的计算设备,所述计算设备包括:
用于建立包括多个虚拟机的虚拟化环境的虚拟化服务,其中,所述多个虚拟机中的每个虚拟机包括用于与所述GPU进行通信的图形驱动器以及用于存储GPU命令的多个命令缓冲器;以及
GPU调度器模块,其用于:
评估所述多个虚拟机中的所有虚拟机的所有命令缓冲器中的GPU命令;
响应于对所述GPU命令的评估的输出,从多个不同的调度策略中动态地选择调度策略;
根据动态地选择的调度策略来调度所述GPU命令中的至少一个GPU命令,以用于由所述GPU进行处理;以及
响应于检测到同一虚拟机的不同的命令缓冲器中的两个GPU命令之间的跨缓冲器依赖性,而将所述调度策略从每环形的调度策略切换至群调度策略,其中,在所述每环形的调度策略中能够同时地调度来自不同的虚拟机的个体命令缓冲器的命令,在所述群调度策略中一个虚拟机中的所有命令缓冲器一起上下文切换。
2.根据权利要求1所述的计算设备,包括命令扫描器模块,所述命令扫描器模块用于:扫描虚拟机的所有命令缓冲器中的GPU命令、产生指示在同一虚拟机的不同命令缓冲器中的GPU命令之间的跨缓冲器依赖性的数据、并且基于指示跨缓冲器依赖性的所述数据而动态地选择所述调度策略。
3.根据权利要求1所述的计算设备,包括命令扫描器模块,所述命令扫描器模块用于:扫描虚拟机的所有命令缓冲器中的GPU命令、确定针对所述GPU命令中的每个GPU命令的命令类型、并且基于GPU命令的命令类型而动态地选择针对GPU命令的所述调度策略。
4.根据权利要求1所述的计算设备,其中,所述GPU调度器模块用于:根据动态地选择的调度策略来调度所述多个虚拟机中的一个虚拟机的GPU命令,并且根据不同的调度策略来调度所述多个虚拟机中的另一个虚拟机的GPU命令。
5.根据权利要求1所述的计算设备,其中,所述GPU调度器模块用于:评估不同的虚拟机的GPU命令,并且根据不是群调度策略的调度策略来调度所述不同的虚拟机的GPU命令。
6.根据权利要求1所述的计算设备,其中,所述多个命令缓冲器中的每个命令缓冲器被实施为环形缓冲器,并且所述GPU调度器模块用于:针对跨环形同步基元来对虚拟机的GPU命令进行扫描,并且基于存在或不存在跨环形的同步基元来选择针对所述虚拟机的GPU命令的所述调度策略。
7.根据权利要求1所述的计算设备,其中,所述GPU调度器模块用于:基于对所述GPU命令的所述评估的所述输出,而动态地选择针对不同的虚拟机的不同的调度策略。
8.根据权利要求1所述的计算设备,包括针对所述多个虚拟机中的每个虚拟机的命令扫描器模块,每个命令扫描器模块用于创建包括指示所述虚拟机的所述命令缓冲器之间的依赖性的数据的命令数据库。
9.根据权利要求8所述的计算设备,包括仲裁器,所述仲裁器用于:评估所述多个虚拟机中的所有虚拟机的命令数据库,并且基于对所有命令数据库的评估,而选择针对所述多个虚拟机中的至少一个虚拟机的所述调度策略。
10.根据权利要求1所述的计算设备,其中,所述GPU调度器模块用于:扫描虚拟机的所有命令缓冲器中的GPU命令、检测同一虚拟机的不同的命令缓冲器中的GPU命令之间的跨缓冲器依赖性、确定在一段时间内跨缓冲器依赖性出现的频率、并且基于所述跨缓冲器依赖性出现的所述频率来改变所述调度策略。
11.根据权利要求1所述的计算设备,其中,所述GPU调度器模块用于:监测所述多个虚拟机中的所有虚拟机的所有命令缓冲器之间的跨缓冲器依赖性的出现,并且如果在经选择的数量的命令缓冲器中没有检测到跨缓冲器依赖性,则将所述调度策略从每环形的策略改变至群策略。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480079240.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:处理值类型
- 下一篇:对云应用中的虚拟机进行分组