Prefetcher Configuration Pruning for Dynamic Aggressiveness Control

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, particularly in multi-core environments, where aggressive prefetching can cause interference and suboptimal resource usage.

Innovation Solution

A method and system utilizing machine learning agents, such as multi-armed bandits, to select and adjust prefetcher engine configurations based on performance measurements, reducing the number of configurations through grouping and supervised learning to optimize prefetcher aggressiveness levels for improved system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If aggressive prefetching is used to improve memory access performance, then data access speed is improved, but inter-core interference increases and power consumption increases

Engineering Contradiction:
Improvedata 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 of prefetchers in real-time based on current system conditions, allowing the prefetching intensity to adapt to varying workload characteristics and core utilization patterns

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms that monitor the impact of prefetching on system performance and use this information to adjust prefetcher behavior. Performance measurements are collected and used to control the aggressiveness of prefetchers, creating a closed-loop control system that balances performance improvement with interference minimization

Inventive Principle:
Principle #23Feedback

2Speed

If aggressive prefetching is used to improve memory access performance, then data access speed is improved, but power consumption increases

Engineering Contradiction:
Improvedata access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The prefetcher aggressiveness is made dynamic rather than static. The system continuously monitors performance metrics and adjusts the aggressiveness level of prefetchers in real-time based on current system conditions, allowing the prefetching intensity to adapt to varying workload characteristics and core utilization patterns

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes operational parameters (prefetcher aggressiveness levels) to optimize the balance between performance and power consumption. By adjusting parameters such as prefetch distance, prefetch window size, and prefetch intensity based on measured performance, the system achieves energy-efficient operation without sacrificing data access speed

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If the number of prefetcher configurations is reduced to simplify the system, then device complexity is reduced, but the ability to optimize performance is limited

Engineering Contradiction:
Improveconfiguration management complexityVSAvoidsystem performance optimization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system implements self-service mechanisms where the prefetcher configuration is automatically optimized through performance measurements and machine learning algorithms. The system autonomously selects optimal configurations based on observed performance patterns without requiring manual intervention or complex configuration management, thereby maintaining simplicity while achieving high performance

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12579070B2Prune policies
Publication Date: 2026.03.17 MELLANOX TECHNOLOGIES LTD(IL)
  • US12579070B2 patent drawing
  • US12579070B2 patent drawing
  • US12579070B2 patent drawing

AI summary

In one embodiment, a method includes receiving data of a set of configurations of preprocessor engines, receiving measurements of performance of a device executing benchmark applications while changing a configuration of preprocessor engines selected from the set of configurations of preprocessor engines, defining an order of at least some of the configurations based on the measurements, and providing a pruned set of configurations based on the defined order of the at least some configurations.