Streaming Multiprocessor Task Scheduling via State Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional scheduling of compute tasks in multiple processor systems relies on application programs or drivers, leading to delays due to interaction between the driver and multiple processors.

Innovation Solution

A method for dynamically scheduling compute tasks by analyzing processor state data to select eligible processors based on availability, without requiring software or driver interaction, and issuing work through a cooperative thread array (CTA).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If conventional scheduling relies on application programs or drivers to schedule compute tasks, then the scheduling mechanism can be implemented with existing software infrastructure, but execution delays occur due to interaction between the driver and multiple processors

Engineering Contradiction:
Improvescheduling implementationVSAvoidexecution delay
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The system enables processors to autonomously manage task scheduling by reading their own state data and determining eligibility to receive work, eliminating the need for continuous driver intervention. Each processor independently monitors its own state and participates in the scheduling decision process without requiring external software coordination.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the software-based driver mechanism with a hardware-level state analysis mechanism. Processors use their own state data and availability values to determine scheduling eligibility, substituting the conventional software driver approach with a more direct hardware-state-based selection process that occurs without software intervention.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Ease of operation

If driver interaction is required for scheduling compute tasks, then software control over task assignment is maintained, but system performance is reduced due to additional interaction overhead

Engineering Contradiction:
Improvesoftware controlVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The scheduling decision-making capability is extracted from the software driver and transferred to the hardware level. Processors independently analyze their own state data and availability, removing the bottleneck of driver-mediated communication while preserving the ability to control task assignment through hardware-state mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces state data and availability values as intermediaries between the scheduling decision and task execution. These hardware-level state indicators enable processors to communicate their readiness and eligibility without requiring full software driver interaction, acting as a bridge that maintains control while reducing overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If processors wait for driver scheduling decisions, then centralized task management is maintained, but processor utilization efficiency is reduced

Engineering Contradiction:
Improvecentralized managementVSAvoidprocessor utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system transitions from static centralized scheduling to dynamic distributed state-based scheduling. Processors continuously update their own state data and availability values, enabling real-time adaptive scheduling decisions that respond to changing hardware conditions without requiring centralized intervention.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Processors perform preliminary self-assessment by analyzing their own state data and determining eligibility before actual task assignment occurs. This advance preparation allows the scheduling system to make faster, more informed decisions about which processors should receive work, improving utilization efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9715413B2Execution state analysis for assigning tasks to streaming multiprocessors
Publication Date: 2017.07.25 NVIDIA CORP
  • US9715413B2 patent drawing
  • US9715413B2 patent drawing
  • US9715413B2 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for selecting a first processor included in a plurality of processors to receive work related to a compute task. The technique involves analyzing state data of each processor in the plurality of processors to identify one or more processors that have already been assigned one compute task and are eligible to receive work related to the one compute task, receiving, from each of the one or more processors identified as eligible, an availability value that indicates the capacity of the processor to receive new work, selecting a first processor to receive work related to the one compute task based on the availability values received from the one or more processors, and issuing, to the first processor via a cooperative thread array (CTA), the work related to the one compute task.