Vectorized VByte Decoding
Jeff Plaisance, Nathan Kurz, Daniel Lemire

TL;DR
This paper introduces Masked VByte, a SIMD-accelerated decoding method that significantly speeds up traditional VByte integer decoding, making it more competitive for performance-critical applications.
Contribution
The paper presents a novel SIMD-based decoding algorithm for VByte that achieves 2 to 4 times faster performance than traditional scalar decoders.
Findings
Masked VByte is 2-4 times faster than scalar VByte decoding.
The new method reduces branch mispredictions during decoding.
It restores VByte's competitiveness in speed for critical applications.
Abstract
We consider the ubiquitous technique of VByte compression, which represents each integer as a variable length sequence of bytes. The low 7 bits of each byte encode a portion of the integer, and the high bit of each byte is reserved as a continuation flag. This flag is set to 1 for all bytes except the last, and the decoding of each integer is complete when a byte with a high bit of 0 is encountered. VByte decoding can be a performance bottleneck especially when the unpredictable lengths of the encoded integers cause frequent branch mispredictions. Previous attempts to accelerate VByte decoding using SIMD vector instructions have been disappointing, prodding search engines such as Google to use more complicated but faster-to-decode formats for performance-critical code. Our decoder (Masked VByte) is 2 to 4 times faster than a conventional scalar VByte decoder, making the format once…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAlgorithms and Data Compression · Advanced Data Storage Technologies · Parallel Computing and Optimization Techniques
