Continuation Thread Block Task Scheduling via Metadata Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional mechanisms for task management in continuation thread blocks are inefficient in avoiding deadlock conditions, often leading to resource starvation and stalled tasks due to excessive child threads and thread blocks, which prevents child tasks from completing execution.

Innovation Solution

A system and method for scheduling tasks that involve generating task metadata data structures to manage state information and child tasks, allowing for the execution of continuation tasks only after child tasks have finished, thereby preventing resource starvation and ensuring logical completion of parent tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If too many child threads are launched to complete auxiliary work, then the task can perform more parallel work, but resources are starved and child tasks cannot finish executing

Engineering Contradiction:
Improveparallel work capacityVSAvoidtask completion
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the task execution into distinct phases by separating parent task state saving from child task execution. The parent task is divided into segments that can be independently scheduled, allowing the system to manage resource allocation more effectively while maintaining parallel work capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by saving parent task state and launching child tasks before the parent task logically completes. This allows child tasks to be scheduled and executed in advance, ensuring resources are available when needed while preventing resource starvation through proactive resource management.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If too many thread blocks are active and resident in the processor, then more work can be processed concurrently, but active tasks stall on completion of child tasks

Engineering Contradiction:
Improveconcurrent work processingVSAvoidtask stalling time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic task scheduling where the state of tasks (active, stalled, completed) is continuously updated based on child task completion status. The system dynamically adjusts which tasks remain active in the processor, allowing tasks to be stalled temporarily without permanently blocking resource usage, thus reducing stalling time while maintaining high concurrent work processing.

Inventive Principle:
Principle #15Dynamics

3Productivity

If child tasks are executed concurrently with parent task, then overall execution time is reduced, but deadlock conditions occur when parent tasks lock all available resources

Engineering Contradiction:
Improveexecution speedVSAvoiddeadlock avoidance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent extracts the parent task state from the active execution context and stores it separately in memory. This separation allows child tasks to be executed concurrently without the parent task holding onto processor resources, thereby enabling faster execution while preventing deadlocks through resource release.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces task metadata data structures as intermediaries between parent tasks and child tasks. These metadata structures manage the state information and coordination, allowing concurrent execution while mediating resource access to prevent deadlock conditions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9256623B2System, method, and computer program product for scheduling tasks associated with continuation thread blocks
Publication Date: 2016.02.09 NVIDIA CORP
  • US9256623B2 patent drawing
  • US9256623B2 patent drawing
  • US9256623B2 patent drawing

AI summary

A system, method, and computer program product for scheduling tasks associated with continuation thread blocks. The method includes the steps of generating a first task metadata data structure in a memory, generating a second task metadata data structure in the memory, executing a first task corresponding to the first task metadata data structure in a processor, generating state information representing a continuation task related to the first task and storing the state information in the second task metadata data structure, executing the continuation task in the processor after the one or more child tasks have finished execution, and indicating that the first task has logically finished execution once the continuation task has finished execution. The second task metadata data structure is related to the first task metadata data structure, and at least one instruction in the first task causes one or more child tasks to be executed by the processor.