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]

Reply via email to