Dynamic Parallelism Priority Mapping for Stream Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel processing subsystems face limitations in prioritizing work components due to reserved device priorities for dynamic parallelism, which reduces the number of valid priorities available for stream optimization, leading to increased latency and potential jitter in frame rates.

Innovation Solution

A method is introduced to map stream priorities to device priorities, where the second stream priority is at least the maximum nesting depth higher than the first, allowing for strategic allocation of priority levels and optimizing work component execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If device priorities are reserved for dynamic parallelism nesting, then dynamic parallelism is supported, but the number of valid priorities available for stream optimization is reduced

Engineering Contradiction:
Improvedynamic parallelism supportVSAvoidnumber of valid priorities available
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system dynamically determines the maximum nesting depth N based on application requirements and software stack configuration, rather than using a fixed value. This allows the priority mapping strategy to adapt to different workloads, optimizing the balance between dynamic parallelism support and stream prioritization capabilities.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of priority level allocation by spacing stream priorities at intervals of N (maximum nesting depth) rather than using contiguous priority levels. This parameter change allows N priorities to be reserved for dynamic parallelism while maintaining effective stream prioritization with the remaining priorities.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If stream priorities are mapped contiguously to device priorities, then stream prioritization is simplified, but latency-sensitive work components may be starved by lower-priority streams

Engineering Contradiction:
Improvepriority mapping simplicityVSAvoidlatency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments the device priority space into distinct regions: stream priorities are assigned at intervals of N, creating separated priority bands. This segmentation ensures that latency-sensitive streams assigned to higher priority bands cannot be starved by lower-priority streams, as the priority gap of N levels provides sufficient protection.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If maximum nesting depth is increased, then dynamic parallelism capability is enhanced, but more priorities are reserved reducing stream prioritization options

Engineering Contradiction:
Improvedynamic parallelism nesting capabilityVSAvoidpriorities reserved for dynamic parallelism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system allows the maximum nesting depth N to be dynamically configured based on application requirements. Software applications can request different nesting depths, and the software stack adjusts the priority mapping strategy accordingly, optimizing the trade-off between dynamic parallelism capability and stream prioritization options.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The priority mapping mechanism serves multiple functions simultaneously: it supports dynamic parallelism with nesting depth N, enables effective stream prioritization, and allows latency-sensitive work components to be protected from starvation. The spacing strategy of N intervals achieves all these goals with a single unified approach.

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

Data Source

PatentUS9575760B2Techniques for sharing priorities between streams of work and dynamic parallelism
Publication Date: 2017.02.21 NVIDIA CORP
  • US9575760B2 patent drawing
  • US9575760B2 patent drawing
  • US9575760B2 patent drawing

AI summary

One embodiment sets forth a method for assigning priorities to kernels launched by a software application and executed within a stream of work on a parallel processing subsystem that supports dynamic parallelism. First, the software application assigns a maximum nesting depth for dynamic parallelism. The software application then assigns a stream priority to a stream. These assignments cause a driver to map the stream priority to a device priority and, subsequently, associate the device priority with the stream. As part of the mapping, the driver ensures that each device priority is at least the maximum nesting depth higher than the device priorities associated with any lower priority streams. Subsequently, the driver launches any kernel included in the stream with the device priority associated with the stream. Advantageously, by strategically assigning the maximum nesting depth and prioritizing streams, an application developer may increase the overall processing efficiency of the software application.