Task Metadata Work Distribution in Multi-threaded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional multi-threaded systems lack an efficient method to control the distribution of compute tasks across processing elements, leading to suboptimal resource utilization and task execution.

Innovation Solution

The system employs task metadata (TMD) to encode work distribution parameters, which determine the number of compute thread arrays (CTAs) to launch, the amount of work to process, and the step size for updating queue pointers, allowing dynamic control over task execution in multi-threaded systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional time-slicing is used to switch between compute tasks, then processing elements can handle multiple tasks, but resource utilization becomes suboptimal and task execution efficiency decreases

Engineering Contradiction:
Improvetask execution efficiencyVSAvoidresource utilization
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments compute tasks into smaller work units that can be independently distributed to processing elements. Each task is divided into discrete work queue entries that can be processed individually, allowing fine-grained parallel execution without the overhead of time-slicing while improving resource utilization and task execution efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic work distribution where processing elements can be dynamically assigned to different work units based on current system state and workload. The scheduler dynamically adjusts task allocation and the system can transition between different execution modes, enabling optimal resource utilization without fixed time-slicing constraints

Inventive Principle:
Principle #15Dynamics

2Reliability

If processing elements execute tasks from start to finish without interruption, then task completion is guaranteed, but system flexibility and adaptability decrease

Engineering Contradiction:
Improvetask completion guaranteeVSAvoidsystem flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

Tasks are segmented into work units that can be executed independently. Each work unit represents a complete, atomic unit of work that can be scheduled and executed separately, ensuring task completion reliability while allowing the system to adapt by selecting and prioritizing different work units based on changing requirements

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Tasks are pre-divided into discrete work units before execution begins. This preliminary segmentation allows the scheduler to pre-plan and optimize task distribution across processing elements, ensuring that each work unit can be reliably completed while maintaining system flexibility through adaptive scheduling decisions

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If work distribution parameters are hardcoded in the system, then task execution is simple, but the system cannot dynamically adapt to different workload requirements

Engineering Contradiction:
Improvetask execution simplicityVSAvoiddynamic workload adaptation
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic work distribution parameters that can be adjusted based on workload characteristics and system state. The scheduler can modify parameters such as work unit size, number of processing elements allocated, and priority assignments in real-time, maintaining ease of operation through automated adaptation rather than hardcoded configurations

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system dynamically changes execution parameters including work distribution strategies, scheduling policies, and resource allocation based on detected workload patterns. Parameters such as the number of concurrent work units, processing element assignment, and execution priorities are adjusted to match actual system demands while maintaining simple operation through automated control

Inventive Principle:
Principle #35Parameter changes

4Speed

If the system launches a large number of CTAs to process work quickly, then processing speed increases, but memory usage and system overhead increase

Engineering Contradiction:
Improvetask processing speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies partial action by launching only the necessary number of CTAs based on actual workload requirements rather than always maximizing parallelism. The system dynamically determines the optimal number of concurrent work units to launch, processing enough work to meet performance requirements while avoiding excessive memory allocation and system overhead associated with always launching maximum parallelism

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9921873B2Controlling work distribution for processing tasks
Publication Date: 2018.03.20 NVIDIA CORP
  • US9921873B2 patent drawing
  • US9921873B2 patent drawing
  • US9921873B2 patent drawing

AI summary

A technique for controlling the distribution of compute task processing in a multi-threaded system encodes each processing task as task metadata (TMD) stored in memory. The TMD includes work distribution parameters specifying how the processing task should be distributed for processing. Scheduling circuitry selects a task for execution when entries of a work queue for the task have been written. The work distribution parameters may define a number of work queue entries needed before a cooperative thread array” (“CTA”) may be launched to process the work queue entries according to the compute task. The work distribution parameters may define a number of CTAs that are launched to process the same work queue entries. Finally, the work distribution parameters may define a step size that is used to update pointers to the work queue entries.