VRAM Deduplication via Memory Management Process
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud gaming systems face challenges in efficiently managing video random-access memory (VRAM) due to its high cost and limited quantity, especially when handling thousands or millions of concurrent video game sessions, where VRAM becomes a contested resource due to asynchronous access by graphics processing units (GPUs).
Innovation Solution
Implementing a memory management process that communicates with graphics processing hardware components to share memory among multiple application instances, identifying immutable and duplicative content to deduplicate and reuse memory regions, and pooling VRAM resources for common processes using virtual fencing objects to ensure temporal consistency and minimize memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If VRAM is used to store video game data for fast access, then access speed is improved, but memory cost and quantity limitations worsen
Solution Approach 1:
The patent merges memory resources by allowing multiple application instances to share a common VRAM pool through a memory management process. Instead of each application having dedicated VRAM, the system combines VRAM resources into a shared pool that serves multiple applications simultaneously, reducing total VRAM requirements while maintaining fast access speeds through intelligent allocation and deduplication.
Solution Approach 2:
The patent uses copying by creating virtual copies of memory content through file descriptors that reference shared memory regions. When an application needs data, the memory management process provides file descriptors that point to the actual VRAM locations, allowing multiple applications to access the same physical memory content without duplicating it, thus reducing VRAM usage while maintaining fast access.
2Quantity of substance
If memory is shared among multiple applications, then VRAM utilization is improved, but memory consistency and access control worsen
Solution Approach 1:
The patent introduces a memory management process as an intermediary between applications and VRAM. This intermediary layer handles all memory access requests, tracks which applications are using which memory regions, and enforces access control rules. The intermediary maintains consistency by coordinating reads and writes, managing file descriptors, and ensuring that shared memory operations are atomic and properly synchronized across multiple applications.
Solution Approach 2:
The patent implements feedback mechanisms where the memory management process continuously monitors memory usage patterns, access frequencies, and application states. Based on this feedback, the system dynamically adjusts memory allocation, identifies candidates for deduplication, and makes informed decisions about which memory regions to share. The feedback loop ensures that memory consistency is maintained while maximizing utilization efficiency.
3Quantity of substance
If content is deduplicated across applications, then memory usage is reduced, but identification and management complexity worsens
Solution Approach 1:
The patent implements self-service by having applications register their memory needs with the memory management process, which then automatically identifies duplication opportunities and manages the sharing. The system uses hashing and comparison algorithms to automatically detect identical content across different applications without requiring manual intervention. Once deduplication is identified, the system automatically creates shared file descriptors and updates application references, reducing memory usage while managing complexity through automation.
Data Source
AI summary
The disclosed computer-implemented method includes instantiating a memory management process that is configured to communicate with graphics processing hardware components to control usage of shared memory by multiple different application instances. The memory management process also receives a request from an application instance indicating that content associated with a specific resource implemented by the application instance is to be stored in the shared memory, determines that the content identified in the request has been previously stored at a specified location in the shared memory, identifies a time span during which the identified content stored in the shared memory will be immutable, and instructs the requesting application instance to access the identified content from the specified location in shared memory during the identified time span. Various other methods, systems, and computer-readable media are also disclosed.


