
CompilerGym

Click to visit website
About
CompilerGym is a library of easy to use and performant reinforcement learning environments for compiler tasks. It allows ML researchers to interact with important compiler optimization problems in a language and vocabulary with which they are comfortable, and provides a toolkit for systems developers to expose new compiler tasks for ML research. The goal is to act as a catalyst for making compilers faster using ML. CompilerGym aims to lower the barrier to entry to compiler AI research by building a playground that allows anyone to experiment with program optimizations without writing C++. Key goals include building the 'ImageNet for compilers' with high-quality, open-source environments and real-world datasets, improving fairness and reproducibility through a common experimental framework, enabling granular control over compiler decisions, and facilitating the deployment of research findings to production infrastructure.
Platform
Features
• reinforcement learning environments for compiler tasks
• open-source and community-driven
• facilitates deployment of research findings to production
• enables granular control over compiler optimization decisions
• provides datasets for compiler research
• c++ api for compiler service development
• python api for interacting with environments
• support for llvm, gcc, loop_tool, and mlir environments
FAQs
What can I do with this?
CompilerGym lets you control compiler decisions for program optimization. Currently, it supports LLVM, GCC, and CUDA loop nests, aiming to steer compilers towards optimal compiled programs based on reward signals.
Do I have to use reinforcement learning?
No. CompilerGym provides a useful abstraction for sequential decision making, but you can use any technique like search, genetic algorithms, supervised/unsupervised ML, or deep reinforcement learning.
Why does my environment’s step() function return “done”?
An episode is 'done' if a terminal state is reached (no more decisions, or artificial limit) or if an unrecoverable error occurs (e.g., compiler crash, timeout, out-of-memory). Error details are in `info` dict.
Where does CompilerGym store files?
CompilerGym caches files in `~/.local/cache/compiler_gym`, stores site data in `~/.local/share/compiler_gym`, uses `/dev/shm/compiler_gym_${USER}` for in-memory cache, and logs in `~/logs/compiler_gym`.
Do I need to call env.close()?
Yes, to tidy up subprocesses and temporary files. Use the `with`-statement pattern (`with gym.make("llvm-v0") as env:`) or `try`/`finally` blocks for automatic closure.
How do I debug crashes or errors?
Produce a minimal reproducible example. Enable verbose logging by adding `import logging; logging.basicConfig(level=logging.DEBUG)` at the script start, and set `COMPILER_GYM_DEBUG` to '4' for more verbosity.
I found a bug. How do I report it?
File an issue using the GitHub issue tracker. See the Contributing guide for more details.
What features are going to be added in the future?
See the roadmap for future features, including increasingly granular control over optimization decisions and generalization to other systems domains.
I want to modify one of the environments, where do I start?
Many modifications can be done with wrappers. For invasive changes, fork the project, build from source, and modify the compiler service implementation in `compiler_gym/envs/$COMPILER/service`.
I want to add a new compiler environment, where do I start?
Implement the CompilationSession interface to provide a new compilation service, then register it with the CompilerGym frontend. Examples are in the `examples directory`.
I updated with “git pull” and now it doesn’t work
First, re-run `make init` and `make distclean`. If the problem persists, file an issue. The `development` branch is bleeding edge; consider using `stable` for more stability.
Pricing Plans
Free
Free Plan• Access to reinforcement learning environments
• Support for LLVM, GCC, loop_tool, and MLIR environments
• Python and C++ API references
• Open-source development and community support
Job Opportunities
There are currently no job postings for this AI tool.
Ratings & Reviews
No ratings available yet. Be the first to rate this tool!
Alternatives

CompilerAI
CompilerAI is a research-based startup focusing on formal methods and compilers, specializing in program superoptimization and related technologies.
View DetailsFeatured Tools
GirlfriendGPT
NSFW AI chat platform with customizable characters, AI image generation, and voice chat. Explore roleplay and intimate interactions with AI companions.
View DetailsxMates AI
xMates AI is a next-generation AI chat app powered by large language models, offering human-like interactions and roleplaying with customizable AI characters.
View DetailsAI Song Maker
AI Song Maker is an AI music generator that helps users create songs effortlessly. Compose tracks, generate AI songs, and enjoy royalty-free music creation with ease.
View Details
Wan 2.5
Wan 2.5 is a revolutionary native multimodal video generation platform. It features synchronized A/V output, 1080p HD cinematic quality, and precision image editing.
View DetailsSora 2 AI
Sora 2 AI is the next generation AI video generator, creating more realistic, controllable, and immersive videos that understand the laws of physics.
View Details
Sora 2 AI
Sora 2 AI is OpenAI's flagship model for video and audio generation, creating physics-accurate videos with synchronized dialogue, sound effects, and music.
View Details