DMA Compiler for Sequential and Parallel Data Movement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programming Direct Memory Access (DMA) engines for high-performance computing accelerators is complex, requiring detailed hardware-specific knowledge and is prone to errors and inefficiencies due to manual coding of data flows, which is labor-intensive and incompatible with hardware changes.

Innovation Solution

A DMA compiler that receives high-level data flow instructions and automatically generates hardware-specific code for DMA data movements, optimizing bandwidth allocation and reducing human error by translating user input into optimized hardware-level commands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual coding of hardware-level data flows is used, then DMA data movement can be implemented, but the process becomes labor-intensive, error-prone, and requires detailed hardware-specific knowledge

Engineering Contradiction:
Improveease of DMA programmingVSAvoidcomplexity of DMA programming process
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a DMA compiler as an intermediary tool that translates high-level data flow descriptions into hardware-specific DMA commands. This mediator handles the complexity of hardware-level programming details, allowing users to work with abstract data flow representations while the compiler automatically generates the necessary low-level code, thereby reducing both labor intensity and error rates.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The DMA compiler implements self-service by automatically analyzing high-level data flow descriptions and generating optimized hardware-level code without requiring manual intervention. The system includes built-in optimization capabilities that automatically allocate bandwidth, manage buffer resources, and generate phase descriptors, eliminating the need for programmers to manually handle complex hardware-specific optimizations.

Inventive Principle:
Principle #25Self-service

2Productivity

If manual optimization of data flows is performed, then data movement efficiency can be improved, but the process becomes time-consuming and requires specialized hardware knowledge

Engineering Contradiction:
Improvedata movement efficiencyVSAvoidtime for coding and optimizing data flows
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The DMA compiler performs preliminary optimization actions by automatically analyzing data flow descriptions and pre-computing optimal bandwidth allocation, buffer sizes, and phase configurations before code generation. This preliminary optimization eliminates the need for manual iterative tuning and ensures that the generated code is already optimized for performance, saving significant development time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system automatically adjusts critical parameters such as bandwidth allocation, buffer sizes, and phase descriptors based on the analyzed data flow characteristics. The compiler dynamically optimizes these parameters to maximize data movement efficiency without requiring manual intervention, thereby improving productivity while reducing the time investment needed.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If hardware-specific low-level code is written, then DMA operations can be implemented, but the code becomes incompatible with different generations of the same chip

Engineering Contradiction:
Improvecorrectness of DMA implementationVSAvoidcompatibility across hardware generations
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The DMA compiler is designed with universality to support multiple hardware generations and variants. It maintains a library of hardware-specific optimizations and automatically selects the appropriate optimizations based on the target hardware platform. This allows the same high-level data flow description to be compiled for different chip generations without requiring code changes, ensuring both correctness and adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The compiler implements dynamic adaptation by detecting the target hardware platform and automatically adjusting the generated code to match the specific capabilities and requirements of that platform. This dynamic code generation ensures that the produced DMA code is both correct for the specific hardware implementation and adaptable to future generations, as the compiler can be updated to support new hardware without changing user code.

Inventive Principle:
Principle #15Dynamics

4Measurement precision

If detailed hardware-specific details are incorporated in programming, then accurate DMA control is achieved, but the programming process becomes more challenging and error-prone

Engineering Contradiction:
Improveprecision of DMA controlVSAvoidease of programming
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The DMA compiler serves as an intermediary that handles all hardware-specific details automatically. Users provide high-level data flow descriptions without needing to know hardware-specific parameters, and the compiler translates these into precise hardware-level commands with correct bandwidth allocation, buffer management, and phase control, thereby maintaining precision while improving ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The compiler performs self-service by automatically determining and setting all hardware-specific parameters such as bandwidth allocation, buffer sizes, and phase descriptors based on the input data flow description. This eliminates the need for programmers to manually configure these detailed parameters, reducing errors while maintaining the precision required for accurate DMA control.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250298763A1Mapping abstract data movements into sequential and parallel direct memory access (DMA) programming
Publication Date: 2025.09.25 NVIDIA CORP
  • US20250298763A1 patent drawing
  • US20250298763A1 patent drawing
  • US20250298763A1 patent drawing

AI summary

In various examples, systems and methods are disclosed relating to a system including one or more processors to generate hardware-level configurations for direct memory access (DMA) devices based on high-level descriptions of data movements. The high-level descriptions may include data flows for transferring data using the DMA device and the system may automatically generate the hardware-level configurations for the DMA device based on the data flows, simplifying the process of programming data movements and reducing the opportunity for human error.