Vectorization past dependent branches through speculation
Vectorization past dependent branches through speculation
复制标题
通过推测向量化过去的依赖分支
DOI:
--
复制
发表时间:
2013
期刊:
影响因子:
--
通讯作者:
Qing Yi
中科院分区:
文献类型:
--
作者:
Majedul Haque Sujon;R. C. Whaley;Qing Yi
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.