Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve filtering performance by using SIMD predication #26

Open
githubmanticore opened this issue Jul 31, 2023 · 1 comment
Open

Improve filtering performance by using SIMD predication #26

githubmanticore opened this issue Jul 31, 2023 · 1 comment
Assignees

Comments

@githubmanticore
Copy link
Collaborator

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
Copy link
Collaborator Author

➤ 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants