Nvidia patents method to fix uneven time sharing for virtual graphics cards
This patent describes a method for managing how a single physical graphics card is shared among multiple virtual machines. It measures the extra time each virtual machine takes to switch in and out, and if one machine suffers significantly more delay than others, the system gives it an extra time slot immediately to make up for the difference.
In the filing’s own words
A plurality of virtual processing units associated with a physical processing unit is identified. Each of the plurality of virtual processing units is associated with a virtual machine of a plurality of virtual machines that run on respective virtual processing units in round-robin order using respective assigned execution time periods. A first overhead time value associated with running of the first virtual machine on a first virtual processing unit of the plurality of virtual processing units is obtained for a first virtual machine of the plurality of virtual machines. A second overhead time value associated with running of the second virtual machine on a second virtual processing unit of the plurality of virtual processing units is obtained for a second virtual machine of the plurality of virtual machines. The first overhead time value associated with the running of the first virtual machine and the second overhead time value associated with running of the second virtual machine are compared. Whether the second overhead time value associated with the running of the second virtual machine satisfies a compensation threshold criterion is determined based on the comparing. Responsive to determining that the second overhead time value associated with the running of the second virtual machine satisfies the compensation threshold criterion, causing the running of the second virtual machine to be repeated prior to running any other of the plurality of virtual machines.
What exactly they claim (claim 1)
1. A method comprising: identifying, by at least one processing device, a plurality of virtual processing units associated with a physical processing unit, wherein each of the plurality of virtual processing units is associated with a virtual machine of a plurality of virtual machines, each of the plurality of virtual machines being allocated predefined discrete time slices by a hypervisor to execute computing tasks using respective virtual processing units in round-robin order during respective allocated predefined discrete time slices; obtaining, by the at least one processing device and for a first virtual machine of the plurality of virtual machines, a first overhead time value associated with the first virtual machine during a first predefined discrete time slice using a first virtual processing unit of the plurality of virtual processing units; obtaining, by the at least one processing device and for a second virtual machine of the plurality of virtual machines, a second overhead time value associated with the second virtual machine during a second predefined discrete time slice using a second virtual processing unit of the plurality of virtual processing units; determining, by the at least one processing device and based on the first overhead time value associated with the first virtual machine, whether the second overhead time value associated with the second virtual machine satisfies a compensation threshold criterion, wherein the compensation threshold criterion is satisfied if a difference between the second overhead time value associated with the second virtual machine and the first overhead time value associated with the first virtual machine is greater than a respective assigned execution time period of the second virtual machine; and responsive to determining that the second overhead time value associated with the second virtual machine satisfies the compensation threshold criterion, causing, by the at least one processing device, the hypervisor to allocate a third predefined discrete time slice to the second virtual machine after the second predefined discrete time slice based on the difference between the second overhead time value associated with the second virtual machine and the first overhead time value associated with the first virtual machine, wherein causing the hypervisor to allocate the third predefined discrete time slice to the second virtual machine comprises executing at least one additional computing task of the second virtual machine immediately following the second predefined discrete time slice and prior to allocating a predefined discrete time slice to execute any other computing task corresponding to any other virtual machine of the plurality of virtual machines.
Facts
- Company
- Nvidia (NVIDIA Corporation)
- Official title
- Virtual graphics processing unit scheduling based preemption overhead
- Patent number
- US12737208B2
- Application number
- 17683187
- Filed
- Feb 28, 2022
- Granted
- Sep 15, 2026
- Inventors
- 2
- Claims
- 18
Classified under
G06F 9/45558 Physics & computingG06F 9/3877 Physics & computingG06F 9/4881 Physics & computingG06F 2009/4557 Physics & computingG06F 2009/45583 Physics & computingMore from Nvidia in Chips & hardware
- Nvidia patents method to skip zero data in neural network math Oct 13, 2026
- Nvidia patents hardware to speed up motion blur in ray tracing Oct 13, 2026
- Nvidia patents method to sync data across split processor chips Sep 17, 2026
- Nvidia patents chip math trick to speed up AI calculations Oct 8, 2026
- Nvidia patents data center cooling that uses cryogenic fluids Oct 15, 2026
Summaries are simplified from the filing’s own abstract and first claim. A patent filing is not a product announcement.
Patent data and drawings: U.S. Patent and Trademark Office (USPTO). Nebula is not affiliated with or endorsed by the USPTO.