Read Hints for Preloading PIM Results into Processor Caches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Offloading computations to memory using Processing In Memory (PIM) technology leads to increased cache flushes and cache misses, which offset performance benefits and incur additional latency due to kernel launches and prefetches in GPU and CPU contexts.

Innovation Solution

Implementing read hints in memory-side processing instructions to preload results into processor-side caches, allowing cache controllers to proactively store memory-side processing results, thereby reducing cache misses and avoiding serialization on the critical processor path.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If computations are offloaded to memory using PIM technology, then data bus traffic and computational burdens on processors are reduced, but cache flushes and cache misses increase

Engineering Contradiction:
Improvecomputational throughputVSAvoidcache flush latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by preloading data into processor-side caches before PIM computations are executed. The system identifies data that will be needed for subsequent processor computations and loads it into caches in advance, so that when the PIM computation completes and results are written back to memory, the data is already available in caches rather than requiring cache flushes. This eliminates the latency penalty associated with cache synchronization.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If results of PIM-based computations are stored in memory, then computational capacity is utilized, but processor-side caches experience cache misses

Engineering Contradiction:
Improvememory-side processing capabilityVSAvoidcache miss penalty
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary loading of data into processor-side caches before the PIM computation occurs. By identifying which data will be needed for subsequent processor operations and preloading it into caches, the system ensures that when results are written back from memory, the relevant data is already cached, avoiding cache misses and their associated performance penalties.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If prefetch functions or kernel launches are used to preload computation results, then cache availability is improved, but latency and serialization increase

Engineering Contradiction:
Improvecache data availabilityVSAvoidprefetch latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements self-service by enabling the cache controller to automatically detect when data has been modified by PIM operations and autonomously invalidate or update the relevant cache lines. This eliminates the need for software-initiated prefetch operations or kernel launches, as the cache system automatically maintains consistency. The burden of cache management is shifted from the processor software to the hardware cache controller, reducing latency and avoiding serialization on the critical processor path.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback mechanisms where the cache controller monitors memory access patterns and PIM computation completion status. When a PIM computation completes and writes results back to memory, the cache controller receives feedback about which memory addresses were modified and automatically updates its internal state to reflect these changes, enabling it to proactively manage cache validity without processor intervention.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11847055B2Approach for reducing side effects of computation offload to memory
Publication Date: 2023.12.19 ADVANCED MICRO DEVICES INC
  • US11847055B2 patent drawing
  • US11847055B2 patent drawing
  • US11847055B2 patent drawing

AI summary

A technical solution to the technical problem of how to reduce the undesirable side effects of offloading computations to memory uses read hints to preload results of memory-side processing into a processor-side cache. A cache controller, in response to identifying a read hint in a memory-side processing instruction, causes results of the memory-side processing to be preloaded into a processor-side cache. Implementations include, without limitation, enabling or disabling the preloading based upon cache thrashing levels, preloading results, or portions of results, of memory-side processing to particular destination caches, preloading results based upon priority and/or degree of confidence, and/or during periods of low data bus and/or command bus utilization, last stores considerations, and enforcing an ordering constraint to ensure that preloading occurs after memory-side processing results are complete.