Wed 28 Oct 2015 13:30 - 13:52 at Grand Station 1 - 3. Verification Chair(s): Guangtai Liang

The aggressive optimization of heavily used kernels is an important problem in high-performance computing. However, both general purpose compilers and highly specialized tools such as superoptimizers often do not have sufficient static knowledge of restrictions on program inputs that could be exploited to produce the very best code. For many applications, the best possible code is conditionally correct: the optimized kernel is equal to the code that it replaces only under certain preconditions on the kernel’s inputs. The main technical challenge in producing conditionally correct optimizations is in obtaining non-trivial and useful conditions and proving conditional equivalence formally in the presence of loops. We combine abstract interpretation, decision procedures, and testing to yield a verification strategy that can address both of these problems. This approach yields a superoptimizer for x86 that in our experiments produces binaries that are often multiple times faster than those produced by production compilers.

Wed 28 Oct

oopsla2015
13:30 - 15:00: OOPSLA - 3. Verification at Grand Station 1
Chair(s): Guangtai LiangIBM Research - China
oopsla201513:30 - 13:52
Talk
Rahul SharmaStanford University, Eric SchkufzaStanford University, Berkeley ChurchillStanford University, Alex AikenStanford University
DOI
oopsla201513:52 - 14:15
Talk
Sam BlackshearUniversity of Colorado at Boulder, USA, Bor-Yuh Evan ChangUniversity of Colorado at Boulder, USA, Manu SridharanSamsung Research America
Link to publication
oopsla201514:15 - 14:37
Talk
Ravichandhran MadhavanEPFL, Switzerland, Mikaël MayerEPFL, Switzerland, Sumit GulwaniMicrosoft Research, USA, Viktor KuncakEPFL, Switzerland
Link to publication
oopsla201514:37 - 15:00
Talk
Gian NtzikImperial College London, UK, Philippa GardnerImperial College London, UK
DOI