TY - JOUR
T1 - From relational verification to SIMD loop synthesis
AU - Barthe, Gilles
AU - Crespo, Juan Manuel
AU - Gulwani, Sumit
AU - Kunz, César
AU - Marron, Mark
PY - 2013/8
Y1 - 2013/8
N2 - Existing pattern-based compiler technology is unable to effectively exploit the full potential of SIMD architectures. We present a new program synthesis based technique for auto-vectorizing performance critical innermost loops. Our synthesis technique is applicable to a wide range of loops, consistently produces performant SIMD code, and generates correctness proofs for the output code. The synthesis technique, which leverages existing work on relational verification methods, is a novel combination of deductive loop restructuring, synthesis condition generation and a new inductive synthesis algorithm for producing loop-free code fragments. The inductive synthesis algorithm wraps an optimized depth-first exploration of code sequences inside a CEGIS loop. Our technique is able to quickly produce SIMD implementations (up to 9 instructions in 0.12 seconds) for a wide range of fundamental looping structures. The resulting SIMD implementations outperform the original loops by 2.0×-3.7×.
AB - Existing pattern-based compiler technology is unable to effectively exploit the full potential of SIMD architectures. We present a new program synthesis based technique for auto-vectorizing performance critical innermost loops. Our synthesis technique is applicable to a wide range of loops, consistently produces performant SIMD code, and generates correctness proofs for the output code. The synthesis technique, which leverages existing work on relational verification methods, is a novel combination of deductive loop restructuring, synthesis condition generation and a new inductive synthesis algorithm for producing loop-free code fragments. The inductive synthesis algorithm wraps an optimized depth-first exploration of code sequences inside a CEGIS loop. Our technique is able to quickly produce SIMD implementations (up to 9 instructions in 0.12 seconds) for a wide range of fundamental looping structures. The resulting SIMD implementations outperform the original loops by 2.0×-3.7×.
KW - Deductive Synthesis
KW - Inductive Synthesis
KW - Program Synthesis
KW - Program Vectorization
KW - Relational Program Verification
UR - https://www.scopus.com/pages/publications/84885231024
UR - https://www.scopus.com/pages/publications/84885231024#tab=citedBy
U2 - 10.1145/2517327.2442529
DO - 10.1145/2517327.2442529
M3 - Article
AN - SCOPUS:84885231024
SN - 1523-2867
VL - 48
SP - 123
EP - 133
JO - ACM SIGPLAN Notices
JF - ACM SIGPLAN Notices
IS - 8
ER -