Game State Save, Transfer and Resume for Cloud Gaming
US-2016184712-A1 · Jun 30, 2016 · US
US2016247248A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016247248-A1 |
| Application number | US-201514630830-A |
| Country | US |
| Kind code | A1 |
| Filing date | Feb 25, 2015 |
| Priority date | Feb 25, 2015 |
| Publication date | Aug 25, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The claimed subject matter includes techniques for live migration of a graphics processing unit (GPU) state. An example method includes receiving recorded GPU commands from a relay at a destination GPU. The method also includes replaying the recorded GPU commands at the destination GPU. The method also includes detecting a downtime for the GPU commands. The method further includes establishing a connection between the destination GPU and the client during the detected downtime.
Opening claim text (preview).
What is claimed is: 1 . A system for live migration of a graphics processing unit (GPU) state, comprising: a first module to record GPU commands at a source GPU, the first module to send the GPU commands to a destination GPU, the destination GPU to replay the recorded GPU commands; a second module to predict a downtime for the GPU commands at the source GPU that is below a threshold time; and a third module to connect a client to the destination GPU at the detected downtime. 2 . The system of claim 1 , the first module to further record a snapshot of a GPU state of the source GPU, the first module to also record the GPU commands at the source GPU in response to recording the snapshot. 3 . The system of claim 2 , further comprising a fourth module to generate a map linking GPU resource identifiers and logical resource identifiers, each of the GPU commands comprising an object with a GPU resource identifier that is to be mapped to a logical resource identifier. 4 . The system of claim 3 , the third module to utilize the map to schedule a plurality of threads for execution, each thread comprising one or more logical resource identifiers. 5 . The system of claim 1 , the third module comprising a relay encapsulated in a virtual machine, the relay communicatively coupled to a guest virtual machine (VM) via a Transmission Control Protocol (TCP) link, the relay to create a new TCP connection to a new renderer and send a GPU state log to the new renderer before switching the TCP link of the guest virtual machine to the new renderer, the new renderer communicatively coupled to the destination GPU. 6 . The system of claim 1 , the destination GPU to be located in a machine that is closer in proximity to a client device than the source GPU, the client device to produce the GPU commands. 7 . The system of claim 1 , the guest VM comprising a guest operating system (OS) that is to run one or more applications or games. 8 . The system of claim 1 , the GPU commands to be recorded to a log file with corresponding timestamps. 9 . A method for live migration of a graphics processing unit (GPU) state, the method comprising: receiving recorded GPU commands from a relay at a destination GPU; replaying the recorded GPU commands at the destination GPU; detecting a downtime for the GPU commands; establishing a connection between the destination GPU and the client during the detected downtime. 10 . The method of claim 9 , further comprising: receiving a snapshot of a GPU state of the source GPU, the recorded GPU commands comprising commands received at the source GPU after the snapshot was created; and restoring the snapshot on the destination GPU before replaying the recorded GPU commands. 11 . The method of claim 9 , further comprising receiving a map linking GPU resource identifiers to logical resource identifiers, each of the GPU commands comprising an object with a GPU resource identifier that is to be mapped to a particular logical resource identifier. 12 . The method of claim 11 , further comprising utilizing the map to order GPU commands in a thread for execution, each thread containing one or more logical resource identifiers. 13 . The method of claim 9 , the destination GPU located in a machine that is closer in proximity to the client than the source GPU. 14 . The method of claim 9 , further comprising processing GPU commands from a plurality of clients at the destination GPU. 15 . The method of claim 14 , further comprising dynamically allocating resources by detecting an underutilized GPU and migrating the client to the underutilized GPU. 16 . The method of claim 14 , further comprising dynamically allocating resources between a software renderer and a hardware renderer by migrating the client between the software renderer and the hardware renderer. 17 . The method of claim 14 , further comprising dynamically allocating resources by processing GPU commands from a plurality of clients at the destination GPU. 18 . One or more computer-readable memory storage devices for storing computer readable instructions that, when executed by one or more processing devices, instruct live migration of a graphics processing unit (GPU) state, the computer-readable instructions comprising code to: record a snapshot of a GPU state of a source GPU; record GPU commands from a virtual machine at the source GPU and store the recorded GPU commands to a log file; send the log file and the snapshot to a destination GPU; predict a downtime for the GPU commands at the source GPU; switch a relay to connect the client to the destination GPU during the predicted downtime. 19 . The one or more computer-readable memory storage devices of claim 18 , the computer-readable instructions comprising code to generate a map linking GPU resource identifiers and logical resource identifiers, each of the GPU commands comprising an object with a GPU resource identifier that is to be mapped to a logical resource identifier. 20 . The one or more computer-readable memory storage devices of claim 18 , the computer-readable instructions comprising code to create a new set of Transmission Control Protocol (TCP) links and restore a GPU state of the source GPU on a destination GPU before the relay switches to the destination GPU.
Processor architectures; Processor configuration, e.g. pipelining · CPC title
Program initiating; Program switching, e.g. by interrupt · CPC title
Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title
resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence) · CPC title
Distribution of virtual machine instances; Migration and load balancing · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.