This page answers some of the commonly asked questions about Supersonic. Have a question not answered here? File an issue on the GitHub issue tracker.
Questions:
This projects lets you integrate RL into compilers easily, regardless of their RL expertise. Currently, it includes four code optimization problems. To use SuperSonic, the compiler developer provides the action list according to the problem being tackled and a measurement interface to report metrics like code size or speedup. SuperSonic then automatically assembles an RL architecture for the targeting optimization from an extensible set of built-in RL components.
Great! Please file an issue using the GitHub issue tracker. See :doc:`contributing` for more details.
No. We think that the the gym and ray provide useful abstraction for sequential decision making. You may use any technique you wish to explore the optimization space.
The compiler itself doesn't have a signal for termination. Actions are like rewrite rules, it is up to the user to decide when no more improvement can be achieved from further rewrites. The only exception is if the compiler crashes, or the code ends up in an unexpected state - we have to abort. This happens.