Dynamic Parallelism Priority Mapping for Stream Latency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Adaptability or versatility
If maximum nesting depth is increased, then dynamic parallelism capability is enhanced, but more priorities are reserved reducing stream prioritization options
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.
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.
Data Source
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.


