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

CompilerGym Release v0.2.0 #439

Merged
merged 6 commits into from
Sep 29, 2021
Merged

CompilerGym Release v0.2.0 #439

merged 6 commits into from
Sep 29, 2021

Conversation

ChrisCummins
Copy link
Contributor

This release adds two new compiler optimization problems to CompilerGym: GCC command line flag optimization and CUDA loop nest optimization.

  • [GCC] A new gcc-v0 environment, authored by @hughleat, exposes the command line flags of GCC as a reinforcement learning environment. GCC is a production-grade compiler for C and C++ used throughout industry. The environment provides several datasets and a large, high dimensional action space that works on several GCC versions. For further details check out the reference documentation.
  • [loop_tool] A new loop_tool-v0 environment, authored by @bwasti, provides an experimental intermediate representation of n-dimensional data computation that can be lowered to both CPU and GPU backends. This provides a reinforcement learning environment for manipulating nests of loop computations to maximize throughput. For further details check out the reference documentation.

Other highlights of this release include:

  • [Docker] Published a chriscummins/compiler_gym docker image that can be used to run CompilerGym services in standalone isolated containers (#424).
  • [LLVM] Fixed a bug in the experimental Runtime observation space that caused observations to slow down over time (#398).
  • [LLVM] Added a new utility module to compute observations from bitcodes (#405).
  • Overhauled the continuous integration services to reduce computational requirements by 59.4% while increasing test coverage (#392).
  • Improved error reporting if computing an observation fails (#380).
  • Changed the return type of compiler_gym.random_search() to a CompilerEnv (#387).
  • Numerous other bug fixes and improvements.

Many thanks to code contributors: @thecoblack, @bwasti, @hughleat, and @sahirgomez1!

This release adds two new compiler optimization problems to
CompilerGym: GCC command line flag optimization and CUDA loop nest
optimization.

- [GCC] A new `gcc-v0` environment, authored by @hughleat, exposes the
command line flags of GCC as a reinforcement learning environment. GCC
is a production-grade compiler for C and C++ used throughout
industry. The environment provides several datasets and a large, high
dimensional action space that works on several GCC versions. For
further details check out the reference documentation:
https://facebookresearch.github.io/CompilerGym/envs/gcc.html

- [loop_tool] A new `loop_tool-v0` environment, authored by @bwasti,
provides an experimental intermediate representation
of *n*-dimensional data computation that can be lowered to both CPU
and GPU backends. This provides a reinforcement learning environment
for manipulating nests of loop computations to maximize
throughput. For further details check out the reference documentation:
https://facebookresearch.github.io/CompilerGym/envs/loop_tool.html

Other highlights of this release include:

- [Docker] Published a chriscummins/compiler_gym docker image that can
be used to run CompilerGym services in standalone isolated containers.

- [LLVM] Fixed a bug in the experimental `Runtime` observation space
that caused observations to slow down over time.

- [LLVM] Added a new utility module to compute observations from
bitcodes.

- Overhauled the continuous integration services to reduce
computational requirements by 59.4% while increasing test coverage.

- Improved error reporting if computing an observation fails.

- Changed the return type of compiler_gym.random_search() to a
CompilerEnv.

- Numerous other bug fixes and improvements.

Many thanks to code contributors: @thecoblack, @bwasti, @hughleat, and
@sahirgomez1!
We will be running the full CI workflow on every push / PR, so
repeating every test on the build artifacts seems wasteful. Instead
just run the examples tests.
@ChrisCummins ChrisCummins added this to the v0.2.0 milestone Sep 29, 2021
@ChrisCummins ChrisCummins merged commit 4ba9a7a into development Sep 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant