Unified Ring Buffer Scheduling for GPU Compute Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in utilizing graphics processing units (GPUs) for general computation due to constrained programming environments, separate memory systems, inefficient scheduling, and limited support for non-graphics workloads, leading to high latency and power consumption issues when executing computational commands.

Innovation Solution

A method and system that allocate an accelerated processing device (APD) work queue via a kernel mode driver, selecting and dispatching commands through a compute process control block, enabling efficient execution of both graphics and computational tasks by treating the APD as a unified computing resource with its own memory and scheduling mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If computational commands are dispatched to GPU for execution, then computational performance is improved, but latency increases due to high overhead of dispatching work

Engineering Contradiction:
Improvecomputational performanceVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the command dispatch mechanism by creating separate command queues for different types of workloads (graphics vs. compute). This allows compute commands to be processed through a dedicated pathway rather than competing with graphics commands, reducing dispatch overhead and latency while maintaining high computational throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary command queue layer between the CPU and GPU compute units. This queue acts as a buffer and management layer that optimizes the dispatch of compute commands, reducing the overhead of direct CPU-GPU communication and enabling more efficient workload submission without increasing latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If separate memory systems are used for CPU and GPU, then hardware independence is improved, but memory access efficiency deteriorates

Engineering Contradiction:
Improvehardware independenceVSAvoidmemory access efficiency
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent implements a unified memory address space that allows both CPU and GPU to access the same memory regions without requiring separate memory systems. This multi-functional memory architecture maintains hardware independence while enabling efficient direct memory access for both processors, eliminating the need for costly memory copies and improving overall memory access speed.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the previously separate CPU and GPU memory address spaces into a single unified address space. This combination allows seamless memory sharing between processors, improving memory access efficiency while preserving the architectural independence of each processor through virtual memory management.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If GPU is used for general computation, then computational capabilities are improved, but programming complexity increases due to constrained programming environment

Engineering Contradiction:
Improvecomputational capabilitiesVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the system automatically manages compute workload submission and GPU program selection. Instead of requiring developers to manually configure complex programming parameters, the system autonomously handles workload queuing, command dispatch, and program selection, significantly reducing programming complexity while maintaining enhanced computational capabilities.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary software layer that translates high-level compute requests into GPU-specific execution commands. This intermediary handles the complexity of GPU programming internally, allowing developers to use simplified interfaces while the system manages the underlying programming complexity, thus improving computational capabilities without increasing perceived programming complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If computational workloads are offloaded to GPU, then processing throughput is improved, but power consumption increases

Engineering Contradiction:
Improveprocessing throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic workload management that adapts GPU utilization based on system state and workload characteristics. The system dynamically decides when to offload compute workloads to the GPU versus executing them on the CPU, optimizing the balance between processing throughput and power consumption by activating GPU acceleration only when it provides net energy efficiency benefits.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the operational parameters of the GPU by implementing fine-grained control over compute command dispatch and execution. By adjusting parameters such as command queue depth, synchronization frequency, and workload batching, the system optimizes GPU power consumption while maintaining high processing throughput for computational workloads.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2652615B1Graphics compute process scheduling
Publication Date: 2018.01.24 ATI TECHNOLOGIES ULC
  • EP2652615B1 patent drawingFigure 1A
  • EP2652615B1 patent drawingFigure 1B
  • EP2652615B1 patent drawingFigure 2

AI summary

A method, system, and computer program product are disclosed for providing improved access to accelerated processing device compute resources to user mode applications. The functionality disclosed allows user mode applications to provide commands to an accelerated processing device without the need for kernel mode transitions in order to access a unified ring buffer. Instead, applications are each provided with their own buffers, which the accelerated processing device hardware can access to process commands. With full operating system support, user mode applications are able to utilize the accelerated processing device in much the same way as a CPU.