Dynamic Cache Configuration for Multi-Context Graphics Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics architectures face inefficiencies in cache configuration when supporting multiple contexts concurrently, leading to suboptimal performance and power consumption due to static cache settings, which require increased cache size and additional die area.

Innovation Solution

Implementing a dynamic cache configuration mechanism that allows each context to program its cache requirements, using a hardware cache configuration block to allocate resources based on context priorities and workload types, enabling optimal cache sizing during runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a static cache configuration is used to support multiple contexts concurrently, then the cache can accommodate different workload requirements, but the performance and power consumption become suboptimal across various contexts

Engineering Contradiction:
Improvecache configuration adaptabilityVSAvoidworkload performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements dynamic cache configuration by allowing each context to program its cache requirements through inline commands. The cache configuration changes at runtime based on the executing context's workload type, transitioning from a static fixed configuration to a dynamic adaptable one. This resolves the contradiction by making the cache configuration flexible enough to adapt to different contexts while maintaining optimal performance for each specific workload.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the cache configuration parameters (such as cache size allocation, associativity, and line size) dynamically based on the context's workload requirements. Each context can program specific cache parameters through inline commands, allowing the cache to optimize its operational parameters for different workload types. This parameter flexibility resolves the contradiction between adaptability and performance by enabling context-specific optimization.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the cache size is increased to accommodate multiple contexts concurrently, then all contexts can be supported, but the die area of the GPU increases

Engineering Contradiction:
Improvemulti-context support capabilityVSAvoidGPU die area
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The patent employs dynamic cache configuration where the cache size and other parameters are adjusted at runtime based on the executing context's requirements. Instead of provisioning a large static cache to accommodate all possible contexts, the cache dynamically reconfigures its size and parameters for each context. This temporal multiplexing allows a smaller physical cache to effectively support multiple contexts with different requirements, resolving the contradiction between multi-context support and die area.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent makes the cache universally adaptable to different contexts through dynamic reconfiguration capabilities. A single cache structure serves multiple functions by changing its configuration parameters to match different workload requirements. This multi-functionality allows the cache to support various contexts concurrently over time without requiring separate dedicated caches for each context, thereby reducing the overall die area while maintaining versatility.

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

3Device complexity

If a static cache configuration is used, then the cache structure is simpler, but certain workloads underperform when multiple contexts execute concurrently

Engineering Contradiction:
Improvecache configuration simplicityVSAvoidworkload execution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces dynamic reconfiguration capabilities to the cache, allowing it to adapt its configuration parameters at runtime based on the executing context. This dynamic behavior enables the cache to optimize its structure for different workload types without requiring a completely different cache design for each context. The resolution balances complexity and performance by implementing targeted dynamic features rather than full complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent enables the cache to change its operational parameters (such as size, associativity, and line size) based on the context's workload requirements. Each context can program specific cache parameters through inline commands, allowing the cache to adjust its characteristics to match the optimal configuration for that workload. This parameter flexibility resolves the contradiction by enabling performance optimization without requiring fundamentally different cache architectures for different workloads.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10613972B2Dynamic configuration of caches in a multi-context supported graphics processor
Publication Date: 2020.04.07 INTEL CORP
  • US10613972B2 patent drawing
  • US10613972B2 patent drawing
  • US10613972B2 patent drawing

AI summary

Graphics processing systems and methods are described. For example, one embodiment of a graphics processing apparatus comprises a graphics processing unit (GPU), the GPU including an on-die cache and a cache configuration circuitry to dynamically configure the on-die cache for a plurality of contexts executed by the GPU. The cache configuration block is to receive a cache configuration request, the cache configuration request including context-specific cache requirements for a new context, and determine a priority associated with the context-specific cache requirements. The CCB can compare the context-specific cache requirements with pre-existing cache requirements based on the priority, and reallocate the cache based on the context-specific cache requirements and the priority.