Traditional vectorization techniques build a dependence graph with distance and direction information to determine whether a loop is vectorizable. Since vectorization reorders the execution of instructions across iterations, in general instructions involved in a strongly connected component (SCC) are deemed not vectorizable unless the SCC can be eliminated using techniques such as scalar expansion or privatization. Therefore, traditional vectorization techniques are limited in their ability to efficiently handle loops with dynamic cross-iteration dependencies or complex control flow interweaved within the dependence cycles. When potential dependencies do not occur very often, the end-result is under utilization of the SIMD hardware. In this paper, we propose FlexVec architecture that combines new vector instructions with novel code generation techniques to dynamically adjusts vector length for loop statements affected by cross-iteration dependencies that happen at runtime. We have designed and implemented FlexVec’s new ISA as extensions to the recently released AVX-512 ISA. We have evaluated the performance improvements enabled by FlexVec vectorization for 11 C/C++ SPEC 2006 benchmarks and 7 real applications with AVX-512 vectorization as baseline. We show that FlexVec vectorization technique produces a Geomean speedup of 9% for SPEC 2006 and a Geomean speedup of 11% for real applications.
Fri 17 JunDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 30mTalk | Transactional Data Structure Libraries Research Papers Alexander Spiegelman Technion - Israel institute of technology, Guy Golan-Gueta Yahoo Labs, Idit Keidar Technion - Israel institute of technology Media Attached | ||
11:00 30mTalk | FlexVec: Auto-Vectorization for Irregular Loops Research Papers Media Attached | ||
11:30 30mTalk | Verified Lifting of Stencil Computations Research Papers Shoaib Kamil MIT CSAIL, USA, Alvin Cheung University of Washington, Shachar Itzhaky MIT CSAIL, Armando Solar-Lezama MIT Media Attached |