Asynchronous Memory Allocation via Pool Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Synchronous memory allocation for stream-ordered computational operations introduces significant delays and causes memory fragmentation, leading to reduced system performance and increased memory usage.

Innovation Solution

Implementing asynchronous memory allocation and deallocation using a memory pool, where virtual memory pointers are provided initially, and backing memory is allocated and deallocated as needed, allowing for efficient reuse of memory without synchronization with the operating system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous memory allocation is used for stream-ordered computational operations, then memory is allocated reliably, but significant delays are introduced and system performance is reduced

Engineering Contradiction:
Improvememory allocation reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by pre-allocating memory from a memory pool before computational operations are executed. Virtual memory pointers are allocated asynchronously in advance, allowing the system to prepare memory resources ahead of time without blocking subsequent computational operations. This resolves the contradiction by maintaining allocation reliability through controlled pre-allocation while eliminating delays that would otherwise reduce system performance.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If synchronous memory allocation is used for stream-ordered computational operations, then memory is allocated with proper synchronization, but memory fragmentation increases and memory usage efficiency decreases

Engineering Contradiction:
Improvememory allocation synchronizationVSAvoidmemory usage efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies segmentation by dividing the memory resource into a dedicated memory pool separated from the main system memory. This memory pool is managed independently with its own allocation and deallocation mechanisms, allowing stream-ordered operations to access memory without causing fragmentation in the broader memory space. The segmentation maintains synchronization reliability within the pool while improving overall memory usage efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements discarding and recovering by asynchronously deallocating memory back to the memory pool after computational operations complete. This allows memory to be recovered and reused within the pool without requiring synchronous operations or causing system-wide fragmentation. The mechanism maintains proper synchronization for the duration of use while significantly improving memory usage efficiency through rapid reuse.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If asynchronous memory allocation is implemented, then system performance is improved and delays are reduced, but memory management complexity increases

Engineering Contradiction:
Improvesystem performanceVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary memory pool manager that handles the complexity of asynchronous memory allocation and deallocation. This intermediary layer abstracts the complex asynchronous operations from the computational streams, providing a simplified interface where virtual memory pointers are allocated and freed without requiring complex synchronization logic in the main computational code. This resolves the contradiction by improving system performance through asynchronous operations while containing memory management complexity within a dedicated intermediary structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Quantity of substance

If asynchronous memory deallocation is used, then memory is reused efficiently, but synchronization with the operating system is relaxed

Engineering Contradiction:
Improvememory reuse efficiencyVSAvoidsystem synchronization
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies preliminary action to memory deallocation by preparing memory for reuse within the memory pool before the operating system's synchronous deallocation occurs. Virtual memory pointers are deallocated asynchronously and marked for reuse in advance, allowing memory to be efficiently reused without waiting for OS synchronization. This maintains memory reuse efficiency while the memory pool manager ensures proper synchronization is re-established when needed through controlled deallocation timing.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240330056A1Asynchronous memory allocation
Publication Date: 2024.10.03 NVIDIA CORP
  • US20240330056A1 patent drawing
  • US20240330056A1 patent drawing
  • US20240330056A1 patent drawing

AI summary

Apparatuses, systems, and techniques to allocate processor memory. In at least one embodiment, an application programming interface is used to execute instructions to asynchronously allocate memory locations to processors.