Prefetcher Configuration Selection Using Multi-Armed Bandits

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing prefetcher systems face challenges in balancing prefetcher aggressiveness to optimize system performance, power consumption, and resource utilization, leading to interference and suboptimal performance in multi-core environments.

Innovation Solution

A system utilizing a multi-armed bandit machine learning agent to dynamically select prefetcher engine configurations by exploring and exploiting different aggressiveness levels based on performance measurements, reducing the configuration space through supervised learning and reinforcement learning techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If prefetcher aggressiveness is increased to improve memory access performance, then data fetching speed is improved, but inter-core interference and resource contention increase

Engineering Contradiction:
Improvememory access speedVSAvoidinter-core interference
Core Design Contradiction:
SpeedVSObject-generated harmful factors

Solution Approach 1:

The prefetcher aggressiveness is made dynamic rather than static. The system continuously monitors performance metrics and adjusts the aggressiveness level adaptively based on current system conditions, allowing the prefetcher to be more aggressive when beneficial and more conservative when interference occurs

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms by monitoring performance metrics and using this information to adjust prefetcher behavior. The feedback loop enables the system to learn from past performance and optimize prefetcher aggressiveness to balance memory access speed improvement with interference minimization

Inventive Principle:
Principle #23Feedback

2Loss of time

If prefetcher aggressiveness is increased to reduce latency, then memory access latency is reduced, but power consumption increases

Engineering Contradiction:
Improvememory access latencyVSAvoidpower consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The prefetcher operates with dynamic aggressiveness that adapts to system conditions. By adjusting the prefetching intensity based on monitored performance and power metrics, the system achieves low latency when necessary while conserving power during periods when aggressive prefetching is not beneficial

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes operational parameters of the prefetcher, specifically the aggressiveness level, based on system state. By varying parameters like prefetch distance and frequency according to current needs, the system optimizes the trade-off between latency reduction and power consumption

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If the number of prefetcher configurations is reduced to simplify control, then configuration management is simplified, but performance optimization capability is reduced

Engineering Contradiction:
Improveconfiguration managementVSAvoidperformance optimization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The configuration space is segmented into distinct aggressiveness levels or categories. This segmentation allows the system to manage a reduced set of configurations more easily while still providing sufficient granularity for performance optimization across different workloads and system states

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12499048B2Prefetcher engine configuration selection with multi-armed bandit
Publication Date: 2025.12.16 MELLANOX TECHNOLOGIES LTD(IL)
  • US12499048B2 patent drawing
  • US12499048B2 patent drawing
  • US12499048B2 patent drawing

AI summary

In one embodiment, a system includes prefetcher engines to predict next memory access addresses of a memory from which to load data to a cache during execution of a software application, and load the data from the predicted next memory access addresses to the cache during execution of the software application, and a processor to control the prefetcher engines according to configurations of the prefetcher engines selected by a machine learning agent in exploration phases and in exploitation phases during execution of the software application, and execute the machine learning agent to select from a pruned set of configurations to control the prefetcher engines in the exploration phases, perform measurements on the system during execution of the machine learning agent, and execute the machine learning agent to select from the configurations to maximize potential rewards from controlling the prefetcher engines in the exploitation phases based on the performed measurements.