Skip to content
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.2 #545

Merged
merged 181 commits into from
Jan 21, 2022
Merged

Release v0.2.2 #545

merged 181 commits into from
Jan 21, 2022

Conversation

ChrisCummins
Copy link
Contributor

@ChrisCummins ChrisCummins commented Jan 19, 2022

Amongst the highlights of this release are support for building with CMake and a new compiler environment based on loop unrolling. Many thanks to @sogartar, @mostafaelhoushi, @KyleHerndon, and @yqtianust for code contributions!

  • Added support for building CompilerGym from source on Linux using CMake (#498, #478). The new build system coexists with the bazel build and enables customization over the CMake configuration used to build the LLVM environment. See INSTALL.md for details. Credit: @sogartar, @KyleHerndon.
  • Added an environment for loop optimizations in LLVM (#530, #529, #517). This new example environment provides control over loop unrolling factors and demonstrates how to build a standalone LLVM binary using the new CMake build system. Credit: @mostafaelhoushi.
  • Added a new BenchmarkUri class and API for parsing URIs (#525). This enables benchmarks to have optional parameters that can be used by the backend services to modify their behavior.
  • [llvm] Enabled runtime reward to be calculated on systems where /dev/shm does not permit executables (#510).
  • [llvm] Added a new benchmark://mibench-v1 dataset and deprecated benchmark://mibench-v0 (#511). If you are using mibench-v0, please update to the new version.
  • [llvm] Enabled all 20 of the cBench runtime datasets to be used by the benchmark://cbench-v1 dataset (#525).
  • Made the site_data_base argument of the Dataset class constructor optional (#518).
  • Added support for building CompilerGym from source on macOS Monterey (#494).
  • Removed the legacy dataset scripts and APIs that were deprecated in v0.1.8. Please use the new dataset API. The following has been removed:
    • The compiler_gym.bin.datasets script.
    • The properties: CompilerEnv.available_datasets, and CompilerEnv.benchmarks.
    • The CompilerEnv.require_dataset(), CompilerEnv.require_datasets(), CompilerEnv.register_dataset(), and CompilerEnv.get_benchmark_validation_callback() methods.
  • Numerous other bug fixes and improvements.

Full Change Log: v0.2.1...v0.2.2

ChrisCummins and others added 30 commits November 17, 2021 13:24
[Makefile] Run `pip uninstall` before `pip install`.
The files compiler_gym/envs/llvm/service/passes/*.py are used to
generate files that are used during the compiler_gym build. Don't use
fully-qualified module paths to emphasize this.

Issue #488.
[llvm] Don't use fully-qualified module imports for codegen scripts.
[docs] Add a favicon for CompilerGym documentation site.
This is a temporary commit to force the CI's build cache to clean as it
has become corrupted.
[ci] Add a step to empty the build cache.
ChrisCummins and others added 10 commits January 12, 2022 09:32
[github] Add a label to all Issue templates.
[examples] Don't pin typing-extensions version.
Removes the legacy dataset scripts and APIs that have been deprecated
since v0.1.8. Please use the new dataset
API:

    https://compilergym.com/compiler_gym/datasets.html#datasets

The following has been removed:

  - The `compiler_gym.bin.datasets` script.

  - The properties: `CompilerEnv.available_datasets`, and
  `CompilerEnv.benchmarks`.

  - The `CompilerEnv.require_dataset()`,
  `CompilerEnv.require_datasets()`, `CompilerEnv.register_dataset()`,
  and `CompilerEnv.get_benchmark_validation_callback()` methods.
[Makefile] Build docs from source dir to prevent import error.
Add a new benchmark URI parser and support for all 20 datasets to cBench
Remove deprecated datasets APIs and scripts.
@ChrisCummins ChrisCummins added this to the v0.2.2 milestone Jan 19, 2022
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jan 19, 2022
ChrisCummins and others added 4 commits January 19, 2022 14:05
[llvm] Add a table of accepted file types to make_benchmark().
This adds support for `deepcopy(env)`, which has identical semantics
to `env.fork()`.

Shallow copies are explicitly disallowed as environments cannot share
state.

Fixes #351.
@ChrisCummins ChrisCummins marked this pull request as ready for review January 19, 2022 14:27
[docs] Add docstring for compiler_gym.wrappers module.
@codecov-commenter
Copy link

codecov-commenter commented Jan 19, 2022

Codecov Report

Merging #545 (c1fabd7) into stable (100967a) will increase coverage by 1.38%.
The diff coverage is 83.14%.

Impacted file tree graph

@@            Coverage Diff             @@
##           stable     #545      +/-   ##
==========================================
+ Coverage   86.53%   87.91%   +1.38%     
==========================================
  Files         113      113              
  Lines        6393     6486      +93     
==========================================
+ Hits         5532     5702     +170     
+ Misses        861      784      -77     
Impacted Files Coverage Δ
compiler_gym/envs/llvm/llvm_env.py 87.27% <ø> (ø)
compiler_gym/leaderboard/llvm_instcount.py 92.78% <ø> (ø)
...mpiler_gym/service/runtime/compiler_gym_service.py 100.00% <ø> (ø)
compiler_gym/util/executor.py 74.43% <0.00%> (ø)
compiler_gym/util/flags/benchmark_from_flags.py 80.00% <ø> (ø)
compiler_gym/wrappers/datasets.py 95.91% <ø> (ø)
compiler_gym/envs/llvm/datasets/poj104.py 41.09% <37.50%> (+1.41%) ⬆️
compiler_gym/service/connection.py 78.61% <37.50%> (+1.40%) ⬆️
compiler_gym/random_search.py 91.89% <50.00%> (+0.54%) ⬆️
compiler_gym/envs/gcc/datasets/csmith.py 92.22% <53.84%> (+0.17%) ⬆️
... and 37 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 100967a...c1fabd7. Read the comment docs.

ChrisCummins and others added 3 commits January 19, 2022 20:31
[wrappers] Add a new wrapper to validate benchmark semantics on step().
Amongst the highlights of this release are support for building with CMake and a
new compiler environment based on loop unrolling. Many thanks to @sogartar,
@mostafaelhoushi, @KyleHerndon, and @yqtianust for code contributions!

- Added support for building CompilerGym from source on Linux using **CMake**.
  The new build system coexists with the bazel build and enables customization
  over the CMake configuration used to build the LLVM environment. See
  INSTALL.md for details. Credit: @sogartar, @KyleHerndon.
- Added an environment for loop optimizations in LLVM. This new example
  environment provides control over loop unrolling factors and demonstrates how
  to build a standalone LLVM binary using the new CMake build system. Credit:
  @mostafaelhoushi.
- Added a new BenchmarkUri class and API for parsing URIs. This enables
  benchmarks to have optional parameters that can be used by the backend
  services to modify their behavior.
- [llvm] Enabled runtime reward to be calculated on systems where /dev/shm does
  not permit executables.
- [llvm] Added a new benchmark://mibench-v1 dataset and deprecated
  benchmark://mibench-v0. If you are using mibench-v0, please update to the new
  version.
- [llvm] Enabled all 20 of the cBench runtime datasets to be used by the
  benchmark://cbench-v1 dataset.
- Added support for building CompilerGym from source on macOS Monterey.
- Made the site_data_base argument of the Dataset class constructor optional.
- Removed the legacy dataset scripts and APIs that were deprecated in v0.1.8.
  Please use the new dataset API. The following has been removed:
    - The compiler_gym.bin.datasets script.
    - The properties: CompilerEnv.available_datasets, and
      CompilerEnv.benchmarks.
    - The CompilerEnv.require_dataset(), CompilerEnv.require_datasets(),
      CompilerEnv.register_dataset(), and
      CompilerEnv.get_benchmark_validation_callback() methods.
- Numerous other bug fixes and improvements.
@ChrisCummins ChrisCummins merged commit c6f46eb into stable Jan 21, 2022
@ChrisCummins ChrisCummins deleted the release/v0.2.2 branch January 21, 2022 09:25
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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants