(L-R) Supriya Rao (2nd place overall), Earlence Fernandes
(1st place, benchmark 1), Ari Chivukula (1st place overall and grand
champion, 1st place on benchmarks 3 and 4), Justin Paupore (1st place
on benchmark 2), Qi Chen (3rd place overall)
Students in Prof. Scott Mahlke's Advanced Compilers course (EECS 583) recently competed in
the 2012 Annual Code Optimization contest to create a compiler that
generates the fastest applications.
Under the contest rules, 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 undergraduate Ari Chivukula, who achieved a geometric mean of
1.5x speedup on the four benchmarks and a class high of 3.5x on one of
the benchmarks. CSE graduate students Supriya Rao and Qi Chen placed
2nd and 3rd in the overall competition. Congratulations also go to
Justin Paupore and Earlence Fernandes, who scored first place finishes
on individual benchmarks.
Posted: December 4, 2012