Dynamic interface synchronization for virtualized graphics processing

US10169841B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10169841-B1
Application numberUS-201715470821-A
CountryUS
Kind codeB1
Filing dateMar 27, 2017
Priority dateMar 27, 2017
Publication dateJan 1, 2019
Grant dateJan 1, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, systems, and computer-readable media for dynamic interface synchronization for virtualized graphics processing are disclosed. A GPU interface synchronization request is sent from a compute instance to a graphics processing unit (GPU) server via a network. The GPU server comprises a virtual GPU attached to the compute instance and implemented using at least one physical GPU. Based at least in part on the GPU interface synchronization request, a shared version of a GPU interface is determined for use with the compute instance and the GPU server. Program code of the shared version of the GPU interface is installed on the compute instance and on the GPU server. Using the shared version of the GPU interface, the compute instance sends instructions to the virtual GPU over the network, and the virtual GPU generates GPU output associated with the instructions.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a virtual compute instance configured to execute an application, wherein the virtual compute instance is implemented in a multi-tenant provider network using a server comprising at least one central processing unit (CPU) and a memory, and wherein the virtual compute instance comprises a first GPU interface; and a virtual graphics processing unit (GPU) attached to the virtual compute instance, wherein the virtual GPU is implemented in the multi-tenant provider network using a GPU server comprising at least one physical GPU, wherein the GPU server is accessible to the server via a network, and wherein the GPU server comprises a second GPU interface; and wherein the virtual compute instance is configured to send, to the GPU server via the network, a GPU interface synchronization request, and wherein, responsive to the GPU interface synchronization request: the virtual compute instance is configured to load, from the GPU server, program code of the second GPU interface, wherein the virtual compute instance is configured to initiate execution of the application using the second GPU interface to communicate with the virtual GPU; or the GPU server is configured to use program code of the first GPU interface, wherein the virtual compute instance is configured to initiate execution of the application using the first GPU interface to communicate with the virtual GPU. 2. The system as recited in claim 1 , wherein the first GPU interface and the second GPU interface comprise different versions of a GPU interface or GPU interfaces of different GPU interface families. 3. The system as recited in claim 1 , wherein the first GPU interface or the second GPU interface is selected as a shared version of GPU interface based at least in part on one or more parameter values of the GPU interface synchronization request. 4. The system as recited in claim 1 , wherein an additional virtual GPU is attached to the virtual compute instance prior to sending the GPU interface synchronization request, and wherein the first GPU interface is selected for use by the virtual compute instance and the GPU server. 5. A computer-implemented method, comprising: sending, from a compute instance to a graphics processing unit (GPU) server via a network, a GPU interface synchronization request, wherein the compute instance is implemented using a server comprising at least one central processing unit (CPU) and a memory, and wherein the GPU server comprises a virtual GPU attached to the compute instance and implemented using at least one physical GPU; based at least in part on the GPU interface synchronization request, determining a shared version of a GPU interface for use with the compute instance and the GPU server, wherein program code of the shared version of the GPU interface is installed on the compute instance and on the GPU server; initiating execution of an application on the compute instance; and using the shared version of the GPU interface on the compute instance to send instructions associated with the application to the virtual GPU over the network, wherein the virtual GPU generates GPU output associated with the instructions. 6. The method as recited in claim 5 , wherein determining the shared version of the GPU interface comprises selecting a first version of a GPU interface installed on the compute instance or a second version of the GPU interface installed on the GPU server. 7. The method as recited in claim 5 , wherein determining the shared version of the GPU interface comprises selecting a version of a first GPU interface installed on the compute instance or a version of a second GPU interface installed on the GPU server. 8. The method as recited in claim 5 , wherein a GPU interface installed on the GPU server is selected as the shared version of the GPU interface based at least in part on one or more parameter values of the GPU interface synchronization request, and wherein the program code of the shared version of the GPU interface is sent from the GPU server to the compute instance. 9. The method as recited in claim 5 , wherein a GPU interface installed on the compute instance is selected as the shared version of the GPU interface based at least in part on one or more parameter values of the GPU interface synchronization request. 10. The method as recited in claim 5 , wherein an additional virtual GPU is attached to the compute instance prior to sending the GPU interface synchronization request, and wherein a GPU interface installed on the compute instance is selected as the shared version of the GPU interface. 11. The method as recited in claim 5 , further comprising: terminating the execution of the application on the compute instance; installing a different version of the GPU interface on the compute instance and on the GPU server; initiating an additional execution of the application on the compute instance, wherein the execution is terminated, the different version of the GPU interface is installed, and the additional execution is initiated without rebooting the compute instance; and using the different version of the GPU interface on the compute instance to send additional instructions associated with the application to the virtual GPU over the network, wherein the virtual GPU generates additional GPU output associated with the additional instructions. 12. The method as recited in claim 5 , wherein the compute instance comprises a virtual compute instance, and wherein the compute instance and the GPU server are implemented using resources of a multi-tenant provider network. 13. A non-transitory computer-readable storage medium storing program instructions computer-executable to perform: sending, from a virtual compute instance to a graphics processing unit (GPU) server via a network, a GPU interface synchronization request, wherein the virtual compute instance is implemented using a server comprising at least one central processing unit (CPU) and a memory, and wherein the GPU server comprises a virtual GPU attached to the virtual compute instance and implemented using at least one physical GPU; based at least in part on the GPU interface synchronization request, determining a shared version of a GPU driver for use with the virtual compute instance and the GPU server, wherein program code representing the shared version of the GPU driver is installed on the virtual compute instance and on the GPU server; initiating execution of an application on the virtual compute instance; and using the shared version of the GPU driver on the virtual compute instance to send instructions associated with the application to the virtual GPU over the network, wherein the virtual GPU generates GPU output associated with the instructions. 14. The non-transitory computer-readable storage medium as recited in claim 13 , wherein a GPU driver installed on the virtual compute instance is selected as the shared version of the GPU driver based at least in part on one or more parameter values of the GPU interface synchronization request. 15. The non-transitory computer-readable storage medium as recited in claim 13 , wherein determining the shared version of the GPU driver comprises selecting a first version of a GPU driver installed on the virtual compute instance or a second version of the GPU driver installed on the GPU server. 16. The non-transitory computer-readable storage medium as recited in claim 13 , wherein determining the shared version of the GPU driver comprises selecting a version of a first GPU driver installed on the virtual compute instance or a version of a second GPU dri

Assignees

Inventors

Classifications

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Memory management · CPC title

  • Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10169841B1 cover?
Methods, systems, and computer-readable media for dynamic interface synchronization for virtualized graphics processing are disclosed. A GPU interface synchronization request is sent from a compute instance to a graphics processing unit (GPU) server via a network. The GPU server comprises a virtual GPU attached to the compute instance and implemented using at least one physical GPU. Based at le…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 01 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).