From 421c3d163ea3ef757e3ce08192bbe27839aabf53 Mon Sep 17 00:00:00 2001 From: Mircea Trofin Date: Wed, 11 Feb 2026 22:39:28 -0800 Subject: [PATCH 1/3] [NFC] `BlackboxEvaluator.get_rewards` is just a future extaction utility --- compiler_opt/es/blackbox_evaluator.py | 28 ++++++++++++++------------- docs/llvm/README | 18 +++++++++++++++++ 2 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 docs/llvm/README diff --git a/compiler_opt/es/blackbox_evaluator.py b/compiler_opt/es/blackbox_evaluator.py index 1208eb4d..32fb50a1 100644 --- a/compiler_opt/es/blackbox_evaluator.py +++ b/compiler_opt/es/blackbox_evaluator.py @@ -17,6 +17,7 @@ import concurrent.futures import os import random +from typing import Any from absl import logging import gin @@ -46,18 +47,18 @@ def get_results( def set_baseline(self, pool: FixedWorkerPool) -> None: raise NotImplementedError() - def get_rewards( - self, results: list[concurrent.futures.Future]) -> list[float | None]: - rewards = [None] * len(results) + @staticmethod + def extract_results(futures: list[concurrent.futures.Future]) -> list[Any]: + results = [None] * len(futures) - for i in range(len(results)): - if not results[i].exception(): - rewards[i] = results[i].result() + for i in range(len(futures)): + if not futures[i].exception(): + results[i] = futures[i].result() else: logging.info('Error retrieving result from future: %s', - str(results[i].exception())) + str(futures[i].exception())) - return rewards + return results @gin.configurable @@ -140,19 +141,20 @@ def set_baseline(self, pool: FixedWorkerPool) -> None: if self._baselines is not None: raise RuntimeError('The baseline has already been set.') self._load_samples() - results = self._launch_compilation_workers(pool) - self._baselines = super().get_rewards(results) + results_futures = self._launch_compilation_workers(pool) + self._baselines = BlackboxEvaluator.extract_results(results_futures) def get_rewards( - self, results: list[concurrent.futures.Future]) -> list[float | None]: + self, + results_futures: list[concurrent.futures.Future]) -> list[float | None]: if self._baselines is None: raise RuntimeError('The baseline has not been set.') - if len(results) != len(self._baselines): + if len(results_futures) != len(self._baselines): raise RuntimeError( 'The number of results does not match the number of baselines.') - policy_results = super().get_rewards(results) + policy_results = BlackboxEvaluator.extract_results(results_futures) rewards = [] for policy_result, baseline in zip( diff --git a/docs/llvm/README b/docs/llvm/README new file mode 100644 index 00000000..a3498833 --- /dev/null +++ b/docs/llvm/README @@ -0,0 +1,18 @@ +1) build the docker image + +``` +docker build --tag mlgo_demo . +``` + +2) start it + +``` +docker run -t -d --name demo mlgo_demo + +``` + +3) run everything + +``` +docker exec demo bash /work/ml-compiler-opt/docs/llvm/run_everything.sh +``` From 96b077d47e173fdc8b38cb6cb484443e365e0fa6 Mon Sep 17 00:00:00 2001 From: Mircea Trofin Date: Thu, 12 Feb 2026 13:26:40 -0800 Subject: [PATCH 2/3] feedback --- docs/llvm/README | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 docs/llvm/README diff --git a/docs/llvm/README b/docs/llvm/README deleted file mode 100644 index a3498833..00000000 --- a/docs/llvm/README +++ /dev/null @@ -1,18 +0,0 @@ -1) build the docker image - -``` -docker build --tag mlgo_demo . -``` - -2) start it - -``` -docker run -t -d --name demo mlgo_demo - -``` - -3) run everything - -``` -docker exec demo bash /work/ml-compiler-opt/docs/llvm/run_everything.sh -``` From 1d21a1a3c2ff112123699abd7f94a3efff565a41 Mon Sep 17 00:00:00 2001 From: Mircea Trofin Date: Thu, 12 Feb 2026 13:28:09 -0800 Subject: [PATCH 3/3] forgot one file --- compiler_opt/es/blackbox_evaluator.py | 30 +++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/compiler_opt/es/blackbox_evaluator.py b/compiler_opt/es/blackbox_evaluator.py index 32fb50a1..f79365ee 100644 --- a/compiler_opt/es/blackbox_evaluator.py +++ b/compiler_opt/es/blackbox_evaluator.py @@ -30,6 +30,19 @@ from compiler_opt.rl import compilation_runner +def _extract_results(futures: list[concurrent.futures.Future]) -> list[Any]: + results = [None] * len(futures) + + for i in range(len(futures)): + if not futures[i].exception(): + results[i] = futures[i].result() + else: + logging.info('Error retrieving result from future: %s', + str(futures[i].exception())) + + return results + + class BlackboxEvaluator(metaclass=abc.ABCMeta): """Blockbox evaluator abstraction.""" @@ -47,19 +60,6 @@ def get_results( def set_baseline(self, pool: FixedWorkerPool) -> None: raise NotImplementedError() - @staticmethod - def extract_results(futures: list[concurrent.futures.Future]) -> list[Any]: - results = [None] * len(futures) - - for i in range(len(futures)): - if not futures[i].exception(): - results[i] = futures[i].result() - else: - logging.info('Error retrieving result from future: %s', - str(futures[i].exception())) - - return results - @gin.configurable class SamplingBlackboxEvaluator(BlackboxEvaluator): @@ -142,7 +142,7 @@ def set_baseline(self, pool: FixedWorkerPool) -> None: raise RuntimeError('The baseline has already been set.') self._load_samples() results_futures = self._launch_compilation_workers(pool) - self._baselines = BlackboxEvaluator.extract_results(results_futures) + self._baselines = _extract_results(results_futures) def get_rewards( self, @@ -154,7 +154,7 @@ def get_rewards( raise RuntimeError( 'The number of results does not match the number of baselines.') - policy_results = BlackboxEvaluator.extract_results(results_futures) + policy_results = _extract_results(results_futures) rewards = [] for policy_result, baseline in zip(