Memory management in gaming rendering
Abstract
Some implementations of this application are directed to a server system including one or more CPUs, a plurality of GPUs, main dynamic memory storing programs and data for use by the CPUs and/or GPUs during program execution, a static memory pool stored in a non-volatile memory, and a memory controller configured to manage the static memory pool. Each of the GPUs includes a local cache and is configured to access the static memory pool via the memory controller. The server system executes a plurality of gaming sessions for a gaming title in parallel on the one or more CPUs. Each of the plurality of gaming sessions is associated with a static data item stored in the static memory pool, and requires a graphics operation executable by a respective GPU using the static data item.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 - 20 . (canceled)
21 . A method, comprising:
loading, by one or more central processing units (CPUs) of a server system, an executable program to a main dynamic memory of the server system; executing in parallel, by the one or more CPUs, a plurality of program sessions corresponding to the executable program, each program session of the plurality of program sessions comprising a graphics operation executable by a respective graphics processing unit (GPU) assigned to render the respective program session; identifying, by the one or more CPUs, a static data item used in the graphics operation of the plurality of program sessions; storing, by a memory controller, the static data item in a static memory pool; and enabling, by the memory controller, access of each assigned GPU to the static data item while performing the graphics operation.
22 . The method of claim 21 , the static data item including a first static data item that is identified by the one or more CPUs in a list of predetermined static data items, and the method further comprising:
storing by the memory controller in the static memory pool a first subset of static data items from the list of predetermined static data items, the first subset including the first static data item; and storing by the memory controller in the main dynamic memory a second subset of static data items from the list of predetermined static data items.
23 . The method of claim 21 , wherein the static data item is a standard static data item used in rendering of the executable program, and wherein the method further comprises:
prior to storing the static data item in the static memory pool, retrieving the static data item from a hard drive of the server system or a remote library server.
24 . The method of claim 21 , wherein the static data item is a custom static data item predefined by a developer of the executable program and stored in a hard drive of the server system, and wherein the method further comprises:
prior to storing the static data item in the static memory pool, retrieving the static data item from the hard drive of the server system.
25 . The method of claim 21 , further comprising:
allocating by the one or more CPUs each GPU of a plurality of GPUs to a subset of the plurality of program sessions to be executed thereon; and for each of the plurality of program sessions, during execution of the graphics operation by a respective GPU, obtaining by the respective GPU a copy of the static data item from the static memory pool via the memory controller and performing the graphics operation using the copy of the static data item.
26 . The method of claim 25 , further comprising:
for each program session of the plurality of program sessions, storing in the main dynamic memory a dynamic data item and user information in association with the program session during execution of the graphics operation.
27 . The method of claim 25 , further comprising:
for each of the plurality of program sessions, during execution of the graphics operation by the respective GPU, loading the copy of the static data item into a respective local cache of the respective GPU.
28 . The method of claim 25 , wherein obtaining the copy of the static data item from the static memory pool comprises:
loading the copy of the static data item into a local cache of the GPUs once and sharing the copy of the static data item by a subset of the GPUs corresponding to the subset of the plurality of program sessions.
29 . A server system, comprising:
a main dynamic memory to store an executable program; a static memory pool; a plurality of GPUs that are each configured to render a respective program session of a plurality of program sessions corresponding to the executable program; and one or more CPUs to load the executable program to the main dynamic memory, to execute in parallel the plurality of program sessions, and to identify a static data item used in a graphics operation executable by each GPU of the plurality of GPUs that is assigned to render a respective program session; and a memory controller to store the static data item in the static memory pool and enable the GPUs to access the static data item while performing the graphics operation.
30 . The server system of claim 29 , wherein the static data item includes a first static data item identified by the one or more CPUs in a list of predetermined static data items, and wherein the memory controller stores in the static memory pool a first subset of static data items that includes the first static data item and stores in the main dynamic memory a second subset of static data items.
31 . The server system of claim 29 , wherein the static data item is a standard static data item used in rendering of the executable program, and wherein the static data item is retrieved from a hard drive of the server system or a remote library server prior to storage in the static memory pool.
32 . The server system of claim 29 , wherein the static data item is a custom static data item predefined by a developer of the executable program and retrieved from a hard drive of the server system prior to storage in the static memory pool.
33 . The server system of claim 29 , wherein the one or more CPUs are further configured to allocate each of the plurality of GPUs to a subset of the plurality of program sessions, and wherein to render the respective program session includes to obtain a copy of the static data item from the static memory pool and execute the graphics operation using the copy.
34 . The server system of claim 33 , wherein to render the respective program session includes to store a dynamic data item and user information in a portion of the main dynamic memory associated with the program session.
35 . The server system of claim 33 , wherein to render the respective program session includes to load the copy of the static data item into a local cache of the assigned GPU during execution of the graphics operation.
36 . The server system of claim 33 , wherein a subset of GPUs load the copy of the static data item into a local cache once and share the copy for the subset of the program sessions.
37 . A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors of a server system, cause the server system to:
load an executable program to a main dynamic memory; execute in parallel, by the one or more processors, a plurality of program sessions corresponding to the executable program, each program session of the plurality of program sessions comprising a graphics operation executable by a respective graphics processing unit (GPU) assigned to render the respective program session; identify a static data item used in the graphics operations of the plurality of program sessions; store the static data item in a static memory pool; and enable access of each assigned GPU to the static data item while performing the graphics operation.
38 . The non-transitory computer-readable storage medium of claim 37 , wherein the static data item includes a first static data item identified in a list of predetermined static data items, and wherein the memory controller stores a first subset of static data items in the static memory pool and a second subset in the main dynamic memory.
39 . The non-transitory computer-readable storage medium of claim 37 , wherein the instructions further cause the server system to allocate each GPU to a subset of program sessions, and wherein to render the respective program session includes to obtain a copy of the static data item from the static memory pool to execute the graphics operation.
40 . The non-transitory computer-readable storage medium of claim 39 , wherein to render the respective program session includes to store a dynamic data item and user information in a portion of the main dynamic memory associated with the program session.Join the waitlist — get patent alerts
Track US2024001230A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.