GPU-Accelerated Decoding of Integer Lists

An inverted index is the basic data structure used in most current large-scale information retrieval systems. It can be modeled as a collection of sorted sequences of integers. Many compression techniques for inverted indexes have been studied in the past, with some of them reaching tremendous decompression speeds through the use of SIMD instructions available on modern CPUs. While there has been some work on query processing algorithms for Graphics Processing Units (GPUs), little of it has focused on how to efficiently access compressed index structures, and we see some potential for significant improvements in decompression speed. In this paper, we describe and implement two encoding schemes for index decompression on GPU architectures. Their format and decoding algorithm is adapted from existing CPU-based compression methods to exploit the execution model and memory hierarchy offered by GPUs. We show that our solutions, GPU-BP and GPU-VByte, achieve significant speedups over their already carefully optimized CPU counterparts.

[1]  Daniel Lemire,et al.  Stream VByte: Faster byte-oriented integer compression , 2017, Inf. Process. Lett..

[2]  Gang Wang,et al.  GPU-Accelerated Block-Max Query Processing , 2017, ICA3PP.

[3]  Andrew Trotman,et al.  In Vacuo and In Situ Evaluation of SIMD Codecs , 2016, ADCS.

[4]  Yang Liu,et al.  Griffin: uniting CPU and GPU in information retrieval systems for intra-query parallelism , 2018, PPoPP.

[5]  Torsten Suel,et al.  An Experimental Study of Index Compression and DAAT Query Processing Methods , 2019, ECIR.

[6]  Leonid Boytsov,et al.  Decoding billions of integers per second through vectorization , 2012, Softw. Pract. Exp..

[7]  Andrew Trotman,et al.  Elias Revisited: Group Elias SIMD Coding , 2018, ADCS.

[8]  Alistair Moffat,et al.  Index compression using 64‐bit words , 2010, Softw. Pract. Exp..

[9]  Fabrizio Silvestri,et al.  Sorting Out the Document Identifier Assignment Problem , 2007, ECIR.

[10]  William J. Dally,et al.  The GPU Computing Era , 2010, IEEE Micro.

[11]  Torsten Suel,et al.  Using graphics processors for high-performance IR query processing , 2008, WWW.

[12]  Daniel Lemire,et al.  Vectorized VByte Decoding , 2015, ArXiv.

[13]  Veronica Gil Costa,et al.  A Parallel Implementation of WAND on GPUs , 2018, 2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP).

[14]  Alexander A. Stepanov,et al.  SIMD-based decoding of posting lists , 2011, CIKM '11.

[15]  Jeffrey Dean,et al.  Challenges in building large-scale information retrieval systems: invited talk , 2009, WSDM '09.

[16]  Gang Wang,et al.  Efficient lists intersection by CPU-GPU cooperative computing , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).