GPU Instruction Scheduling via Primary Pipeline Task Lists

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing units (GPUs) face inefficiencies in scheduling instructions, leading to suboptimal performance due to the lack of effective methods for managing and prioritizing tasks within their parallel processing units, resulting in potential pipeline stalls and reduced overall processing efficiency.

Innovation Solution

A method and apparatus for scheduling instructions within a parallel processing unit that involves decoding instructions, checking if the targeted arithmetic logic unit (ALU) is a primary instruction pipeline, and managing a list of scheduled tasks to optimize task execution by prioritizing tasks and preventing pipeline stalls through the use of ALU work fullness counters and flag mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are scheduled without checking for duplicate task inclusion in primary instruction pipeline, then scheduling simplicity is maintained, but pipeline stalls occur and processing efficiency decreases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by checking whether a scheduled task is already included in the primary instruction pipeline before actually scheduling it. The instruction controller performs this check in advance using a list that tracks tasks currently in the primary pipeline, preventing duplicate scheduling before it can cause pipeline stalls. This proactive approach resolves the contradiction by maintaining high processing efficiency while managing scheduling complexity through a straightforward check-then-schedule mechanism.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a comprehensive task tracking list is maintained for the primary instruction pipeline, then pipeline stalls are prevented, but memory usage and system complexity increase

Engineering Contradiction:
Improvepipeline stall preventionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies copying by maintaining a simplified list (a copy of task identifiers) that represents the current state of the primary instruction pipeline. Instead of tracking complete task data structures, the system uses a lightweight list containing only sufficient information (task identifiers) to determine whether a task is already scheduled. This copying approach ensures reliable pipeline stall prevention while minimizing memory usage and system complexity.

Inventive Principle:
Principle #26Copying

3Productivity

If duplicate task scheduling is allowed, then scheduling speed is maintained, but resource utilization becomes suboptimal and power consumption increases

Engineering Contradiction:
Improvescheduling speedVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies self-service by enabling the instruction controller to autonomously check and determine whether a task is already scheduled in the primary pipeline before proceeding with scheduling. This self-checking mechanism prevents duplicate scheduling decisions, ensuring optimal ALU resource utilization and avoiding the energy waste that would result from redundant task execution. The system serves itself by making intelligent scheduling decisions without requiring external intervention or complex coordination.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20240311187A1Scheduling tasks using targeted pipelines
Publication Date: 2024.09.19 IMAGINATION TECH LTD
  • US20240311187A1 patent drawing
  • US20240311187A1 patent drawing
  • US20240311187A1 patent drawing

AI summary

A method of scheduling instructions within a parallel processing unit is described. The method comprises decoding, in an instruction decoder, an instruction in a scheduled task in an active state, and checking, by an instruction controller, if an ALU targeted by the decoded instruction is a primary instruction pipeline. If the targeted ALU is a primary instruction pipeline, a list associated with the primary instruction pipeline is checked to determine whether the scheduled task is already included in the list. If the scheduled task is already included in the list, the decoded instruction is sent to the primary instruction pipeline.