API Memory Dependency Flags for Kernel Execution Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computational programs face inefficiencies in memory usage and execution delays due to unaccounted dependencies between operations, despite advancements in computer hardware performance.

Innovation Solution

The implementation of application programming interfaces (APIs) to manage memory operation dependencies by creating, setting, and managing context flags for kernels, allowing synchronous and asynchronous execution based on dependency management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory operations are executed without dependency management, then execution speed may be faster, but memory usage efficiency deteriorates and execution delays occur

Engineering Contradiction:
Improveexecution speedVSAvoidexecution delays
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of memory operation dependencies before execution, storing dependency information in a data structure. This allows the system to pre-determine execution orders and optimize memory usage patterns in advance, preventing execution delays while maintaining high productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring memory operation dependencies and adjusting execution orders based on detected dependency patterns. This feedback loop enables dynamic optimization of both execution speed and memory efficiency, resolving the contradiction between fast execution and avoiding delays.

Inventive Principle:
Principle #23Feedback

2Power

If hardware performance is advanced to accelerate operations, then computing power increases, but the ability to account for operation dependencies and execution orders remains insufficient

Engineering Contradiction:
Improvecomputing powerVSAvoidability to handle operation dependencies
Core Design Contradiction:
PowerVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary layer (the dependency management system with data structures) between the hardware and the computational operations. This intermediary captures and manages dependency information, enabling advanced hardware to operate efficiently while properly accounting for operation dependencies and execution orders.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the computational workflow into discrete operations with explicitly defined dependencies. By breaking down complex computations into manageable segments with clear dependency relationships, the system enables both high-performance hardware utilization and proper dependency management.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If operations are executed in different orders with different dependencies, then program flexibility increases, but execution delays occur due to unmanaged dependencies

Engineering Contradiction:
Improveprogram flexibilityVSAvoidexecution delays
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system implements dynamic dependency management that adapts execution orders based on detected dependency relationships. Rather than fixed execution sequences, the system dynamically adjusts operation ordering to optimize for both flexibility and speed, preventing delays while maintaining program adaptability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12517729B2Application programming interface to store memory dependency information
Publication Date: 2026.01.06 NVIDIA CORP
  • US12517729B2 patent drawing
  • US12517729B2 patent drawing
  • US12517729B2 patent drawing

AI summary

Apparatuses, systems, and techniques to execute software programs. In at least one embodiment, an application programming interface (API) is performed to cause an indication to be stored of whether one or more memory operations to be performed are dependent on one or more other memory operations.