Command Stream Wait Commands for Parallel Task Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing systems, particularly those utilizing graphics processors, face inefficiencies in task execution due to serial dependencies and uneven resource utilization, leading to suboptimal performance and increased host processor loading when modifying command streams to insert smaller tasks for parallel execution.

Innovation Solution

The method involves preparing multiple command streams with 'wait' commands that cause the processing resource to delay executing subsequent commands until it reaches a specific position in another command stream, facilitating more efficient synchronization and resource utilization without significant host processor overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If smaller tasks are inserted into the command stream to improve resource utilization, then processing resource utilization is improved, but driver complexity and host processor loading increase significantly

Engineering Contradiction:
Improveprocessing resource utilizationVSAvoiddriver complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command stream is segmented into multiple independent command streams, each handling specific tasks. This allows the processing resource to execute tasks in parallel across different command streams without requiring complex driver operations to insert and track individual tasks within a single stream.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple command streams are prepared in advance with tasks organized and ordered before submission to the processing resource. This preliminary organization eliminates the need for real-time driver intervention to insert tasks and track modification points during execution.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If tasks are executed in serial order to maintain simplicity, then driver operation simplicity is maintained, but processing resource utilization deteriorates

Engineering Contradiction:
Improvedriver operation simplicityVSAvoidprocessing resource utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The single serial command stream is divided into multiple command streams that can be executed in parallel. Each command stream maintains simple ordering rules, but the system as a whole achieves parallel execution and improved resource utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimensional serial execution model to a multi-dimensional parallel execution model by introducing multiple command streams. This allows tasks to be distributed across different execution dimensions while maintaining simplicity within each dimension.

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

3Productivity

If tasks are inserted at earlier points in the command stream to enable parallel execution, then processing efficiency is improved, but host processor loading increases due to tracking requirements

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidhost processor loading
Core Design Contradiction:
ProductivityVSPower

Solution Approach 1:

Task insertion points and execution timing are determined in advance during command stream preparation. The host processor does not need to continuously track and dynamically insert tasks during execution, reducing real-time processing load while maintaining efficient parallel execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Tasks are organized into separate command streams with predetermined execution orderings. This segmentation eliminates the need for the host processor to track complex insertion points within a single stream, reducing hosting processor loading while enabling parallel execution.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10861125B2Preparing and executing command streams in data processing systems
Publication Date: 2020.12.08 ARM LTD
  • US10861125B2 patent drawing
  • US10861125B2 patent drawing
  • US10861125B2 patent drawing

AI summary

When a processing resource of a data processing system is to perform processing tasks for applications executing on a host processor, the host processor prepares a plurality of command streams to cause the processing resource to perform the processing tasks. When a processing task to be added to a command stream has a dependency on a processing task or tasks that will be included in another command stream, a wait command is added to the command stream that is to include the processing task that has a dependency on a processing task or tasks that will be included in the another command stream, to cause the processing resource to delay executing subsequent commands in the command stream after the wait command, until the processing resource has reached a particular position in the another command stream.