APD Work Queue Dispatch from User Mode

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in utilizing 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, allowing commands to be forwarded and dispatched from the APD, enabling unified programming and execution environments for CPUs and APDs, and optimizing resource utilization through scheduling and memory management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If commands are dispatched from user mode directly to APD, then latency is reduced and productivity is improved, but system complexity increases due to work queue allocation and scheduling mechanisms

Engineering Contradiction:
ImprovelatencyVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces a work queue as an intermediary data structure between user mode applications and the APD. The work queue is allocated in GPU memory and serves as a buffer that decouples command submission from command execution, allowing user mode to dispatch commands directly to APD without kernel mode intervention while maintaining system manageability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the command dispatch process into distinct components: work queue allocation, command submission, and command execution. The work queue is divided into head and tail pointers that track command progression, allowing fine-grained control and reducing the need for complex kernel mode scheduling while improving latency.

Inventive Principle:
Principle #1Segmentation

2Reliability

If separate memory systems are used for CPU and GPU, then reliability is improved through isolation, but power consumption increases and productivity decreases due to memory access overhead

Engineering Contradiction:
Improvesystem stabilityVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent merges the CPU address space and GPU address space into a unified virtual address space. This allows both CPU and GPU to access the same memory regions without requiring costly memory copies or transfers, reducing power consumption while maintaining system stability through the operating system's memory management protections.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified memory system serves multiple functions: it acts as system memory for CPU operations, as video memory for GPU operations, and as shared workspace for heterogeneous computing. This multi-functionality eliminates the need for separate memory systems while reducing power consumption and improving productivity.

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

3Reliability

If kernel mode driver manages all APD operations, then reliability is improved through centralized control, but productivity decreases due to context switching overhead and latency

Engineering Contradiction:
Improvedriver controlVSAvoidcommand dispatch efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by allocating the work queue in GPU memory during driver initialization but defers the actual command dispatching to user mode. The driver sets up the work queue structure and permissions in advance, then allows user mode applications to submit commands directly without repeated kernel mode transitions, improving productivity while maintaining driver-controlled reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables user mode applications to self-serve by directly managing work queue allocation and command submission without kernel mode intervention. The applications can enqueue commands, track execution status, and manage their own compute resources, significantly improving productivity while the driver maintains overall system reliability through initial setup and permission management.

Inventive Principle:
Principle #25Self-service

4Productivity

If GPUs are used for general computation beyond graphics, then productivity is improved, but device complexity increases due to programming model constraints and compilation requirements

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

Solution Approach 1:

The patent implements a universal programming model that allows the same compute shaders and kernels to be used for both traditional graphics workloads and general-purpose computing tasks. The work queue mechanism and unified address space enable a single API to handle diverse computational workloads, reducing programming complexity while maintaining high productivity for both graphics and non-graphics applications.

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

Data Source

PatentEP2652614B1Graphics processing dispatch from user mode
Publication Date: 2019.05.01 ATI TECHNOLOGIES ULC
  • EP2652614B1 patent drawingFigure 1A
  • EP2652614B1 patent drawingFigure 1B
  • EP2652614B1 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.