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

Parsing array of varints optimizations #13256

Closed

Conversation

palade
Copy link

@palade palade commented Jul 10, 2023

This PR has the changes for parsing array of varints. Most of the changes originate in the ReadPackedVarint and ReadPackedVarintArray functions. The core of optimizations is to break the one-at-a-time parsing in the original code into a series of steps to leverage SIMD instructions.

@palade palade requested a review from a team as a code owner July 10, 2023 17:08
@palade palade requested review from acozzette and removed request for a team July 10, 2023 17:08
@acozzette
Copy link
Member

@martijnvels

@acozzette
Copy link
Member

@palade Thank you for the pull request, but unfortunately I don't think we will be able to accept it at this time. We are not yet set up to use AVX 512 BMI, so we're not in a good position to maintain code that uses it. This might be something we could accept in the future though, especially if we can quantify the performance benefits in production.

@acozzette
Copy link
Member

Actually I heard from @fowles that AVX 512 instructions cause modern CPUs to downclock, so that problem will likely prevent us from ever using these instructions for varint parsing.

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

Successfully merging this pull request may close these issues.

None yet

2 participants