https://github.com/kmheckel/evo_compiler
Using evolutionary strategies as an alternative for reinforcement learning in compiler code optimization control
https://github.com/kmheckel/evo_compiler
compiler-optimization jax neuroevolution
Last synced: about 2 months ago
JSON representation
Using evolutionary strategies as an alternative for reinforcement learning in compiler code optimization control
- Host: GitHub
- URL: https://github.com/kmheckel/evo_compiler
- Owner: kmheckel
- Created: 2023-09-30T09:01:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-01T21:38:55.000Z (over 1 year ago)
- Last Synced: 2023-10-02T00:14:48.147Z (over 1 year ago)
- Topics: compiler-optimization, jax, neuroevolution
- Language: Jupyter Notebook
- Homepage: https://doi.org/10.1145/3583133.3596380
- Size: 1020 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Neuroevolution for Compiler Code Optimization Control
This repo contains work performed for a workshop paper presented at GECCO 2023.
The accompanying PDF is the longer, non-printed manuscript that was submitted as part of the MSc in Artificial Intelligence and Adaptive Systems.This project uses FAIR's/Meta Research's CompilerGym environment in combination with Ray and Evosax in order to evolve neural network policies for optimizing binary executables for minimum code size during compilation.
```
@inproceedings{10.1145/3583133.3596380,
author = {Heckel, Kade},
title = {Neuroevolutionary Compiler Control for Code Optimization},
year = {2023},
isbn = {9798400701207},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3583133.3596380},
doi = {10.1145/3583133.3596380},
abstract = {The optimization performed by compilers when generating executable programs is critical for software performance yet tuning this process to maximize efficiency is difficult due to the large number of possible modifications and the almost limitless number of potential input programs. To promote the application of artificial intelligence and machine learning to this challenge, Facebook Research released Compiler Gym[1], a reinforcement learning environment to allow the training of agents to perform compiler optimization control on real C/C++ programs. Whereas previously published approaches use techniques such as Proximal Policy Optimization or Deep Q Networks, this work utilizes neuroevolution and achieves competitive performance on the cBench-v1[2] program set while demonstrating the highly adaptive properties of the neuroevolution approach.},
booktitle = {Proceedings of the Companion Conference on Genetic and Evolutionary Computation},
pages = {2362–2365},
numpages = {4},
keywords = {compilers, neuroevolution},
location = {Lisbon, Portugal},
series = {GECCO '23 Companion}
}
```