Dynamic Parallel Scheduling of GPU Command Packets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques for graphics processing units (GPUs) are inefficient due to CPU-based sequential scheduling, leading to bottlenecks and resource wastage, as they rely on a single CPU thread for driver logic execution, resulting in increased scheduling time and power consumption.

Innovation Solution

Facilitating dynamic parallel scheduling by moving driver logic from the CPU domain to the GPU domain, allowing multiple GPU threads to operate independently, and utilizing OpenCL 2.0 for nested parallelism to execute command packets directly on the GPU, reducing reliance on the CPU for command execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU-based sequential scheduling is used for graphics driver logic execution, then implementation simplicity is maintained, but scheduling efficiency deteriorates due to bottlenecking and increased scheduling time

Engineering Contradiction:
Improvescheduling efficiencyVSAvoidscheduling time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the monolithic CPU-based scheduling task into multiple independent GPU threads that can execute command packets in parallel. Each GPU thread processes a portion of the command queue independently, eliminating the sequential bottleneck and enabling concurrent command packet processing across multiple threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a command packet structure with dispatch information that acts as an intermediary between the CPU driver logic and GPU execution. This command packet format enables the GPU to autonomously schedule and execute commands without continuous CPU intervention, reducing scheduling time while maintaining implementation feasibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple GPU threads are used for parallel command packet processing, then scheduling efficiency improves, but device complexity increases due to additional threading mechanisms

Engineering Contradiction:
Improvescheduling efficiencyVSAvoidthreading mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes the GPU universally capable of performing both graphics processing and command packet scheduling functions. By leveraging the GPU's existing parallel thread execution architecture for dual purposes (graphics rendering and command scheduling), the patent avoids adding dedicated scheduling hardware while achieving parallel processing efficiency.

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

Solution Approach 2:

The patent enables the GPU to self-service the scheduling function by allowing its existing thread management infrastructure to handle command packet dispatch. The GPU uses its own thread scheduling capabilities to process command packets autonomously without requiring external CPU-based scheduling control, thereby avoiding additional complexity.

Inventive Principle:
Principle #25Self-service

3Productivity

If CPU-based sequential processing is used, then power consumption is reduced due to simpler processing, but resource utilization deteriorates due to bottlenecking

Engineering Contradiction:
Improveresource utilizationVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent introduces dynamic parallel processing where the degree of parallelism can be adjusted based on workload characteristics. The system dynamically activates the appropriate number of GPU threads based on the command queue depth and processing requirements, optimizing resource utilization while avoiding excessive power consumption for light workloads.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the fundamental processing parameter from sequential (CPU-based) to parallel (GPU-based) execution. This parameter change enables simultaneous processing of multiple command packets, dramatically improving resource utilization. The power consumption increase is offset by the elimination of idle time and bottlenecking, resulting in better overall energy efficiency for the processing task.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10255654B2Facilitating dynamic parallel scheduling of command packets at graphics processing units on computing devices
Publication Date: 2019.04.09 INTEL CORP
  • US10255654B2 patent drawing
  • US10255654B2 patent drawing
  • US10255654B2 patent drawing

AI summary

A mechanism is described for facilitating parallel scheduling of multiple commands on computing devices. A method of embodiments, as described herein, includes detecting a command of a plurality of commands to be processed at a graphics processing unit (GPU), and acquiring one or more resources of a plurality of resources to process the command. The plurality of resources may include other resources being used to process other commands of the plurality of commands. The method may further include facilitating processing of the command using the one or more resources, wherein the command is processed in parallel with processing of the other commands using the other resources.