API for Parallel Scan Operations Using Dynamic Algorithm Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently utilizing multiple processing resources in parallel, leading to suboptimal performance in tasks that require concurrent processing across multiple cores or warps.

Innovation Solution

The implementation of an application programming interface (API) that selects a parallel processing algorithm based on the available processing resources and the properties of the thread group, such as contiguity and warp span, to optimize the Scan operation performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single parallel processing algorithm is used for all thread configurations, then the system is simple to implement, but performance is suboptimal for specific thread group properties

Engineering Contradiction:
ImproveScan operation performanceVSAvoidAlgorithm selection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically selects from multiple Scan algorithms based on runtime properties of thread groups (contiguity, warp span). This dynamic adaptation allows the system to optimize performance for each specific thread configuration rather than using a static single algorithm, resolving the contradiction between simplicity and performance.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes algorithm selection based on parameters describing thread group properties (contiguity flag, warp span). By monitoring these parameters and selecting appropriate algorithms, the system achieves optimal performance for different thread configurations without requiring complex manual configuration.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If multiple Scan algorithms are implemented to handle different thread configurations, then performance is optimized for specific cases, but the system complexity increases

Engineering Contradiction:
ImproveScan operation performanceVSAvoidMultiple algorithm implementation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system automatically determines thread group properties (contiguity, warp span) and selects the appropriate Scan algorithm without external intervention. This self-service approach manages the complexity of multiple algorithms internally while presenting a simple interface to users, resolving the contradiction between performance optimization and system complexity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback from thread group properties (contiguity flag, warp span values) to select the most appropriate Scan algorithm. This feedback mechanism ensures that the correct algorithm is chosen based on actual runtime conditions, optimizing performance while managing complexity through automated decision-making.

Inventive Principle:
Principle #23Feedback

3Speed

If parallel processing is utilized across multiple cores, then processing speed increases, but resource coordination becomes more difficult

Engineering Contradiction:
ImproveProcessing speedVSAvoidResource coordination
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system segments the parallel processing task into distinct Scan operations that can be executed by different thread groups on multiple cores. By dividing the work into manageable segments with well-defined properties, the system achieves high processing speed while simplifying resource coordination through modular task distribution.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250190285A1Application programming interface for scan operations
Publication Date: 2025.06.12 NVIDIA CORP
  • US20250190285A1 patent drawing
  • US20250190285A1 patent drawing
  • US20250190285A1 patent drawing

AI summary

Apparatuses, systems, and techniques to perform parallel processing. In at least one embodiment, a parallel processing algorithm for performing an additive prefix scan is selected from a plurality of alternatives based on an arrangement of a group of threads provided to perform the scan.