GPU Parallel Memory Allocation Using a Dynamic Radix Tree

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory allocation and deallocation in parallel processing units (PPUs) such as GPUs have become a significant performance bottleneck due to the inefficiencies in existing parallel computation APIs like CUDA, leading to bottlenecks in multi-threaded software applications.

Innovation Solution

The implementation of a dynamic radix tree data structure for managing scratch memory operations, allowing parallel allocation, search, and deallocation of memory by cooperative groups, which utilizes a dynamic radix tree with superblocks and bins to optimize memory management and reduce race conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional memory allocation methods are used in parallel processing units, then memory management can be implemented with simple data structures, but performance bottlenecks occur due to race conditions and lack of parallelization capability

Engineering Contradiction:
Improvememory allocation performanceVSAvoidmemory management structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory management structure is segmented into multiple superblocks, each containing multiple bins. This hierarchical segmentation allows parallel threads to operate on different superblocks simultaneously, eliminating race conditions while maintaining manageable complexity through modular organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A dynamic radix tree data structure is introduced as an intermediary between memory requests and physical memory allocation. The radix tree with its superblock-bin hierarchy mediates allocation operations, providing a structured approach that enables parallel access patterns while maintaining memory management integrity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory allocation operations are performed sequentially to avoid race conditions, then memory management remains simple, but performance deteriorates due to serialization of parallel operations

Engineering Contradiction:
Improveparallel memory operation throughputVSAvoidrace condition prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By dividing memory into segmented superblocks and bins, the system enables spatial segmentation of parallel operations. Different thread groups can allocate from different superblocks concurrently, achieving both high throughput and race condition prevention through structured parallelism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the organizational parameters of memory management by introducing a dynamic radix tree structure with variable-depth superblocks and bins. This parameter transformation enables parallel operations to proceed simultaneously while maintaining allocation integrity through the tree's inherent structure.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If a dynamic radix tree structure with superblocks and bins is implemented, then parallel memory operations can be performed efficiently, but the data structure complexity increases

Engineering Contradiction:
Improveparallel memory operation efficiencyVSAvoidradix tree data structure complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The radix tree is segmented into superblocks containing multiple bins, creating a hierarchical structure that simplifies parallel operations. Each superblock-bin unit can be independently accessed, making the complex radix tree manageable through modular organization and enabling efficient parallel memory operations.

Inventive Principle:
Principle #1Segmentation

4Productivity

If traditional memory allocation APIs are used, then implementation remains simple, but performance bottlenecks occur in multi-threaded applications

Engineering Contradiction:
Improvemulti-threaded application performanceVSAvoidmemory management implementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The dynamic radix tree serves as an intermediary layer between traditional memory allocation APIs and the underlying memory hardware. This intermediary structure enables parallel operations by translating high-level allocation requests into structured access patterns across superblocks and bins, improving multi-threaded performance while managing complexity through abstraction.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12586144B2Cooperative parallel memory allocation
Publication Date: 2026.03.24 NVIDIA CORP
  • US12586144B2 patent drawing
  • US12586144B2 patent drawing
  • US12586144B2 patent drawing

AI summary

Apparatuses, systems, and techniques to perform multi-threaded memory allocation in parallel by one or more software programs being performed on a parallel processing unit (PPU), such as a graphics processing unit (GPU), or any other processing unit capable of supporting multi-threaded software execution. In at least one embodiment, one or more software programs expressed in part by code using an application programming interface for parallel computing, such as CUDA, perform allocation, search, and deallocation of memory efficiently and in parallel on a GPU.