CPU GPU Resource Sharing via Unified Memory Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems face inefficiencies in resource utilization as they struggle to optimally allocate processing tasks between CPUs and GPUs, particularly in mixed parallel and sequential operations, leading to suboptimal performance and increased latency in applications like 3D graphics rendering.

Innovation Solution

Implementing a system where processing resources, such as CPUs and GPUs, can dynamically share resources and memory through direct links or shared memory spaces, allowing tasks to be offloaded between processors without the need for software awareness, using page tables and coherency filters to manage memory access and maintain data consistency across processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If tasks are allocated between CPU and GPU based on operation type, then processing efficiency is improved, but resource allocation complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system enables self-service by allowing the GPU to autonomously access CPU memory resources through direct memory access mechanisms. The GPU can independently initiate memory requests to CPU memory spaces without requiring complex software-mediated allocation, thereby maintaining processing efficiency while reducing allocation complexity through automated resource sharing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements multi-functionality by creating a unified memory architecture where both CPU and GPU can access the same memory spaces. This universal memory access mechanism allows different processors to share resources without requiring separate memory allocations, simplifying resource management while enabling efficient parallel and sequential operations across multiple processing units.

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

2Loss of energy

If shared memory spaces are used between CPU and GPU, then bandwidth utilization is maximized, but data consistency maintenance becomes more difficult

Engineering Contradiction:
Improvebandwidth utilizationVSAvoiddata consistency maintenance
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent employs an intermediary mechanism in the form of a unified memory management system that mediates between CPU and GPU access to shared memory. This intermediary layer handles memory address translation, access coordination, and data coherence maintenance automatically, allowing maximized bandwidth utilization while reducing the complexity of data consistency maintenance through centralized management.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If processors can dynamically switch between parallel and sequential operations, then resource utilization is optimized, but system control complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements dynamics by enabling processors to dynamically switch between parallel GPU operations and sequential CPU operations based on workload requirements. The unified memory architecture and direct access mechanisms allow this dynamic switching without requiring complex control software, as the hardware itself manages the transition and resource allocation, thereby optimizing resource utilization while minimizing control complexity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10181171B2Sharing resources between a CPU and GPU
Publication Date: 2019.01.15 INTEL CORP
  • US10181171B2 patent drawing
  • US10181171B2 patent drawing
  • US10181171B2 patent drawing

AI summary

A technique to share execution resources. In one embodiment, a CPU and a GPU share resources according to workload, power considerations, or available resources by scheduling or transferring instructions and information between the CPU and GPU.