IP Library Granted Patent US 9,607,351
Granted Patent B2
US 9,607,351 · App. 14/155,632 · Granted Mar 28, 2017

Systems and methods for GPU virtualization

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 9,607,351
App. No.
14/155,632
Granted
Mar 28, 2017
Kind
B2
Abstract

A method is provided for sharing access to graphics processing unit (GPU) hardware between multiple client virtual machines, wherein each of the client virtual machines has a high-level application programming interface (API) associated therewith for communicating with the GPU hardware. The method includes virtualizing the GPU by intercepting GPU-specific commands from the plurality of client virtual machines, wherein the commands specific to the GPU are at a lower level than that of the high-level API, and providing the intercepted commands to the GPU hardware.

Claims (24)

1. A method of sharing access to graphics processing unit (GPU) hardware between a plurality of client virtual machines, wherein each of the client virtual machines has a high-level application programming interface (API) associated therewith for communicating with the GPU hardware, the method comprising:

virtualizing the GPU by intercepting GPU-specific commands from the plurality of client virtual machines, wherein the GPU-specific commands are at a lower level than that of the high-level API and wherein translation of the GPU-specific commands occurs separately from a GPU driver that directly communicates with the GPU hardware; and

providing the intercepted commands to the GPU hardware.

2. The method of claim 1 , wherein the GPU-specific commands are at a user-kernel application programming interface (API) level.

3. The method of claim 1 , wherein the high-level API commands are translated to the GPU-specific commands separate from a GPU driver communicating with the GPU hardware.

4. The method of claim 1 , wherein the intercepted commands are communicated to a server virtual machine configured to support concurrent connections with the plurality of client virtual machines.

5. A graphics processing unit (GPU) virtualization system comprising:

graphics processing unit (GPU) hardware;

a first client virtual machine and a second client virtual machine, wherein each of the client virtual machines has a high-level application programming interface (API) associated therewith for communicating with the GPU hardware; and

a virtualization module for virtualizing the GPU by intercepting GPU-specific commands from the first and second client virtual machines, wherein the GPU-specific commands are at a lower level than that of the high-level API and wherein translation of the GPU-specific commands occurs separately from a GPU driver that directly communicates with the GPU hardware.

6. The system of claim 5 , wherein the GPU-specific commands are at a user-kernel application programming interface (API) level.

7. The system of claim 5 , wherein the high-level API commands are translated to the GPU-specific commands separate from a GPU driver communicating with the GPU hardware.

8. The system of claim 5 , further including a server virtual machine configured to support concurrent connections with the first and second client virtual machines and receive the intercepted commands therefrom.

9. The system of claim 8 , further including a shared memory region for GPU-related allocations communicatively coupled between the server virtual machine and the first client virtual machine.

10. The system of claim 9 , further including an argument-shared-buffer residing within the shared memory region.

11. The system of claim 9 , further including a graphics heap residing within the shared memory region.

12. The system of claim 5 , further including a swap chain linked to a virtual framebuffer associated with the first client virtual machine.

13. Non-transitory computer-readable media bearing software instructions configured to instruct a processor to share access to graphics processing unit (GPU) hardware between a plurality of client virtual machines, wherein each of the client virtual machines has a high-level application programming interface (API) associated therewith for communicating with the GPU hardware by performing the steps of:

virtualizing the GPU by intercepting GPU-specific commands from the plurality of client virtual machines, wherein the GPU-specific commands are at a lower level than that of the high-level API and wherein translation of the GPU-specific commands occurs separately from a GPU driver that directly communicates with the GPU hardware; and

providing the intercepted commands to the GPU hardware.

14. The non-transitory computer-readable media of claim 13 , wherein the GPU-specific commands are at a user-kernel application programming interface (API) level.

15. The non-transitory computer-readable media of claim 13 , wherein the high-level API commands are translated to the GPU-specific commands separate from a GPU driver communicating with the GPU hardware.

16. The non-transitory computer-readable media of claim 13 , wherein the intercepted commands are communicated to a server virtual machine configured to support concurrent connections with the plurality of client virtual machines.

17. The non-transitory computer-readable media of claim 13 , further including linking a swap chain to a plurality of virtual framebuffers respectively associated with the plurality of client virtual machines.

Assignments (5)
MERGER Recorded Jul 6, 2016
From: GENERAL DYNAMICS C4 SYSTEMS, INC.
To: GENERAL DYNAMICS ADVANCED INFORMATION SYSTEMS, INC.
Reel/Frame 039269/0007 →
MERGER Recorded Jul 6, 2016
From: GENERAL DYNAMICS ADVANCED INFORMATION SYSTEMS, INC.
To: GENERAL DYNAMICS MISSION SYSTEMS, INC.
Reel/Frame 039269/0131 →
MERGER Recorded Jun 22, 2016
From: GENERAL DYNAMICS C4 SYSTEMS, INC.
To: GENERAL DYNAMICS ADVANCED INFORMATION SYSTEMS, INC.
Reel/Frame 039117/0063 →
MERGER AND CHANGE OF NAME Recorded Jun 22, 2016
From: GENERAL DYNAMICS MISSION SYSTEMS, LLC; GENERAL DYNAMICS ADVANCED INFORMATION SYSTEMS, INC.
To: GENERAL DYNAMICS MISSION SYSTEMS, INC
Reel/Frame 039117/0839 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2014
From: KHOSA, SHIVANI; DERRIN, PHILIP GEOFFEREY; VAN SCHAIK, CARL; POTTS, DANIEL PAUL
To: GENERAL DYNAMICS C4 SYSTEMS, INC.; GENERAL DYNAMICS C4 SYSTEMS
Reel/Frame 032021/0325 →