Title
Vectorization past dependent branches through speculation
Abstract
Modern architectures increasingly rely on SIMD vectorization to improve performance for floating point intensive scientific applications. However, existing compiler optimization techniques for automatic vectorization are inhibited by the presence of unknown control flow surrounding partially vectorizable computations. In this paper, we present a new approach, speculative vectorization, which speculates past dependent branches to aggressively vectorize computational paths that are expected to be taken frequently at runtime, while simply restarting the calculation using scalar instructions when the speculation fails. We have integrated our technique in an iterative optimizing compiler and have employed empirical tuning to select the profitable paths for speculation. When applied to optimize 9 floating-point benchmarks, our optimizing compiler has achieved up to 6.8X speedup for single precision and 3.4X for double precision kernels using AVX, while vectorizing some operations considered not vectorizable by prior techniques.
Year
DOI
Venue
2013
10.1109/PACT.2013.6618831
PACT
Keywords
Field
DocType
simd vectorization,speculative vectorization,vectorizable computation,double precision,optimizing compiler,empirical tuning,iterative optimizing compiler,automatic vectorization,single precision,vectorization past dependent branch,compiler optimization technique,speculation,compiler optimization,parallel processing,software architecture,vectors,atlas
Single-precision floating-point format,Computer science,Floating point,Parallel computing,Double-precision floating-point format,Vectorization (mathematics),SIMD,Optimizing compiler,Image tracing,Speedup
Conference
ISSN
ISBN
Citations 
1089-795X
978-1-4799-1021-2
4
PageRank 
References 
Authors
0.43
17
3
Name
Order
Citations
PageRank
Majedul Haque Sujon1130.94
R. Clint Whaley21101116.83
Qing Yi319011.89