Techniques for load balancing GPU enabled virtual machines
AssigneeMicrosoft Technology Licensing, LLC
InventorsBradley Stephen Post, Varadharajan Ponnappan, Pareekshit Singh, Winston Matthew Penfold Johnston, Eric Kai-hau Han, Parag Chakraborty
Life of this patent
Estimating the term…
Abstract
Exemplary techniques for balancing 3D graphical processor unit use among virtual machines are herein disclosed. In an exemplary embodiment, a virtualization platform can load an instance of a graphics rendering module for a virtual machine; select a GPU for the graphics rendering module to run on; and configure the virtual machine to render to the selected GPU. In addition to the foregoing, other aspects are described in the detailed description, claims, and figures.
Claims19
A computer system configured to balance graphics processor use among virtual machines, comprising:
- a processor;
- a first 3D graphics processing unit;
- a second 3D graphics processing unit;
- and
- a memory in communication with at least the processor when the computer system is operational, the memory having stored thereon computer readable instructions that upon execution cause the processor to:
- assign a group of virtual machines to render 3D graphics on the first 3D graphics processing unit;
- determine that the first 3D graphics processing unit is overcommitted based on at least an amount of time the first 3D graphics processing unit takes to respond to commands;
- and
- move a first virtual machine from the group of virtual machines to the second graphics processing unit in response to at least the determination that the first 3D graphics processing unit is overcommitted.
A computer-readable memory device including computer-readable instructions for balancing graphics processing unit use among virtual machines, the computer-readable storage medium comprising instructions that upon execution by a processor cause the processor to:
- receive a request to assign a first virtual machine to a first 3D graphics processing unit;
- estimate an amount of graphics memory utilized to render 3D graphics for the first virtual machine;
- select the first 3D graphics processing unit from a plurality of 3D graphics processing units in response to determining that latency values associated direct memory access transactions issued by a group of virtual machines assigned to render graphics on the first 3D graphics processing unit are less than a first threshold and that the estimated amount of graphics memory utilized to render 3D graphics is less than a second threshold;
- and
- assign the first virtual machine to render 3D graphics on the first 3D graphics processing unit.
A method for balancing load across graphic processing units, comprising:
- estimating at least an amount of graphics memory utilized to render graphics for a virtual machine;
- comparing the estimated amount of graphics memory to estimated amounts of available graphics memory controlled by a plurality of 3D graphics processing units on the same computing device;
- selecting a 3D graphics processing unit from the plurality of 3D graphics processing units to render 3D graphics for the virtual machine in accordance with the comparison;
- assigning the selected 3D graphics processing unit to render 3D graphics for the virtual machine;
- and
- moving the virtual machine to a second graphics processing unit in response to determining that the selected 3D graphics processing unit is overcommitted based on at least a latency of direct memory access graphics transactions initiated by the virtual machine.
Dependencies are inferred from the claim text.