columnar icon indicating copy to clipboard operation
columnar copied to clipboard

Improve filtering performance by using SIMD predication

Open githubmanticore opened this issue 2 years ago • 1 comments

When columnar storage processes a filter, there are two heavy stages - unpacking data and processing the filter. Filtering performance can be improved by replacing conditions like if ( ( i==(ACCESSOR_VALUES)m_tValue ) ^ (!EQ) ) with predication using _mm256_cmpeq_epi32 and similar intrinsics.

githubmanticore avatar Jul 31 '23 12:07 githubmanticore

➤ Ilya Kuznetsov commented:

We will also need to add specializations for range filters to replace the generic if ( RANGE_EVAL::Eval ( (VALUES)i, (VALUES)m_iMinValue, (VALUES)m_iMaxValue ) ) that we have now.

githubmanticore avatar Jul 31 '23 12:07 githubmanticore