Top students recognized in EECS 583 Optimization Contest
Five students take compiler optimizations to a new level with speculative loop optimization
Students in Prof. Scott Mahlke’s Fall 2019 EECS 583 (Advanced Compilers) course competed in the Annual Code Optimization contest to create a compiler that generates the fastest applications. Everyone starts with the base LLVM compiler system and must design and implement their own version of speculative loop invariant code motion or speculative LICM. LICM is an optimization that eliminates instructions from frequently executed loops to improve performance. Speculative LICM goes one step further using program profiling data to remove instructions that are statistically invariant. Speculative LICM creates many more optimization opportunities, but students must be careful to ensure that the application still executes properly by checking for mis-speculations and repairing execution when the application does not behave as they predicted it would.
The students were judged on four compute-intensive benchmarks. The first criteria was that all the applications had to run correctly. Then, highest performance was used to select the winner. The overall winner was CSE graduate student Jacob Hage, who achieved a geometric mean of 5.9x speedup on the four benchmarks. CSE undergraduate student Xingyu Wang placed second with a speedup of 5.6x. Rounding out the top five winners were CSE graduate students Bing Schaefer, Benjamin Reeves, and Gefei Zuo. A hearty congratulations to all the winners!