Make the most out of your SIMD investments: counter control flow divergence in compiled query pipelines
Increasing single instruction multiple data (SIMD) capabilities in modern hardware allows for the compilation of data-parallel query pipelines. This means GPU-alike challenges arise: control flow divergence causes the underutilization of vector-processing units. In this paper, we present efficient algorithms for the AVX-512 architecture to address this issue. These algorithms allow for the fine-grained assignment of new tuples to idle SIMD lanes. Furthermore, we present strategies for their integration with compiled query pipelines so that tuples are never evicted from registers. We evaluate our approach with three query types: (i) a table scan query based on TPC-H Query 1, that performs up to 34% faster when addressing underutilization, (ii) a hashjoin query, where we observe up to 25% higher performance, and (iii) an approximate geospatial join query, which shows performance improvements of up to 30%.
|Keywords||AVX-512, Control flow divergence, Database systems, Query compilation, Query execution, SIMD, Vectorization|
Lang, H, Passing, L.K, Kipf, A, Boncz, P.A, Neumann, T, & Kemper, A. (2019). Make the most out of your SIMD investments: counter control flow divergence in compiled query pipelines. VLDB Journal. doi:10.1007/s00778-019-00547-y