Hierarchical Thread Scheduling for Hardware Resource Conservation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional multi-threaded processors face inefficiencies when scheduling large numbers of thread groups due to the need for proportional increases in hardware resources and scheduler size, leading to increased costs and resource wastage.

Innovation Solution

Implementing a hierarchical scheduling system that allocates limited hardware resources only to thread groups ready for execution, using a macro-scheduling policy to categorize thread groups into pre-staging and staging areas, and a micro-scheduling policy to select and allocate resources efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of thread groups is increased to support more parallel execution, then processing capability is improved, but hardware resources (RAM space, transistor budget) must be scaled proportionally, increasing cost and complexity

Engineering Contradiction:
Improveprocessing capabilityVSAvoidhardware resources
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the scheduler into hierarchical levels (e.g., coarse-grain scheduler and fine-grain schedulers), where the coarse-grain scheduler manages a large number of thread groups at a higher level, and fine-grain schedulers manage smaller subsets at lower levels. This segmentation allows the system to support many thread groups without requiring a single large, resource-intensive scheduler, thus improving processing capability while controlling hardware resource requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the scheduling architecture, organizing schedulers in multiple levels rather than a single flat layer. This dimensional change allows the system to manage a large number of thread groups by distributing scheduling responsibilities across hierarchical levels, reducing the resource burden at any single level while maintaining overall processing capability.

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

2Adaptability or versatility

If the scheduler size is increased to arbitrate between more thread groups, then scheduling capability is improved, but transistor budget and cost increase proportionally

Engineering Contradiction:
Improvescheduling capabilityVSAvoidtransistor budget
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The scheduler is segmented into hierarchical levels with different responsibilities. The coarse-grain scheduler performs high-level arbitration among many thread groups using fewer resources, while fine-grain schedulers handle detailed scheduling for smaller subsets. This segmentation enables the system to maintain scheduling capability for a large number of thread groups without requiring a single large scheduler that would consume excessive transistor budget.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of having every scheduler manage all thread groups equally, the hierarchical structure allows partial specialization where each scheduler level focuses on a specific subset or aspect of scheduling. This partial action approach reduces the complexity and transistor requirements at each level while collectively providing comprehensive scheduling capability across all thread groups.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If hardware resources are allocated to all thread groups, then resource availability is improved, but resource wastage increases when threads are not ready for execution

Engineering Contradiction:
Improveresource availabilityVSAvoidresource wastage
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The hierarchical scheduling structure enables preliminary preparation of thread groups at higher levels before detailed resource allocation at lower levels. Thread groups can be pre-organized and prepared in the hierarchical structure without committing full hardware resources until they are actually ready for execution, ensuring resource availability when needed while avoiding premature resource allocation that would cause wastage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hierarchical scheduler dynamically allocates hardware resources based on the readiness state of thread groups. Resources are allocated flexibly at different hierarchical levels according to actual execution needs, allowing the system to maintain resource availability for ready threads while releasing or avoiding allocation for threads that are not yet ready, thereby reducing resource wastage while maintaining reliability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10489200B2Hierarchical staging areas for scheduling threads for execution
Publication Date: 2019.11.26 NVIDIA CORP
  • US10489200B2 patent drawing
  • US10489200B2 patent drawing
  • US10489200B2 patent drawing

AI summary

One embodiment of the present invention is a computer-implemented method for scheduling a thread group for execution on a processing engine that includes identifying a first thread group included in a first set of thread groups that can be issued for execution on the processing engine, where the first thread group includes one or more threads. The method also includes transferring the first thread group from the first set of thread groups to a second set of thread groups, allocating hardware resources to the first thread group, and selecting the first thread group from the second set of thread groups for execution on the processing engine. One advantage of the disclosed technique is that a scheduler only allocates limited hardware resources to thread groups that are, in fact, ready to be issued for execution, thereby conserving those resources in a manner that is generally more efficient than conventional techniques.