CUDA Thread Block Scheduling API for Parallel Resource Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer hardware struggles to efficiently manage and execute computer programs due to inefficiencies in handling the various structural aspects of programs, leading to delays and resource wastage.

Innovation Solution

The implementation of an application programming interface (API) that allows for the management of thread blocks, including scheduling policies, dimensions, and resource sharing, to optimize the execution of CUDA programs on processing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional hardware execution methods are used, then simplicity of hardware design is maintained, but computational efficiency and resource utilization deteriorate

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidhardware structural complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments thread blocks into hierarchical groups (e.g., 3D blocks divided into 2D slices, then into 1D rows, and finally into individual threads). This segmentation allows the hardware to process different segments in parallel while maintaining manageable complexity at each level. The segmented structure enables independent scheduling and execution of block groups, improving computational efficiency without requiring the entire block to be processed as a single complex unit.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces multiple dimensional hierarchies for organizing thread blocks (3D block dimensions, 2D grid dimensions, 1D warp dimensions). By adding these organizational dimensions, the system can map complex computational workloads onto the hardware architecture more efficiently, allowing parallel execution across multiple dimensions while keeping the base hardware structure relatively simple.

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

2Productivity

If comprehensive program structure management is implemented, then execution efficiency improves, but hardware complexity increases

Engineering Contradiction:
Improveprogram execution efficiencyVSAvoidprogram structure management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic scheduling policies that can adaptively select between different execution strategies (e.g., spreading blocks across multiple compute units, coalescing adjacent blocks, or prioritizing certain blocks based on resource availability). This dynamic approach allows the system to optimize execution efficiency for different workload characteristics without requiring a fixed complex management structure, as the same hardware can adapt its behavior based on runtime conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes key organizational parameters such as block group size, grid dimensions, and warp size to optimize execution for different computational patterns. By allowing these parameters to be adjusted, the system can improve execution efficiency for various program structures without fundamentally changing the hardware architecture, thereby managing complexity through configurable parameters rather than fixed complex structures.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If resource sharing between block groups is enabled, then resource utilization improves, but coordination overhead increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsynchronization delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the thread block execution into independent block groups that can be scheduled and executed separately. Each block group maintains its own execution context and resources, allowing resource sharing to occur at the group level rather than requiring full system-wide coordination. This segmentation reduces synchronization overhead by limiting the scope of coordination to smaller, more manageable units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary organization of thread blocks into groups with predetermined resource allocation and execution characteristics. By pre-configuring block groups with their resource requirements and execution parameters before execution, the system reduces the need for dynamic coordination and synchronization during runtime, thereby improving resource utilization while minimizing synchronization delays.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12572381B2Application programming interface to schedule thread blocks
Publication Date: 2026.03.10 NVIDIA CORP
  • US12572381B2 patent drawing
  • US12572381B2 patent drawing
  • US12572381B2 patent drawing

AI summary

Apparatuses, systems, and techniques to execute CUDA programs. In at least one embodiment, an application programming interface is performed to determine which of two or more blocks of threads are to be scheduled in parallel.