GPU Task Switching via Clock Rate Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) lack a mechanism to quickly switch between tasks, leading to significant task switch times, especially in mobile devices with limited computational power, as they typically execute one task at a time and must complete their current computation before switching to a higher priority task.

Innovation Solution

The method involves increasing the GPU clock rate and, optionally, operating voltage when a higher priority task is detected, allowing the current lower priority task to reach a task switch boundary more quickly, thereby enabling efficient switching between tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the GPU completes its current computation before switching tasks, then task execution reliability is maintained, but task switch time increases significantly

Engineering Contradiction:
Improvetask execution reliabilityVSAvoidtask switch time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-computing task switch boundaries and pre-loading task data into on-GPU memory before the actual task switch is needed. This allows the GPU to quickly transition between tasks by simply switching to pre-prepared task segments rather than computing everything from scratch during the switch.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides tasks into discrete task segments with defined task switch boundaries. Each task is segmented into manageable units that can be independently loaded and executed, allowing the GPU to switch between segments efficiently without having to complete entire tasks atomically.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If the GPU executes one task at a time, then task execution simplicity is maintained, but system productivity decreases

Engineering Contradiction:
Improvetask execution simplicityVSAvoidsystem productivity
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system maintains continuous useful action by overlapping task execution with task switch preparation. While one task is executing, the system continuously prepares the next task by loading its data and computing its switch boundary into on-GPU memory, ensuring that the GPU is never idle during task transitions.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

Task preparation activities are performed in advance during the execution of the current task. The host system pre-computes task switch boundaries and pre-loads task data into on-GPU memory before the GPU needs to switch tasks, eliminating idle time and maintaining continuous productive operation.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the GPU pipeline is flushed during task switching, then task switch correctness is ensured, but computational time is lost

Engineering Contradiction:
Improvetask switch correctnessVSAvoidcomputational time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and removes the pipeline flush operation from the task switching process. By using pre-computed task switch boundaries and pre-loaded task data, the system eliminates the need to flush the GPU pipeline during task switches, as the boundaries are carefully chosen to align with task segment completions.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Task switch boundaries are pre-computed and task data is pre-loaded into on-GPU memory before the actual task switch occurs. This preliminary preparation ensures that when the GPU reaches a task switch boundary, it can immediately begin executing the next pre-loaded task without pipeline flushing or data transfer delays.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10853907B2Fast GPU context switch
Publication Date: 2020.12.01 APPLE INC
  • US10853907B2 patent drawing
  • US10853907B2 patent drawing
  • US10853907B2 patent drawing

AI summary

Systems, methods, and computer readable media to improve task switching operations in a graphics processing unit (GPU) are described. As disclosed herein, the clock rate (and voltages) of a GPU's operating environment may be altered so that a low priority task may be rapidly run to a task switch boundary (or completion) so that a higher priority task may begin execution. In some embodiments, only the GPU's operating clock (and voltage) is increased during the task switch operation. In other embodiments, the clock rate (voltages) of supporting components may also be increased. For example, the operating clock for the GPU's supporting memory, memory controller or memory fabric may also be increased. Once the lower priority task has been swapped out, one or more of the clocks (and voltages) increased during the switch operation could be subsequently decreased, though not necessarily to their pre-switch rates.