mccullocht opened a new pull request, #13133: URL: https://github.com/apache/lucene/pull/13133
### Vector accelerated GroupVInt decoder for MemorySegmentIndexInput Use Vector APIs when decoding GroupVInt for `MemorySegmentIndexInput`. In most cases we can read the maximum group length (16 bytes) from the segment and then use a small static table and `Vector.rearrange()` to produce the output `long` values. This is about 35-40% faster than the existing scalar/unaligned load strategy. Benchmarks run on M1 Mac ``` main Benchmark (size) Mode Cnt Score Error Units GroupVIntBenchmark.benchMMapDirectoryInputs_readGroupVInt 64 thrpt 5 10.031 ± 0.094 ops/us group-varint-simd Benchmark (size) Mode Cnt Score Error Units GroupVIntBenchmark.benchMMapDirectoryInputs_readGroupVInt 64 thrpt 5 14.666 ± 0.267 ops/us ``` Benchmarks run on github codespace (x86_64) ``` main Benchmark (size) Mode Cnt Score Error Units GroupVIntBenchmark.benchMMapDirectoryInputs_readGroupVInt 64 thrpt 5 8.138 ± 0.223 ops/us group-varint-simd Benchmark (size) Mode Cnt Score Error Units GroupVIntBenchmark.benchMMapDirectoryInputs_readGroupVInt 64 thrpt 5 11.095 ± 0.487 ops/us ``` <!-- If this is your first contribution to Lucene, please make sure you have reviewed the contribution guide. https://github.com/apache/lucene/blob/main/CONTRIBUTING.md --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
