TY - GEN
T1 - From relational verification to SIMD loop synthesis
AU - Barthe, Gilles
AU - Crespo, Juan Manuel
AU - Kunz, César
AU - Gulwani, Sumit
AU - Marron, Mark
PY - 2013
Y1 - 2013
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.0x-3.7x.
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.0x-3.7x.
KW - program vectorization
KW - relational verification
KW - synthesis
UR - http://www.scopus.com/inward/record.url?scp=84875205533&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84875205533&partnerID=8YFLogxK
U2 - 10.1145/2442516.2442529
DO - 10.1145/2442516.2442529
M3 - Conference contribution
AN - SCOPUS:84875205533
SN - 9781450319225
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 123
EP - 133
BT - PPoPP 2013 - Proceedings of the 2013 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
T2 - 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2013
Y2 - 23 February 2013 through 27 February 2013
ER -