Shader Core Resource Arbitration via Priority Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in efficiently allocating graphic processing unit (GPU) resources among multiple pipeline inputs, leading to high latency and power consumption due to separate memory systems, inefficient scheduling, and limited support for computational commands, which hampers overall system performance and prevents effective utilization of GPUs for general computation.

Innovation Solution

A method is introduced to determine priority within an accelerated processing device (APD) by selecting queues from compute pipelines based on predetermined criteria and processing them until a time quantum occurs or a higher-priority queue becomes available, enabling improved arbitration and resource allocation among multiple compute pipelines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple compute pipelines share GPU resources, then resource utilization improves, but arbitration complexity and scheduling overhead increase

Engineering Contradiction:
Improveresource utilizationVSAvoidarbitration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments compute pipelines into different priority levels (first priority compute pipeline and second priority compute pipeline) with separate queue structures. This segmentation allows independent management of different workload types while sharing the same GPU shader cores, resolving the contradiction by enabling fine-grained resource allocation without overwhelming arbitration complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality levels of service are provided to different compute pipelines through priority-based arbitration. The first priority compute pipeline receives preferential treatment compared to the second priority compute pipeline, allowing critical workloads to get faster service while less critical workloads still access resources. This local differentiation optimizes resource utilization without requiring complex global arbitration.

Inventive Principle:
Principle #3Local quality

2Reliability

If separate memory systems are used for CPU and GPU, then memory isolation and security improve, but memory latency and power consumption increase

Engineering Contradiction:
Improvememory isolationVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent implements a unified memory architecture where the GPU shares system memory with the CPU through a common memory controller. This merging eliminates the need for separate memory systems while maintaining memory isolation through virtual memory mechanisms and page tables, thereby reducing power consumption and latency without sacrificing security.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

A memory controller acts as an intermediary between the CPU and GPU, managing memory access for both processors through a unified memory space. This intermediary coordinates memory requests, caches data, and translates virtual addresses, enabling efficient shared memory access while maintaining isolation boundaries through software-managed memory spaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If computational commands are sent to GPU with high priority, then computation speed improves, but context switching overhead increases

Engineering Contradiction:
Improvecomputation speedVSAvoidcontext switching overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements a command buffer system where computational commands are prepared and queued in advance before execution. This preliminary action allows the GPU to receive and buffer commands without immediate context switching, reducing overhead while maintaining high computation speed. The command buffer acts as a pre-processing layer that decouples command issuance from execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The arbitration mechanism dynamically adjusts priority levels based on the state of compute pipelines and available GPU resources. When the GPU is busy or context switching is needed, the system dynamically lowers priority for new commands, reducing unnecessary context switches. This dynamic priority adjustment optimizes the trade-off between computation speed and switching overhead.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If discrete chip arrangement is used for CPU and GPU, then hardware independence and modularity improve, but memory latency and interface overhead increase

Engineering Contradiction:
Improvehardware independenceVSAvoidmemory latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements a nested architecture where the GPU is integrated within or closely coupled with the CPU package, allowing the GPU to access system memory through the CPU's memory controller. This nesting maintains hardware independence and modularity while eliminating the need for separate chip-to-chip interfaces, thereby reducing memory latency and interface overhead through a unified memory hierarchy.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10579388B2Policies for shader resource allocation in a shader core
Publication Date: 2020.03.03 ADVANCED MICRO DEVICES INC
  • US10579388B2 patent drawing
  • US10579388B2 patent drawing
  • US10579388B2 patent drawing

AI summary

A method for use in a processor for arbitrating between multiple processes to select wavefronts for execution on a shader core is provided. The processor includes a compute pipeline configured to issue wavefronts to the shader core for execution, a hardware queue descriptor associated with the compute pipeline, and the shader core. The shader core is configured to execute work for the compute pipeline corresponding to a first memory queue descriptor executed using data for the first memory queue descriptor that is loaded into a first hardware queue descriptor. The processor is configured to detect a context switch condition, and, responsive to the context switch condition, perform a context switch operation including loading data for a second memory queue descriptor into the first hardware queue descriptor. The shader core is configured to execute work corresponding to the second memory queue descriptor that is loaded into the first hardware queue descriptor.