通过向量化每秒解码数十亿个整数
Decoding billions of integers per second through vectorization
摘要:
在许多重要的应用程序中--如搜索引擎和关系数据库系统--数据以整数数组的形式存储。这些数组的编码和最重要的解码消耗了相当多的CPU时间。因此,已经做出了大量努力来降低与压缩和解压缩相关联的成本。特别是,研究人员已经利用了现代处理器和SIMD指令的超标量性质。尽管如此,我们引入了一种新的矢量化方案,称为SIMD-BP 128,改进了以前提出的矢量化方法。它的速度几乎是以前桌面处理器上最快的方案(varint-G8 IU和PFOR)的两倍。同时,SIMD-BP 128每个整数最多可节省2位。为了更好的压缩,我们提出了另一种新的矢量化方案(SIMD-FastPFOR),其压缩比在最先进方案(Simple-8b)的10%以内,同时在解码过程中快两倍。
英文摘要:
In many important applications -- such as search engines and relational database systems -- data is stored in the form of arrays of integers. Encoding and, most importantly, decoding of these arrays consumes considerable CPU time. Therefore, substantial effort has been made to reduce costs associated with compression and decompression. In particular, researchers have exploited the superscalar nature of modern processors and SIMD instructions. Nevertheless, we introduce a novel vectorized scheme called SIMD-BP128 that improves over previously proposed vectorized approaches. It is nearly twice as fast as the previously fastest schemes on desktop processors (varint-G8IU and PFOR). At the same time, SIMD-BP128 saves up to 2 bits per integer. For even better compression, we propose another new vectorized scheme (SIMD-FastPFOR) that has a compression ratio within 10% of a state-of-the-art scheme (Simple-8b) while being two times faster during decoding.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。