Allocation of GPU resources across multiple clients
AssigneeOtoy, Inc.
InventorJulian Michael Urbach
Life of this patent
Estimating the term…
Abstract
Methods, apparatuses and systems directed to hosting, on a computer system, a plurality of application instances, each application instance corresponding to a remote client application; maintaining a network connection to each of the remote client applications for which an application instance is hosted; allocating resources of a graphics processing unit of the computer system between at least two of the remote client applications; concurrently rendering, utilizing the resources of the graphics processing unit of the computer system, the graphical output of the application instances corresponding to the at least two of the remote client applications; and transmitting the rendered graphical output to the at least two of the remote client applications over the respective network connections.
Claims15
A method comprising
- hosting, on a computer system, a plurality of application instances, each application instance corresponding to a remote client application;
- maintaining, by the computer system, a network connection to each of the remote client applications for which an application instance is hosted;
- determining, by the computer system, respective display capabilities associated with the remote client applications;
- partitioning, by the computer system, a memory storage of a graphics processing unit of the computer system into a plurality of portions such that a size and dimension of a portion depends on size and dimensions of the memory storage and a number of the portions into which the memory storage is to be partitioned;
- allocating, by the computer system, resources that comprise the portions of the memory storage that are currently available between each of at least two of the remote client applications such that a number of the portions allocated to each of the at least two of the remote client applications is based on respective display capabilities associated with each of the at least two of the remote client applications wherein a plurality of portions are assigned to at least one of the two remote client applications such that relative positions of the plurality of portions within the memory storage are based on a shape and dimensions of a respective display associated with the at least one of the at least two remote client application;
- concurrently rendering, by the computer system utilizing the resources of the graphics processing unit, the graphical output of the application instances corresponding to the at least two of the remote client applications;
- and
- transmitting, by the computer system, the rendered graphical output to the at least two of the remote client applications over the respective network connections.
A method, comprising:
- accessing, by a first computer system, a plurality sets of rendering parameters, wherein:
- the first computer system is connected to a plurality of second computer systems;
- each one of the plurality sets of rendering parameters corresponds to a particular one of the plurality of second computer systems;
- the first computer system comprises a graphics processing unit comprising a rendering target for storing images;
- determining, by the first computer system, respective display capabilities of the plurality of second computer systems;
- partitioning, by the first computer system, the rendering target into a plurality of rendering-target units such that a size and dimensions of a rendering-target unit depend on size and dimensions of the rendering target and a number of the rendering-target units into which the rendering target is to be partitioned;
- allocating, by the first computer system, to each one of the plurality of second computer systems, at least one of the plurality of rendering-target units that are currently available based on the respective display capabilities of each of the plurality of second computer systems such that relative positions of the plurality of portions within the memory storage are based on a shape and dimensions of a respective display associated with the at least one of the at least two remote client application;
- concurrently rendering, by the first computer system, a plurality of images for the plurality of second computer systems based on the plurality sets of rendering parameters, wherein each one of the plurality of images is rendered for a particular one of the plurality of second computer systems, based on a particular one of the plurality sets of rendering parameters corresponding to the particular one of the plurality of second computer systems, and stored in the rendering target;
- and
- transmitting, by the first computer system, each one of the plurality of images to the particular one of the plurality of second computer systems for which the image has been rendered.
A system, comprising:
- a memory comprising instructions executable by one or more processors;
- a graphics processing unit;
- and
- one or more processors coupled to the memory and operable to execute the instructions, the one or more processors being operable when executing the instructions to:
- host a plurality of application instances, each application instance corresponding to a remote client application;
- maintain a network connection to each of the remote client applications for which an application instance is hosted;
- determine respective display capabilities associated with the remote client applications;
- partition a memory storage of the graphics processing unit into a plurality of portions such that a size and dimensions of a portion depend on size and dimensions of the memory storage and a number of the portions into which the memory storage is to be partitioned;
- allocate resources that comprise the portions of the memory storage of the graphics processing unit that are currently available between each of at least two of the remote client applications such that a number of the portions allocated to the at least two remote client applications is based on the respective display capabilities associated with each of the at least two remote client applications wherein a plurality of portions are assigned to at least one of the two remote client applications such that relative positions of the plurality of portions within the memory storage are based on a shape and dimensions of a respective display associated with the at least one of the at least two remote client application;
- concurrently render, utilizing the resources of the graphics processing unit, the graphical output of the application instances corresponding to the at least two of the remote client applications;
- and
- transmit the rendered graphical output to the at least two of the remote client applications over the respective network connections.
One or more computer-readable tangible storage media embodying software operable when executed by one or more computer systems to:
- host a plurality of application instances, each application instance corresponding to a remote client application;
- maintain a network connection to each of the remote client applications for which an application instance is hosted;
- determine respective display capabilities associated with the remote client applications;
- partition a memory storage of a graphics processing unit of the one or more computer systems into a plurality of portions such that a size and dimensions of a portion depends on size and dimensions of the memory storage and a number of the portions into which the memory storage is to be partitioned;
- allocate resources that comprise the portions of the memory storage of the graphics processing unit that are currently available between each of at least two of the remote client applications such that a number of the portions allocated to the at least two remote client applications is based on the respective display capabilities associated with each of the at least two remote client applications wherein a plurality of portions are assigned to at least one of the two remote client applications such that relative positions of the plurality of portions within the memory storage are based on a shape and dimensions of a respective display associated with the at least one of the at least two remote client application;
- concurrently render, utilizing the resources of the graphics processing unit, the graphical output of the application instances corresponding to the at least two of the remote client applications;
- and
- transmit the rendered graphical output to the at least two of the remote client applications over the respective network connections.
Dependencies are inferred from the claim text.