CUDA Thread Cluster API for Synchronization and Resource Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer programs are inefficiently structured, leading to delays and resource wastage due to processor inability to account for various program organization aspects, resulting in suboptimal memory and computing resource utilization.

Innovation Solution

An application programming interface (API) is introduced to manage and synchronize execution of clusters of threads, including setting parameters, sharing resources, and synchronizing between groups of instructions, optimizing the execution process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If computer hardware advances are used to accelerate program execution, then processing speed is improved, but the hardware cannot take into account various program structures causing delays and inefficiencies

Engineering Contradiction:
Improveprocessing speedVSAvoidprogram structure adaptability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic scheduling policies that allow the processing system to adapt its execution strategy based on program structure characteristics. The scheduler can dynamically adjust thread block grouping, synchronization points, and resource allocation based on detected program patterns, making the hardware execution flexible rather than rigid.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes execution parameters such as thread block dimensions, grid configurations, and synchronization frequencies based on the specific program structure being executed. By adjusting these parameters dynamically, the system optimizes performance for different computational patterns while maintaining high processing speed.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If traditional execution models are used, then program execution is simple, but resource management is inefficient leading to delays

Engineering Contradiction:
Improveexecution simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements self-service mechanisms where the execution system automatically manages thread block scheduling, resource allocation, and synchronization without requiring explicit programmer intervention. The system services itself by detecting program structures and autonomously optimizing execution, maintaining simplicity while improving productivity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system incorporates feedback loops that monitor execution progress, resource utilization, and program structure characteristics. Based on this feedback, the scheduler automatically adjusts thread block management strategies, enabling efficient resource utilization while keeping the programming model simple for developers.

Inventive Principle:
Principle #23Feedback

3Productivity

If more thread blocks are processed in parallel, then computational throughput is improved, but coordination and synchronization become more complex

Engineering Contradiction:
Improvecomputational throughputVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the parallel execution into hierarchical levels: coarse-grained thread block groups and fine-grained individual thread blocks. This segmentation allows independent management of synchronization at different levels, enabling high throughput parallel processing while reducing overall synchronization complexity through structured organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces dimensional organization of thread blocks using grid and block dimensions, adding spatial structure to parallel execution. This dimensional approach allows systematic coordination of thousands of threads by organizing them in multi-dimensional arrays, reducing synchronization complexity through structured addressing and communication patterns.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS12613740B2Application programming interface to indicate attributes of groups of blocks of threads
Publication Date: 2026.04.28 NVIDIA CORP
  • US12613740B2 patent drawing
  • US12613740B2 patent drawing
  • US12613740B2 patent drawing

AI summary

Apparatuses, systems, and techniques to execute CUDA programs. In at least one embodiment, an application programming interface is performed to indicate one or more attributes of one or more groups of blocks of one or more threads.