IP Library Granted Patent US 12,277,451
Granted Patent B2
US 12,277,451 · App. 17/676,397 · Granted Apr 15, 2025

Dynamic GPU-enabled virtual machine provisioning across cloud providers

Inventors: Sam Zhao (Beijing, CN); Bomin Nie (Beijing, CN); Nan Wang (Beijing, CN); Jingtao Zhang (Beijing, CN); Zhifu Jin (Beijing, CN)
Assignee: Omnissa, LLC
G06F9/5077G06F9/5016G06F9/5033G06F9/5083G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,277,451
App. No.
17/676,397
Granted
Apr 15, 2025
Kind
B2
Abstract

A method of provisioning virtual machines (VMs) includes: providing a VM pool that includes a graphics processing unit (GPU)-optimized VM and a non-GPU-optimized VM operating in different clouds. A control plane can receive an indication that a user has submitted a workload request, determine whether a GPU-optimized VM is available and instruct the non-GPU-optimized VM to send the workload to the GPU-optimized VM in a peer-to-peer manner. The GPU-optimized VM computes the workload and returns a result to the requesting VM. The control plane can instantiate a new GPU-optimized VM (or terminate it when the workload is complete) to dynamically maintain a desired number of available GPU-optimized VMs.

Claims (41)

1. A method for dynamic virtual machine (VM) provisioning across cloud service providers, comprising:

transmitting instructions across computer networks to hypervisors executing on computers of the cloud service providers to provide a VM pool that includes a first graphics processing unit (GPU)-optimized VM and a first non-GPU-optimized VM;

receiving, at a control plane for the VM pool, an indication that a user of the first non-GPU-optimized VM has submitted a request through the first non-GPU-optimized VM, wherein the request specifies a workload;

determining, by the control plane, that the first GPU-optimized VM is available for using a GPU to execute the workload, and issuing, by the control plane upon said determining, an instruction to the first non-GPU-optimized VM to send the workload to the first GPU-optimized VM; and

transmitting an instruction across a computer network to a computer of one of the cloud service providers to instantiate a second GPU-optimized VM to increase the amount of GPU-optimized VMs of the VM pool that are available for using GPUs to execute workloads, to a minimum number.

2. The method of claim 1 , further comprising:

receiving, at the control plane, an indication that the workload has been completed by the first GPU-optimized VM using the GPU;

determining that the first GPU-optimized VM is available for using GPUs to execute workloads; and

causing at least one of the first and second GPU-optimized VMs to shut down based on instructions in a profile that indicate a maximum number of GPU-optimized VMs to be available for using GPUs to execute workloads.

3. The method of claim 1 , wherein the request is received through a virtual desktop interface provided by the first non-GPU-optimized VM.

4. The method of claim 1 , wherein the first non-GPU-optimized VM and the first GPU-optimized VM execute on computers of different cloud service providers.

5. The method of claim 1 , wherein the first and second GPU-optimized VMs execute on computers of different cloud service providers.

6. The method of claim 1 , wherein the control plane executes on a third GPU-optimized VM.

7. A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, cause the processor to perform stages for dynamic virtual machine (VM) provisioning across cloud service providers, the stages comprising:

transmitting instructions across computer networks to hypervisors executing on computers of the cloud service providers to provide a VM pool that includes a first graphics processing unit (GPU)-optimized VM and a first non-GPU-optimized VM;

receiving, at a control plane for the VM pool, an indication that a user of the first non-GPU-optimized VM has submitted a request through the first non-GPU-optimized VM, wherein the request specifies a workload;

determining, by the control plane, that the first GPU-optimized VM is available for using a GPU to execute the workload, and issuing, by the control plane upon said determining, an instruction to the first non-GPU-optimized VM to send the workload to the first GPU-optimized VM; and

transmitting an instruction across a computer network to a computer of one of the cloud service providers to instantiate a second GPU-optimized VM to increase the amount of GPU-optimized VMs of the VM pool that are available for using GPUs to execute workloads, to a minimum number.

8. The non-transitory, computer-readable medium of claim 7 , the stages further comprising:

receiving, at the control plane, an indication that the workload has been completed by the first GPU-optimized VM using the GPU;

determining that the first GPU-optimized VM is available for using GPUs to execute workloads; and

causing at least one of the first and second GPU-optimized VMs to shut down based on instructions in a profile that indicate a maximum number of GPU-optimized VMs to be available for using GPUs to execute workloads.

9. The non-transitory, computer-readable medium of claim 7 , wherein the request is received through a virtual desktop interface provided by the first non-GPU-optimized VM.

10. The non-transitory, computer-readable medium of claim 7 , wherein the first non-GPU-optimized VM and the first GPU-optimized VM execute on computers of different cloud service providers.

11. The non-transitory, computer-readable medium of claim 7 , wherein the first and second GPU-optimized VMs execute on computers of different cloud service providers.

12. The non-transitory, computer-readable medium of claim 7 , wherein the control plane executes on a third GPU-optimized VM.

13. A system for dynamic virtual machine (VM) provisioning across cloud service providers, comprising:

a memory storage comprising instructions; and

a computing device including a hardware-based processor that is configured to execute the instructions from the memory storage to carry out stages comprising:

transmitting instructions across computer networks to hypervisors executing on computers of the cloud service providers to provide a VM pool that includes a first graphics processing unit (GPU)-optimized VM and a first non-GPU-optimized VM;

receiving, at a control plane for the VM pool, an indication that a user of the first non-GPU-optimized VM has submitted a request through the first non-GPU-optimized VM, wherein the request specifies a workload;

determining, by the control plane, that the first GPU-optimized VM is available for using a GPU to execute the workload, and issuing, by the control plane upon said determining, an instruction to the first non-GPU-optimized VM to send the workload to the first GPU-optimized VM; and

transmitting an instruction across a computer network to a computer of one of the cloud service providers to instantiate a second GPU-optimized VM to increase the amount of GPU-optimized VMs of the VM pool that are available for using GPUs to execute workloads, to a minimum number.

14. The system of claim 13 , the stages further comprising:

receiving, at the control plane, an indication that the workload has been completed by the first GPU-optimized VM using the GPU;

determining that the first GPU-optimized VM is available for using GPUs to execute workloads; and

causing at least one of the first and second GPU-optimized VMs to shut down based on instructions in a profile that indicate a maximum number of GPU-optimized VMs to be available for using GPUs to execute workloads.

15. The system of claim 13 , wherein the request is received through a virtual desktop interface provided by the first non-GPU-optimized VM.

16. The system of claim 13 , wherein the first non-GPU-optimized VM and the first GPU-optimized VM execute on computers of different cloud service providers.

17. The system of claim 13 , wherein the first and second GPU-optimized VMs execute on computers of different cloud service providers.

18. The system of claim 13 , wherein the control plane executes on a third GPU-optimized VM.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2022
From: ZHAO, SAM; NIE, BOMIN; WANG, NAN; ZHANG, JINGTAO; JIN, ZHIFU
To: VMWARE, INC.
Reel/Frame 059056/0632 →