Linked-List Task Scheduling for GPU Pipeline Stall Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The interface between the task builder and task scheduler in graphics processing units (GPUs) often leads to stalls due to the task builder producing tasks faster than the task scheduler can consume them, resulting in inefficiencies and potential stalling in the pipeline, which is exacerbated by the need for significant buffering to prevent such stalls.

Innovation Solution

A linked-list RAM is used to manage the interface between the task builder and task scheduler, allowing the task scheduler to operate independently by maintaining a linked-list for each ray, enabling efficient grouping of rays into tasks without the risk of stalling, and a cache is employed to gather coherence among rays for the same shader program, using a linked-list RAM and a task cache to facilitate this process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a FIFO buffer is used to interface between task builder and task scheduler, then tasks can be queued for processing, but the buffer may become full causing stalls in the pipeline

Engineering Contradiction:
Improvetask processing throughputVSAvoidpipeline stall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the task queue into multiple independent linked lists, each associated with a specific shader program. This segmentation allows the task builder to add tasks to different lists simultaneously without blocking, and enables the task scheduler to consume tasks from multiple lists in parallel, thereby preventing buffer full stalls while maintaining high throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional FIFO queue to a multi-dimensional structure using linked lists organized by shader program ID. This dimensional change allows tasks to be routed to different lists based on their destination shader, enabling independent production and consumption rates for each list and eliminating the single bottleneck that causes stalls in traditional FIFO buffers.

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

2Productivity

If significant buffering is implemented to prevent stalls between task builder and task scheduler, then task production can continue without interruption, but the silicon footprint increases significantly

Engineering Contradiction:
Improvecontinuous task productionVSAvoidbuffer memory size
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent implements dynamic task management where linked lists are created, extended, and destroyed based on actual task flow requirements. Rather than allocating a large static buffer, the system dynamically allocates memory nodes only when tasks are added to linked lists, and reuses memory when lists are destroyed. This dynamic approach enables continuous task production while keeping the silicon footprint adaptive and minimal.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the fundamental parameter of buffer structure from a large contiguous memory block to a collection of small, dynamically allocated linked list nodes. This parameter change allows the system to achieve the same stall-prevention functionality with much smaller total memory usage, as memory is allocated on-demand and reused efficiently across different task lists.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If tasks are grouped into large batches for parallel processing, then processing efficiency increases, but the task builder must wait for sufficient tasks to accumulate

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidtask accumulation wait time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent ensures continuous useful action by allowing the task builder to immediately add tasks to linked lists as they are generated, without waiting for batch completion. The task scheduler continuously consumes tasks from the heads of linked lists and schedules them for parallel processing. This continuous flow eliminates idle wait time while maintaining high parallel processing efficiency through the grouped structure of linked lists.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent performs preliminary grouping of tasks into linked lists based on shader program ID before scheduling. By organizing tasks into ready-to-process groups in advance (while the task builder continues producing), the system eliminates wait time for batch accumulation while ensuring that when tasks are scheduled, they are already optimally grouped for parallel execution.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If the task builder and task scheduler operate in a tightly coupled manner, then coordination is simplified, but the interface becomes a bottleneck causing stalls

Engineering Contradiction:
Improveinterface coordination complexityVSAvoidinterface throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces linked lists as an intermediary data structure between the task builder and task scheduler. The task builder adds tasks to the tails of linked lists without needing to coordinate with the scheduler, and the scheduler consumes tasks from the heads of linked lists independently. This intermediary structure decouples the producer and consumer, simplifying their individual operations while maintaining high interface throughput through asynchronous operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3979184B1Building and scheduling tasks for parallel processing
Publication Date: 2025.12.17 IMAGINATION TECH LTD
  • EP3979184B1 patent drawingFigure 1
  • EP3979184B1 patent drawingFigure 2
  • EP3979184B1 patent drawingFigure 3~4

AI summary

Logic comprising: a task builder for building tasks comprising data items, a task scheduler for scheduling tasks for processing by a parallel processor, a data store arranged to map content of each data item to an item ID, and a linked-list RAM comprising an entry for each item ID. For each new data item, the task builder creates a new task by starting a new linked list, or adds the data item to an existing linked list. In each linked list, the entry for each data item records a pointer to a next item ID in the list. The task builder indicates when any of the tasks is ready for scheduling. The task scheduler identifies a ready task based on the indication from the task builder, and in response follows the pointers in the respective linked list in order to schedule the data items of the task for processing.