API Memory Information Indication for Parallel Computing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in managing memory effectively across multiple processors during parallel computing, leading to inefficiencies and performance issues due to complexities in programming models and memory management.

Innovation Solution

The development of enhanced stream ordered allocators and APIs that facilitate efficient memory allocation and management across parallel processing units, allowing for synchronous and asynchronous allocation and deallocation of memory blocks, and enabling sharing and attribute determination of memory pools.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional memory allocation methods are used in parallel computing, then memory management can be implemented, but memory management complexity increases and performance decreases

Engineering Contradiction:
Improveparallel computing performanceVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory pool is divided into multiple memory blocks that can be independently allocated and managed. Each memory block can be tracked separately, allowing for fine-grained control over memory resources in parallel computing environments, which reduces overall memory management complexity while maintaining high performance

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Memory pools are pre-configured and organized into blocks before parallel computing operations begin. This preliminary organization of memory resources eliminates the need for complex dynamic allocation during parallel execution, thereby improving performance while keeping management straightforward

Inventive Principle:
Principle #10Preliminary action

2Reliability

If memory is over-allocated to ensure availability, then memory access reliability improves, but memory usage efficiency decreases

Engineering Contradiction:
Improvememory access reliabilityVSAvoidmemory usage efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The memory allocation system dynamically adjusts memory block allocation based on actual usage patterns and requirements of parallel computing tasks. Memory blocks can be allocated, released, and re-allocated as needed, ensuring reliable memory access when required while minimizing wasted memory resources, thus improving both reliability and efficiency

Inventive Principle:
Principle #15Dynamics

3Loss of energy

If memory is under-allocated to improve efficiency, then memory usage efficiency improves, but memory access reliability decreases

Engineering Contradiction:
Improvememory usage efficiencyVSAvoidmemory access reliability
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The system incorporates feedback mechanisms that monitor memory usage patterns, allocation status, and access requirements in parallel computing environments. Based on this feedback, the memory manager can proactively allocate additional memory blocks or adjust pool configurations to ensure reliability is maintained while avoiding excessive allocation, thus optimizing the balance between efficiency and reliability

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250181393A1Application programming interface to indicate memory information
Publication Date: 2025.06.05 NVIDIA CORP
  • US20250181393A1 patent drawing
  • US20250181393A1 patent drawing
  • US20250181393A1 patent drawing

AI summary

Apparatuses, systems, and techniques to execute one or more application programming interface (API) functions to facilitate parallel computing. In at least one embodiment, one or more APIs are to indicate information about one or more storage locations using various novel techniques described herein.