Dynamic Load Balancing Between CPU and GPU Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems fail to effectively balance the load between central processing units (CPUs) and graphics processing units (GPUs) in computing devices, leading to inefficient resource utilization in applications that are either CPU-intensive or GPU-intensive.

Innovation Solution

Implementing a system that dynamically assigns applications to execute on either CPUs or GPUs based on current load conditions, using resource usage profiles to optimize CPU and GPU resource allocation, and transferring video encoders between CPUs and GPUs as needed to maintain balanced resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If applications are statically assigned to either CPU or GPU, then system simplicity is maintained, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidload balancing system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic load balancing by continuously monitoring CPU and GPU utilization metrics and reassigning applications between processors based on real-time conditions. The system transitions from static to dynamic assignment, allowing the configuration to adapt and change over time based on workload demands, thereby improving resource utilization efficiency without excessive complexity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring processor utilization metrics and using this information to make informed decisions about application assignment. The load balancer receives feedback on CPU and GPU states and adjusts application distribution accordingly, creating a closed-loop control system that optimizes resource utilization while maintaining manageable complexity through automated decision-making

Inventive Principle:
Principle #23Feedback

2Productivity

If video encoders are fixed on GPUs, then graphics processing capability is maximized, but CPU resource availability deteriorates

Engineering Contradiction:
Improvegraphics processing capabilityVSAvoidCPU resource availability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent makes video encoder assignment dynamic by allowing encoders to be transferred between GPU and CPU based on real-time resource availability and workload conditions. When GPU resources are abundant, encoders reside on GPU to maximize graphics capability; when CPU resources need to be freed, encoders are migrated to CPU, providing adaptability while maintaining graphics processing capability

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements multi-functionality by enabling video encoders to operate on either GPU or CPU depending on conditions. The encoder functionality is not tied to a single processor type but can be universally executed on either, allowing the system to optimize for graphics capability when needed while maintaining CPU availability for other tasks when appropriate

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

Data Source

PatentUS9455931B2Load balancing between processors
Publication Date: 2016.09.27 AMAZON TECH INC
  • US9455931B2 patent drawing
  • US9455931B2 patent drawing
  • US9455931B2 patent drawing

AI summary

Disclosed are various embodiments for facilitating load balancing between a first processor and a second processor in at least one computing device. A request is obtained to execute a first application in the at least one computing device. In one embodiment, a second application associated with the first application is assigned to be executed in the second processor instead of the first processor when a resource usage profile associated with the first application indicates that the first application imposes a greater load on the first processor than the second processor. Conversely, the second application is assigned to be executed in the first processor instead of the second processor when the resource usage profile indicates that the first application imposes a greater load on the second processor than the first processor.