This is a preliminary project plan.
Week | Item |
1-2 |
Literature review. Evaluate existing implementation of superoptimizers. This should better define the scope of the project. The search space and type of instruction sequences to be considered should be defined by this point. The benchmarks and method of evaluation will also be selected (likely benchmarks used previously?). The method of verifying that the selected instruction sequence is functionally equivalent to the input sequence is selected. This will heavily influence what type of instruction sequences are considered. |
3-4 |
Instruction enumerator and testing. Implementation of a framework to generate instruction sequences and run/simulate them. |
5 |
GCC Cauldron Away presenting previous work at GCC Cauldron. |
6-7 |
Cost function development. This considers how the energy of a short sequence of instructions should be collected. Options: energy model, running of target sequence on hardware (many times to allow for data collection), running target sequence within an existing benchmark, to measure improvement. |
8-10 |
Evaluation. Run the superoptimizer on benchmarks, and analyse its output. |
11-13 |
Write up. Academic paper write up. |