-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v0.2.1 #485
Closed
ChrisCummins
wants to merge
281
commits into
facebookresearch:stable
from
ChrisCummins:release-v0.2.1
Closed
Release v0.2.1 #485
ChrisCummins
wants to merge
281
commits into
facebookresearch:stable
from
ChrisCummins:release-v0.2.1
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…codecov [ci] Don't fail CI jobs if code coverage upload fails.
[ci] Persist the bazel build cache.
…ilure-retry [util] Increase persistence on "Too many Requests" errors.
…space Extend action spaces to be composable and continuous.
Using `npm ci` prevents npm from modifying the package.json and package-lock.json files.
[ci] Add a CI job to build the nodejs frontend.
By default datasets are selected uniformly randomly in Datasets.random_benchmark(). This means that datasets with a small number of benchmarks will be overrepresented compared to datasets with many benchmarks. To correct for this bias this patch adds a weight_datasets_by_size argument which is equivalent to weighting the dataset choice by the number of benchmarks in each dataset: >>> random.choices(datasets, weights=[len(p) for p in datasets]) Weighting the choice of datasets by their size means that datasets with infinite sizes (such as random program generators) will be excluded from sampling as their size is 0. Fixes facebookresearch#422.
This patch adds a test that using fork() in a `with` statement works as expected (i.e. the environment is closed at the end of the scope), and refactors the unit tests to use this syntax. Fixes facebookresearch#362.
This adds a set of tests for combinations of benchmarks and actions that have been found to produce diverging states in forked environments.
This moves the create_logs_dir() function into the runfile_path module so that all of the functions for generating filesystem paths are in the same module. This also improves the implementation by enabling thread safe logging directory generation, and renames the function to create_user_logs_dir() to better communicate the type of logs.
…hmark [datasets] Add a weighted implementation of random_benchmark().
…sion-tests [tests] Regression and unit tests for env.fork()
This aggregates the random search utility classes and functions into the random_search module. This effectively deprecates the compiler_gym.random_replay and compiler_gym.util.logs modules.
This replaces the per-object instances of loggers with a shared per-module logger, accessed using logging.getLogger(__name__). The idea is to improve the consistency of logging.
Always check the Python version and use terminate() on py < 3.7, and always block until the process has actually terminated.
…ng-granularity Add custom LLVM unroller to enforce unrolling factors
Add scripts to replicate the experiments from arXiv:2109.08267v1
Codecov Report
@@ Coverage Diff @@
## stable #485 +/- ##
==========================================
- Coverage 87.37% 80.64% -6.74%
==========================================
Files 104 113 +9
Lines 5966 6397 +431
==========================================
- Hits 5213 5159 -54
- Misses 753 1238 +485
Continue to review full report at Codecov.
|
This is to reduce the risk of a pip-installed version of CompilerGym from co-existing with the version installed by `make install`. This can lead to the incorrect version being used and cryptic errors, for example see facebookresearch#483.
Highlights of this release include: - [Complex and composite action spaces] Added a new schema for describing action spaces. This complete overhaul enables a much richer set of actions to be exposed, such as composite actions spaces, dictionaries, and continuous actions. - [State Transition Dataset] We have released the first iteration of the state transition dataset, a large collection of (state,action,reward) tuples for the LLVM environments, suitable for large-scale supervised learning. We have added an example learned cost model using a graph neural network in examples/gnn_cost_model, (thanks @bcui19!). - [New examples] We have added several new examples to the examples/ directory, including a new loop unrolling demo based on LLVM, (thanks @mostafaelhoushi!), a loop tool demo (thanks @bwasti!), micro-benchmarks for operations, and example reinforcement learning scripts. See `examples/README.md` for details. We also overhauled the example compiler gym service. - [New logo] Thanks Christy for designing a great new logo for CompilerGym! - [llvm] Added a new Bitcode observation space. - Numerous bug fixes and improvements. Deprecations and breaking changes: - [Backend API change] Out-of-tree compiler services will require updating to the new action space API. - The env.observation.add_derived_space() method has been deprecated and will be removed in a future release. Please use the new derived_observation_spaces argument to the CompilerEnv constructor. - The compiler_gym.utils.logs module has been deprecated. Use compiler_gym.utils.runfiles_path instead. - The compiler_gym.replay_search module has been deprecated and merged into the compiler_gym.random_search.
991a414
to
5954873
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CLA Signed
This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Highlights of this release include:
examples/gnn_cost_model
(#484, thanks @bcui19!).examples/
directory, including a new loop unrolling demo based on LLVM (#477, thanks @mostafaelhoushi!), a loop tool demo (#457, thanks @bwasti!), micro-benchmarks for operations, and example reinforcement learning scripts (#484). Seeexamples/README.md
for details. We also overhauled the example compiler gym service (#467).Bitcode
observation space (#442).Deprecations and breaking changes:
env.observation.add_derived_space()
method has been deprecated and will be removed in a future release. Please use the newderived_observation_spaces
argument to theCompilerEnv
constructor (#463).compiler_gym.utils.logs
module has been deprecated. Usecompiler_gym.utils.runfiles_path
instead (#453).compiler_gym.replay_search
module has been deprecated and merged into thecompiler_gym.random_search
(#453).