Virtual Address Disassociation API for Dynamic GPU Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Performing computational operations consumes significant memory, time, or computing resources due to inefficient loading and unloading of array data in GPUs.

Innovation Solution

Implementing an application programming interface (API) to dynamically load and unload array data from a GPU using CUDA programs, optimizing memory usage and processing efficiency by creating and managing virtual addresses separately from physical backing memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If array data is loaded into GPU memory for computational operations, then computation performance is improved, but memory consumption increases

Engineering Contradiction:
Improvecomputation performanceVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic loading and unloading of array data from host memory to GPU memory based on computational needs. The system can load data when computation is required and unload it when not needed, making the memory allocation dynamic rather than static. This resolves the contradiction by allowing high computation performance only when data is loaded, while reducing memory consumption when data is unloaded.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent enables discarding of array data from GPU memory after computational operations are completed, and recovering it back to host memory for potential future use. This cycle of loading, computing, unloading, and reloading allows the system to achieve computation performance when needed while minimizing persistent memory consumption.

Inventive Principle:
Principle #34Discarding and recovering

2Quantity of substance

If array data is dynamically loaded and unloaded from GPU, then memory usage is optimized, but computational overhead increases

Engineering Contradiction:
Improvememory usageVSAvoidcomputational overhead
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by pre-loading array data into GPU memory before computational operations are initiated, and pre-unloading data after computations are completed. This preliminary action approach reduces the frequency of load/unload operations during computation, thereby minimizing the computational overhead while maintaining optimized memory usage.

Inventive Principle:
Principle #10Preliminary action

3Speed

If virtual addresses are associated with physical backing memory, then data access efficiency is improved, but memory management complexity increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent extracts the virtual address space management from the physical memory management by allowing virtual addresses to exist independently without mandatory association with physical backing memory. This separation allows the system to maintain fast data access when associations exist while reducing memory management complexity by allowing virtual addresses to be created, modified, and deleted independently of physical memory constraints.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12436894B2Application programming interface to disassociate a virtual address
Publication Date: 2025.10.07 NVIDIA CORP
  • US12436894B2 patent drawing
  • US12436894B2 patent drawing
  • US12436894B2 patent drawing

AI summary

Apparatuses, systems, and techniques to manage memory arrays. In at least one embodiment an application programming interface (API) is performed to disassociate a virtual address indicated by the API from a corresponding physical address.