IP Library › Granted Patent US 12,579,070
Granted Patent B2
US 12,579,070 · App. 18/527,295 · Granted Mar 17, 2026

Prune policies

Inventors: Amir Rosen (Haifa, IL); Shie Mannor (Haifa, IL); Sagi Lahav (Kiryat Bialik, IL); Gil Levy (Hod Hasharon, IL); Ariel Szapiro (Kfar Netter, IL)
Assignee: Mellanox Technologies, Ltd
G06F12/0862G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,579,070
App. No.
18/527,295
Granted
Mar 17, 2026
Kind
B2
Abstract

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.

Claims (77)

1 . A method, comprising:

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.

2 . The method according to claim 1 , further comprising:

reducing a collection of configurations of the preprocessor engines to yield the set of configurations of the preprocessor engines using a first configuration reduction method; and

reducing the set of configurations of the preprocessor engines to yield the pruned set of configurations using a second configuration reduction method different to the first configuration reduction method.

3 . The method according to claim 1 , wherein the preprocessor engines are prefetcher engines, and the configurations are different prefetcher engine configurations based on aggressiveness levels to be applied to the prefetcher engines.

4 . The method according to claim 3 , further comprising:

executing the benchmark applications while changing the aggressiveness levels of the prefetcher engines; and

measuring the performance of the device during the execution of the benchmark applications.

5 . The method according to claim 1 , wherein defining the order includes finding:

a best configuration of the configurations based on the measurements;

a second-best configuration of the configurations based on the best configuration being found to be the best configuration and based on the measurements; and

a third-best configuration of the configurations based on the best configuration and the second-best configuration being found to the best configuration and the second-best configuration, respectively, and based on the measurements; and

an N th best configuration of the configurations based on the best to N−1 best configurations of the configurations being found to be the best to N−1 best configurations, respectively, and based on the measurements.

6 . The method according to claim 5 , further comprising computing first averages of the vectors that indicate the performance of the device executing benchmark applications for respective ones of the configurations, wherein the finding includes: finding a first vector of the vectors having a highest average of the first averages; and defining the best configuration as one of the configurations corresponding to the first vector.

7 . The method according to claim 6 , wherein the finding the second-best configuration includes:

(a) selecting a first candidate vector of the vectors;

(b) performing elementwise maximum operations with the first candidate vector and the first vector yielding a first resultant vector;

(c) computing an average of the first resultant vector;

(d) repeating steps (a) to (c) for other first candidate vectors of the vectors yielding multiple first resultant vectors with multiple corresponding second averages; and

(e) finding the second-best configuration corresponding to a second vector of the first candidate vectors yielding a given first resultant vectors of the first resultant vectors having a highest average of the second averages.

8 . The method according to claim 7 , wherein the finding the third-best configuration includes:

(a) selecting a second candidate vector of the vectors;

(b) performing elementwise maximum operations with the second candidate vector and the given first resultant vector, or with the first vector and the second vector, yielding a second resultant vector;

(c) computing an average of the second resultant vector;

(d) repeating steps (a) to (c) for other second candidate vectors of the vectors yielding multiple second resultant vectors with multiple corresponding third averages; and

(e) finding the third-best configuration corresponding to one of the second candidate vectors yielding one of the second resultant vectors having a highest average of the third averages.

9 . The method according to claim 6 , wherein the finding the N th best configuration includes:

(a) selecting a candidate vector of the vectors;

(b) performing elementwise maximum operations with the candidate vector and at least one vector indicative of the configurations from the best configuration to an (N−1) th best configuration, yielding a resultant vector;

(c) computing an average of the resultant vector;

(d) repeating steps (a) to (c) for other candidate vectors of the vectors yielding multiple resultant vectors with multiple corresponding averages; and

(e) finding the N th best configuration corresponding to one of the candidate vectors yielding one of the resultant vectors having a highest average of the multiple corresponding averages.

10 . A system, comprising:

a processor to:

receive data of a set of configurations of preprocessor engines;

receive 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;

define an order of at least some of the configurations based on the measurements; and

provide a pruned set of configurations based on the defined order of the at least some configurations; and

a memory to store data used by the processor.

11 . The system according to claim 10 , wherein the processor is to:

reduce a collection of configurations of the preprocessor engines to yield the set of configurations of the preprocessor engines using a first configuration reduction method; and

reduce the set of configurations of the preprocessor engines to yield the pruned set of configurations using a second configuration reduction method different to the first configuration reduction method.

12 . The system according to claim 10 , wherein the preprocessor engines are prefetcher engines, and the configurations are different prefetcher engine configurations based on aggressiveness levels to be applied to the prefetcher engines.

13 . The system according to claim 12 , further comprising the prefetcher engines, where in the processor is to:

execute the benchmark applications while changing the aggressiveness levels of the prefetcher engines; and

measure the performance of the device during the execution of the benchmark applications.

14 . The system according to claim 10 , wherein the processor is to:

find a best configuration of the configurations based on the measurements;

find a second-best configuration of the configurations based on the best configuration being found to be the best configuration and based on the measurements; and

find a third-best configuration of the configurations based on the best configuration and the second-best configuration being found to the best configuration and the second-best configuration, respectively, and based on the measurements; and

find an N th best configuration of the configurations based on the best to N−1 best configurations of the configurations being found to be the best to N−1 best configurations, respectively, and based on the measurements.

15 . The system according to claim 14 , wherein the processor is to:

compute first averages of vectors that indicate the performance of the device executing benchmark applications for respective ones of the configurations; and

find a first vector of the vectors having a highest average of the first averages; and

define the best configuration as one of the configurations corresponding to the first vector.

16 . The system according to claim 15 , wherein the processor is to:

(a) select a first candidate vector of the vectors;

(b) perform elementwise maximum operations with the first candidate vector and the first vector yielding a first resultant vector;

(c) compute an average of the first resultant vector;

(d) repeat steps (a) to (c) for other first candidate vectors of the vectors yielding multiple first resultant vectors with multiple corresponding second averages; and

(e) find the second-best configuration corresponding to a second vector of the first candidate vectors yielding a given first resultant vector of the first resultant vectors having a highest average of the second averages.

17 . The system according to claim 16 , wherein the processor is to:

(a) select a second candidate vector of the vectors;

(b) perform elementwise maximum operations with the second candidate vector and the given first resultant vector, or with the first vector and the second vector, yielding a second resultant vector;

(c) compute an average of the second resultant vector;

(d) repeat steps (a) to (c) for other second candidate vectors of the vectors yielding multiple second resultant vectors with multiple corresponding third averages; and

(e) find the third-best configuration corresponding to one of the second candidate vectors yielding one of the second resultant vectors having a highest average of the third averages.

18 . The system according to claim 15 , wherein the processor is to:

(a) select a candidate vector of the vectors;

(b) perform elementwise maximum operations with the candidate vector and at least one vector indicative of the configurations from the best configuration to an N−1 st best configuration, yielding a resultant vector;

(c) compute an average of the resultant vector;

(d) repeat steps (a) to (c) for other candidate vectors of the vectors yielding multiple resultant vectors with multiple corresponding averages; and

(e) find the N th best configuration corresponding to one of the candidate vectors yielding one of the resultant vectors having a highest average of the multiple corresponding averages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2023
From: ROSEN, AMIR; MANNOR, SHIE; LAHAV, SAGI; LEVY, GIL; SZAPIRO, ARIEL
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 065759/0692 →
Continuity (1)
Related Publication 20250181510A1 · Jun 5, 2025
References Cited (29)
US 11804050B1 · Milletari · 2023 [cited by examiner]
US 12222875B1 · Huberty · 2025 [cited by examiner]
US 20140304477A1 · Hughes et al. · 2014 [cited by applicant]
US 20150286571A1 · Cain, III · 2015 [cited by examiner]
US 20160283970A1 · Ghavamzadeh et al. · 2016 [cited by applicant]
US 20190087341A1 · Pugsley · 2019 [cited by examiner]
US 20190102302A1 · Taht · 2019 [cited by examiner]
US 20210089472A1 · Ishii · 2021 [cited by examiner]
US 20210374523A1 · Gottin et al. · 2021 [cited by applicant]
US 20220197809A1 · Eris · 2022 [cited by examiner]
US 20220197856A1 · Khasawneh · 2022 [cited by examiner]
US 20220374367A1 · Fang et al. · 2022 [cited by applicant]
US 20230236977A1 · Dev et al. · 2023 [cited by applicant]
US 20240354110A1 · Alcorta Lozano · 2024 [cited by examiner]
US 20250139439A1 · Abts · 2025 [cited by applicant]
WO 2017189033A1 · 2017 [cited by applicant]
WO 2023088535A1 · 2023 [cited by applicant]
Rahman et al., “Maximizing Hardware Prefetch Effectiveness with Machine Learning,” Proceedings of the ACM/IEEE Conference on High Performance Computing and Communications, pp. 1-7, year 2015. [cited by applicant]
Liao et al., “Machine Learning-Based Prefetch Optimization for Data Center Applications,” Conference Paper, SC 09, pp. 1-11, Nov. 2009. [cited by applicant]
Eris et al., “Puppeteer: A Random Forest Based Manager for Hardware Prefetchers Across the Memory Hierarchy,” ACM Transactions on Architecture and Code Optimization, vol. 20, No. 1, Article 19, pp. 1-25, Dec. 2022. [cited by applicant]
Wikipedia, “Greedy Algorithm,” pp. 1-6, Aug. 14, 2023. [cited by applicant]
Gerogiannis et al., “Micro-Armed Bandit: Lightweight & Reusable Reinforcement Learning for Microarchitecture Decision-Making,” Conference Paper, MICRO '23, pp. 1-16, Nov. 2023. [cited by applicant]
Mannor et al., U.S. Appl. No. 18/527,293, filed Dec. 3, 2023. [cited by applicant]
Szapiro et al., U.S. Appl. No. 18/527,294, filed Dec. 3, 2023. [cited by applicant]
Rosen et al., U.S. Appl. No. 18/527,296, filed Dec. 3, 2023. [cited by applicant]
Rosen et al., U.S. Appl. No. 18/527,297, filed Dec. 3, 2023. [cited by applicant]
US Non Final Office Action U.S. Appl. No. 18/527,293, dated Apr. 10, 2025. [cited by applicant]
US Non Final Office Action U.S. Appl. No. 18/623,103, dated May 13, 2025. [cited by applicant]
US Non Final Office Action U.S. Appl. No. 18/623,099, dated Apr. 4, 2025. [cited by applicant]