CompilerGym v0.2.4
This release adds a new compiler environment, new APIs, and a suite of backend improvements to improve the flexibility of CompilerGym environments. Many thanks to code contributors: @sogartar, @KyleHerndon, @SoumyajitKarmakar, @uduse, and @anthony0727!
Highlights of this release include:
- [mlir] Began work on a new environment for matrix multiplication using MLIR (#652, thanks @KyleHerndon and @sogartar!). Note this environment is not yet included in the pypi package and must be compiled from source.
- [llvm] Added a new
env.benchmark_from_clang_invocation()
method (#577) that can be used for constructing LLVM environment automatically from C/C++ compiler invocations. This makes it much easier to integrate CompilerGym with your existing build scripts. - Added three new wrapper classes:
Counter
, that provides op counts for analysis (#683);SynchronousSqliteLogger
, that provides logging of environment interactions to a relational database (#679), andForkOnStep
that provides anundo()
operation (#682). - Added
reward_space
andobservation_space
parameters toenv.reset()
(#659, thanks @SoumyajitKarmakar!)
This release includes a number of improvements to the backend APIs that make it easier to write new CompilerGym environments:
- Refactored the backend to make
CompilerEnv
an abstract interface, andClientServiceCompilerEnv
the concrete implementation of this interface. This enables new environments to be implemented without using gRPC (#633, thanks @sogartar!). - Extended the support for different types of action and observation spaces (#641, #643, thanks @sogartar!), including new
Permutation
andSpaceSequence
spaces (#645, thanks @sogartar!).. - Added a new
disk/
subdirectory to compiler service's working directories, which is symlinked to an on-disk location for devices which support in-memory working directories. This fixes a bug with leftover temporary directories from LLVM (#672).
This release also includes numerous bug fixes and improvements, many of which were reported or fixed by the community. For example, fixing a bug in cache file locations (#656, thanks @uduse!), and a missing flag definition in example code (#684, thanks @anthony0727!).