IP Library › Granted Patent US 10,580,105
Granted Patent B2
US 10,580,105 · App. 15/570,256 · Granted Mar 3, 2020

Container access to graphics processing unit resources

Inventors: Kun Tian (Shanghai, CN); Yao Zu Dong (Shanghai, CN); Zhiyuan Lv (Beijing, CN)
Assignee: Intel Corporation
G06T1/20G06F9/455G06F9/4881G06F9/5027G06T1/60G06F9/4411
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 10,580,105
App. No.
15/570,256
Granted
Mar 3, 2020
Kind
B2
Abstract

Systems and methods for container access to graphics processing unit (GPU) resources are disclosed herein. In some embodiments, a computing system may include a physical GPU and kernel-mode driver circuitry, to communicatively couple with the physical GPU to create a plurality of emulated GPUs and a corresponding plurality of device nodes. Each device node may be associated with a single corresponding user-side container to enable communication between the user-side container and the corresponding emulated GPU. Other embodiments may be disclosed and/or claimed.

Claims (40)

1. A computing system, comprising:

a physical graphics processing unit, GPU; and

kernel-mode driver circuitry, to communicatively couple with the physical GPU, to create a plurality of emulated GPUs and a corresponding plurality of device nodes, wherein each device node is to be associated with a single corresponding user-side container to enable communication between the user-side container and the corresponding emulated GPU;

wherein an emulated GPU is to support a first set of GPU features, the physical GPU supports a second set of GPU features, and the first set is a proper subset of the second set.

2. The computing system of claim 1 , wherein each of the emulated GPUs is to emulate the physical GPU.

3. The computing system of claim 1 , wherein each user-side container includes a user-mode driver to communicate with the corresponding emulated GPU via the corresponding device node.

4. The computing system of claim 3 , wherein each user-side container includes one or more software applications in communication with the user-mode driver, and each of the one or more software applications is to utilize a resource of the physical GPU.

5. The computing system of claim 1 , wherein the kernel-mode driver circuitry further includes a scheduler, and the scheduler is to communicate with the plurality of emulated GPUs and the physical GPU.

6. One or more non-transitory computer readable media having instruction thereon that, in response to execution by one or more processing devices of a computing system, cause the computing system to:

provide a kernel-mode driver to create a plurality of emulated graphics processing units, GPUs and a corresponding plurality of device nodes, wherein the plurality of emulated GPUs are communicatively coupled to a physical GPU; and

associate each device node with a single corresponding user-side container to enable communication between the user-side container and the corresponding emulated GPU to utilize resources of the physical GPU;

wherein a first emulated GPU does not emulate the physical GPU, the first emulated GPU is associated with a first device node, the kernel-mode driver is a first kernel-mode driver, and the instructions are further to, upon execution by the one or more processing devices of the computing system, cause the computing system to:

provide a second kernel-mode driver, arranged such that the second kernel-mode driver is disposed between a user-mode driver in a user-side container and the first kernel-mode driver in a communication pathway.

7. The one or more non-transitory computer readable media of claim 6 , wherein each of the emulated GPUs is to emulate the physical GPU.

8. The one or more computer readable media of claim 6 , wherein each user-side container includes a user-mode driver to communicate with the corresponding emulated GPU via the corresponding device node.

9. The one or more non-transitory computer readable media of claim 8 , wherein each user-side container includes one or more software applications in communication with the user-mode driver, and each of the one or more software applications is to utilize a resource of the physical GPU.

10. The one or more non-transitory computer readable media of claim 6 , wherein the instructions are further to, upon execution by the one or more processing devices of the computing system, cause the computing system to:

provide a scheduler to communicate with the plurality of emulated GPUs and the physical GPU.

11. The one or more non-transitory computer readable media of claim 10 , wherein the scheduler is to enforce a quality of service policy on use of the physical GPU by the emulated GPUs.

12. The one or more non-transitory computer readable media of claim 10 , wherein the scheduler is to enforce a secure isolation policy for the emulated GPUs.

13. The one or more non-transitory computer readable media of claim 6 , wherein the instructions are further to, upon execution by the one or more processing devices of the computing system, cause the computing system to:

partition a graphics memory among the plurality of emulated GPUs.

14. The one or more non-transitory computer readable media of claim 13 , wherein the graphics memory is to be utilized for pixel loading or as a write command buffer.

15. The one or more non-transitory computer readable media of claim 6 , wherein the instructions are further to, upon execution by the one or more processing devices of the computing system, cause the computing system to:

create a second emulated GPU communicatively coupled to the physical GPU; and

associate the second emulated GPU with a virtual machine to enable communication between the virtual machine and the corresponding emulated GPU.

16. The one or more non-transitory computer readable media of claim 15 , wherein the virtual machine includes a kernel-mode GPU driver and a user-mode GPU driver.

17. The one or more non-transitory computer readable media of claim 6 , wherein a first user-side container includes a user-mode driver to communicate with the second kernel-mode driver.

18. One or more non-transitory computer readable media having instruction thereon that, in response to execution by one or more processing devices of a computing system, cause the computing system to:

associate a user-side container with a kernel-side device node, wherein the kernel-side device node corresponds to an emulated graphics processing unit, GPU, of a kernel-mode driver and the emulated GPU is communicatively coupled to a physical GPU; and

allow one or more software applications in the user-side container to utilize a resource of the physical GPU via the kernel-side device node and the emulated GPU;

wherein the kernel-mode driver includes a display manager to couple with a frame buffer of the user-side container to selectively bring the frame buffer to a control path for the physical GPU.

19. The one or more non-transitory computer readable media of claim 18 , wherein each of the emulated GPUs is to emulate the physical GPU.

20. The one or more non-transitory computer readable media of claim 18 , wherein the kernel-mode driver includes a scheduler, and the scheduler is to communicate with the emulated GPU and the physical GPU.

21. The one or more non-transitory computer readable media of claim 20 , wherein the emulated GPU is to support a first set of GPU features, the physical GPU supports a second set of GPU features, and the first set is a proper subset of the second set.

22. The one or more non-transitory computer readable media of claim 18 , wherein:

the emulated GPU does not emulate the physical GPU;

the kernel-mode driver is a first kernel-mode driver;

as part of allowance of one or more software applications in the user-side container to utilize a resource of the physical GPU via the kernel-side device node and the emulated GPU, allow one or more software applications in the user-side container to utilize the resource of the physical GPU via the kernel-side device node, the emulated GPU, and a second kernel-mode driver; and

the device node is disposed between the second kernel-mode driver and the emulated GPU in a communication pathway.

Continuity (1)
Related Publication 20180293700A1 · Oct 11, 2018