APD Process Preemption via Time Quanta

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in efficiently preempting rogue processes from GPUs and context switching due to high memory latency, power consumption issues, and limited programming capabilities, which hinder the effective utilization of combined CPU and GPU resources.

Innovation Solution

A system with an accelerated processing device (APD) that preempts processes based on a running time threshold, allowing for efficient context switching by configuring a time quanta and using preemption and context switch logic to manage process execution on the APD.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processes are allowed to run on the GPU for extended periods to improve processing throughput, then productivity increases, but rogue processes can occupy the GPU for arbitrary amounts of time preventing effective utilization of system capacity

Engineering Contradiction:
Improveprocessing throughputVSAvoidsystem capacity utilization
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements periodic preemption by dividing GPU execution time into fixed time quanta. Each process is allocated a specific time slice during which it can execute on the GPU, after which it is preempted regardless of completion status. This periodic time slicing ensures that no single process can monopolize the GPU indefinitely, thereby maintaining system capacity utilization while allowing substantial processing throughput during each allocated time slice.

Inventive Principle:
Principle #19Periodic action

2Productivity

If fine-grain offloading of computational tasks from CPU to GPU is implemented to improve productivity, then processing efficiency increases, but separate memory systems and driver managed shared memory create unacceptable overhead

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the memory systems of the CPU and GPU into a unified memory architecture. This consolidation eliminates the need for separate memory systems and complex driver-managed shared memory protocols. By providing a single unified memory space that both processors can access directly, the system achieves fine-grain offloading efficiency without the overhead of memory translation and coordination between separate memory subsystems.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If computational commands are dispatched to the GPU with high frequency to improve processing speed, then productivity increases, but the latency incurred by sending commands to the GPU becomes unacceptable

Engineering Contradiction:
Improveprocessing speedVSAvoidcommand dispatch latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-positioning computational commands in CPU memory before GPU execution is needed. Commands are prepared and staged in advance in the unified memory space, so when the GPU requires them, they are already available locally without requiring time-consuming dispatch from the CPU. This eliminates command dispatch latency while maintaining high processing speed, as the GPU can immediately access pre-positioned commands from unified memory.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10242420B2Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
Publication Date: 2019.03.26 ADVANCED MICRO DEVICES INC
  • US10242420B2 patent drawing
  • US10242420B2 patent drawing
  • US10242420B2 patent drawing

AI summary

Methods and apparatus are described. A method includes an accelerated processing device running a process. When a maximum time interval during which the process is permitted to run expires before the process completes, the accelerated processing device receives an operating-system-initiated instruction to stop running the process. The accelerated processing device stops the process from running in response to the received operating-system-initiated instruction.