Back to Search Start Over

Vectorizing programs with IF-statements for processors with SIMD extensions.

Authors :
Sun, Huihui
Gorlatch, Sergei
Zhao, Rongcai
Source :
Journal of Supercomputing. Jun2020, Vol. 76 Issue 6, p4731-4746. 16p.
Publication Year :
2020

Abstract

Vectorization of programs is crucial for achieving high performance on modern processors with SIMD (Single Instruction Multiple Data) extensions. Programs with IF-statements suffer from control flow divergence that seriously complicates automatic vectorization. Therefore, contemporary compilers employ the IF-conversion approach to convert control flow to data flow, which relies on using predicated execution techniques (i.e., masked or select SIMD instructions). In this paper, we enhance the compiler's capabilities to generate efficiently vectorized code for processors without masked instructions. We improve the state of the art in program vectorization by developing a novel approach—IF-select transformation—which is applicable to arbitrarily nested IF-statements. We implement our approach in the open-source Open64 compiler and evaluate its performance on the SW26010 processor used in the Sunway TaihuLight supercomputer (currently #3 in the TOP500 list) that does not support masked instructions. We extend our vectorization approach by providing an additional LLVM optimization pass to reduce the amount of masked memory accesses on processors without masked instructions, e.g., IBM Power8 and ARMCortex-A8. Experimental results demonstrate the performance advantages of the suggested vectorization techniques. [ABSTRACT FROM AUTHOR]

Details

Language :
English
ISSN :
09208542
Volume :
76
Issue :
6
Database :
Academic Search Index
Journal :
Journal of Supercomputing
Publication Type :
Academic Journal
Accession number :
143493083
Full Text :
https://doi.org/10.1007/s11227-019-03057-4