Phase-Based Priority Scheduler for Thread Group Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded computer architectures, existing scheduling methods lead to performance losses due to inconsistent waiting periods for memory load operations across threads, causing inefficiencies in processor utilization.

Innovation Solution

A method for scheduling priority among thread groups by determining their operational phases and adjusting priority descriptors to skew execution, allowing thread groups to operate in different phases and reduce waiting times for memory load operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a second thread is scheduled to execute during the waiting period of the first thread, then processor utilization is improved, but execution inconsistency and performance loss occur when execution cycles differ

Engineering Contradiction:
Improveprocessor utilizationVSAvoidexecution inconsistency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic priority adjustment where thread priorities are not fixed but change based on execution phase and waiting period status. The scheduler dynamically modifies priority descriptors to skew execution phases, allowing the system to adapt to varying execution cycle lengths and prevent performance loss from execution inconsistency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the priority parameter of threads based on their execution phase and waiting period status. By adjusting priority descriptors dynamically, the system modifies execution scheduling parameters to ensure that threads with longer waiting periods maintain higher priority, thereby resolving execution inconsistency while maintaining high processor utilization.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If threads execute in the same phase with same priority, then scheduling is simple, but all threads wait for memory load operations simultaneously causing performance loss

Engineering Contradiction:
Improvescheduling complexityVSAvoidprocessor performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces asymmetric priority assignment where threads in the same phase are assigned different priority levels based on their waiting period characteristics. This asymmetry causes threads to skew into different execution phases, preventing simultaneous waiting and improving processor performance while adding minimal scheduling complexity.

Inventive Principle:
Principle #4Asymmetry

Solution Approach 2:

The patent implements periodic phase advancement where threads progress through execution phases in a structured manner. By controlling which threads advance to the next phase based on priority and waiting period status, the system creates a periodic execution pattern that prevents simultaneous blocking while maintaining manageable scheduling complexity.

Inventive Principle:
Principle #19Periodic action

3Speed

If high priority threads preempt low priority threads during memory load waiting, then critical threads execute faster, but low priority threads experience extended waiting periods

Engineering Contradiction:
Improvecritical thread execution speedVSAvoidlow priority thread waiting time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies preliminary phase skewing to high priority threads before they enter memory load waiting periods. By pre-adjusting the execution phase of critical threads, the system ensures they can preempt effectively when needed while the scheduler has already prepared priority descriptors to minimize the impact on low priority threads' waiting periods.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10346212B2Approach for a configurable phase-based priority scheduler
Publication Date: 2019.07.09 NVIDIA CORP
  • US10346212B2 patent drawing
  • US10346212B2 patent drawing
  • US10346212B2 patent drawing

AI summary

A streaming multiprocessor (SM) in a parallel processing subsystem schedules priority among a plurality of threads. The SM retrieves a priority descriptor associated with a thread group, and determines whether the thread group and a second thread group are both operating in the same phase. If so, then the method determines whether the priority descriptor of the thread group indicates a higher priority than the priority descriptor of the second thread group. If so, the SM skews the thread group relative to the second thread group such that the thread groups operate in different phases, otherwise the SM increases the priority of the thread group. f the thread groups are not operating in the same phase, then the SM increases the priority of the thread group. One advantage of the disclosed techniques is that thread groups execute with increased efficiency, resulting in improved processor performance.