IP Library Granted Patent US 12,373,228
Granted Patent B2
US 12,373,228 · App. 17/668,285 · Granted Jul 29, 2025

GPU capability redirection in virtual desktop environments

Inventors: Yanchao Zhang (Beijing, CN); Lin Lv (Beijing, CN); Yang Liu (Beijing, CN); Yuxin Kou (Beijing, CN)
Assignee: Omnissa, LLC
G06F9/452G06N20/00G06F9/50
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,373,228
App. No.
17/668,285
Granted
Jul 29, 2025
Kind
B2
Abstract

Techniques are described for redirecting GPU capability from a client device to the virtual desktop. The virtual desktop client includes a GPU controller deployed on the client computing device, which is capable of virtualizing the local GPU of the client device and exposing it to the virtual desktop. The virtual desktop agent operating on the host server includes a GPU consumer, which is capable of accepting machine learning (ML) or artificial intelligence (AI) workloads on the virtual desktop and offload these workloads to the GPU controller on the client computing device. When the GPU consumer detects the ML workload task on the virtual desktop, it transmits the ML workload task over the network to the GPU controller on the client computing device, which processes the ML workload task using the GPU of the client computing device and sends the results of the processing to the GPU consumer.

Claims (58)

1. A method for redirecting Graphics Processing Unit (GPU) capability in virtual desktop environments, the method comprising:

establishing, over a network connection, a virtual desktop session between a virtual desktop client operating on a client computing device and a virtual desktop agent operating on a host server, wherein the client computing device includes a GPU that is accessible by a GPU controller and wherein the host server includes a GPU consumer configured to receive machine learning (ML) workloads in the virtual desktop session;

detecting a machine learning (ML) workload task in the virtual desktop session on the host server by the GPU consumer;

determining, based on a size of data associated with the ML workload task, whether to send the ML workload task from the GPU consumer to the GPU controller, wherein the size of the data is compared to a predetermined threshold to determine whether to send the ML workload task;

in response to determining to send the ML workload task based on the size of the data of the ML workload task, sending the ML workload task from the GPU consumer to the GPU controller on the client computing device;

processing the ML workload task by the GPU controller using the GPU of the client computing device; and

sending a result of the ML workload task from the GPU controller to the GPU consumer operating on the host server.

2. The method of claim 1 , further comprising:

establishing a virtual channel of a desktop remoting protocol between the virtual desktop client and the virtual desktop agent, wherein the virtual channel is configured for sending the ML workload task and receiving the result of the ML workload task.

3. The method of claim 2 , further comprising:

detecting a bandwidth measurement for the virtual channel established between the virtual desktop client and the virtual desktop agent; and

selectively determining which ML workloads to send for processing from the GPU consumer to the GPU controller based on the bandwidth measurement.

4. The method of claim 1 , further comprising:

receiving input indicating whether to redirect the GPU capability between the client computing device and the host server; and

enabling the sending of the ML workload task from the GPU consumer to the GPU controller in response to said input.

5. The method of claim 1 , wherein the data associated with the ML workload task includes training data used to train a machine learning (ML) model.

6. The method of claim 1 , wherein

ML workload tasks having the size of the data that is smaller than the predetermined threshold are determined to be sent from the GPU consumer to the GPU controller.

7. The method of claim 1 , wherein the GPU controller on the client computing device is configured to receive ML workload tasks from a plurality of GPU consumers on a plurality of virtual desktops.

8. A computing system, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing system to perform the operations of:

establishing, over a network connection, a virtual desktop session between a virtual desktop client operating on a client computing device and a virtual desktop agent operating on a host server, wherein the client computing device includes a GPU that is accessible by a GPU controller and wherein the host server includes a GPU consumer configured to receive machine learning (ML) workloads in the virtual desktop session;

detecting a machine learning (ML) workload task in the virtual desktop session on the host server by the GPU consumer;

determining, based on a size of data associated with the ML workload task, whether to send the ML workload task from the GPU consumer to the GPU controller, wherein the size of the data is compared to a predetermined threshold to determine whether to send the ML workload task;

in response to determining to send the ML workload task based on the size of the data of the ML workload task, sending the ML workload task from the GPU consumer to the GPU controller on the client computing device;

processing the ML workload task by the GPU controller using the GPU of the client computing device; and

sending a result of the ML workload task from the GPU controller to the GPU consumer operating on the host server.

9. The computing system of claim 8 , wherein the memory further includes instructions that, when executed by the at least one processor, cause the computing system to perform the operations of:

establishing a virtual channel of a desktop remoting protocol between the virtual desktop client and the virtual desktop agent, wherein the virtual channel is configured for sending the ML workload task and receiving the result of the ML workload task.

10. The computing system of claim 9 , wherein the memory further includes instructions that, when executed by the at least one processor, cause the computing system to perform the operations of:

detecting a bandwidth measurement for the virtual channel established between the virtual desktop client and the virtual desktop agent; and

selectively determining which ML workloads to send for processing from the GPU consumer to the GPU controller based on the bandwidth measurement.

11. The computing system of claim 8 , wherein the memory further includes instructions that, when executed by the at least one processor, cause the computing system to perform the operations of:

receiving input indicating whether to redirect the GPU capability between the client computing device and the host server; and

enabling the sending of the ML workload task from the GPU consumer to the GPU controller in response to said input.

12. The computing system of claim 8 , wherein the data associated with the ML workload task includes training data used to train a machine learning (ML) model.

13. The computing system of claim 8 , wherein

ML workload tasks having the size of the data that is smaller than the predetermined threshold are determined to be sent from the GPU consumer to the GPU controller.

14. The computing system of claim 8 , wherein the GPU controller on the client computing device is configured to receive ML workload tasks from a plurality of GPU consumers on a plurality of virtual desktops.

15. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

establishing, over a network connection, a virtual desktop session between a virtual desktop client operating on a client computing device and a virtual desktop agent operating on a host server, wherein the client computing device includes a GPU that is accessible by a GPU controller and wherein the host server includes a GPU consumer configured to receive machine learning (ML) workloads in the virtual desktop session;

detecting a machine learning (ML) workload task in the virtual desktop session on the host server by the GPU consumer;

determining, based on a size of data associated with the ML workload task, whether to send the ML workload task from the GPU consumer to the GPU controller, wherein the size of the data is compared to a predetermined threshold to determine whether to send the ML workload task;

in response to determining to send the ML workload task based on the size of the data of the ML workload task, sending the ML workload task from the GPU consumer to the GPU controller on the client computing device;

processing the ML workload task by the GPU controller using the GPU of the client computing device; and

sending a result of the ML workload task from the GPU controller to the GPU consumer operating on the host server.

16. The non-transitory computer readable storage medium of claim 15 , wherein the memory further comprises instructions executed by one or more processors and causing the one or more processors to execute the operations of:

establishing a virtual channel of a desktop remoting protocol between the virtual desktop client and the virtual desktop agent, wherein the virtual channel is configured for sending the ML workload task and receiving the result of the ML workload task.

17. The non-transitory computer readable storage medium of claim 16 , wherein the memory further comprises instructions executed by one or more processors and causing the one or more processors to execute the operations of:

detecting a bandwidth measurement for the virtual channel established between the virtual desktop client and the virtual desktop agent; and

selectively determining which ML workloads to send for processing from the GPU consumer to the GPU controller based on the bandwidth measurement.

18. The non-transitory computer readable storage medium of claim 15 , wherein the memory further comprises instructions executed by one or more processors and causing the one or more processors to execute the operations of:

receiving input indicating whether to redirect the GPU capability between the client computing device and the host server; and

enabling the sending of the ML workload task from the GPU consumer to the GPU controller in response to said input.

19. The non-transitory computer readable storage medium of claim 15 , wherein the data associated with the ML workload task includes training data used to train a machine learning (ML) model, and wherein

ML workload tasks having the size of the data that is smaller than the predetermined threshold are determined to be sent from the GPU consumer to the GPU controller.

20. The non-transitory computer readable storage medium of claim 15 , wherein the GPU controller on the client computing device is configured to receive ML workload tasks from a plurality of GPU consumers on a plurality of virtual desktops.

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 9, 2022
From: ZHANG, YANCHAO; LV, LIN; LIU, YANG; KOU, YUXIN
To: VMWARE, INC.
Reel/Frame 058943/0821 →