Daniel Becker has uploaded a new patch set (#21). ( 
http://gerrit.cloudera.org:8080/13807 )

Change subject: IMPALA-8741: Speed up bit unpacking by vectorisation
......................................................................

IMPALA-8741: Speed up bit unpacking by vectorisation

Adding a vectorised implementation to bit unpacking using AVX, AVX2 and
BMI2 instructions through compiler intrinsics.

Vectorised bit unpacking is implemented for bit widths from 1 to 16.
Higher bit widths would not benefit from this vectorisation algorithm.

We check at runtime whether the required instructions are available on
the CPU and fall back to the scalar implementation if not.

The vectorised unpacking functions are in the file
be/src/util/bit-packing-vectorized.h, which is generated by the python
script in be/src/util/vectorised_bit_unpacking_generator.py.

Also adding benchmarks comparing the scalar and the vectorised
implementations.

Testing:
  - Added tests for the vectorised unpacking implementations.

Change-Id: I9e452a547973778bbd8d768c608e1a32e948f947
---
M be/src/benchmarks/bit-packing-benchmark.cc
M be/src/exec/parquet/parquet-bool-decoder.h
M be/src/util/bit-packing-test.cc
A be/src/util/bit-packing-vectorized.generated.h
M be/src/util/bit-packing.cc
M be/src/util/bit-packing.h
M be/src/util/bit-packing.inline.h
M be/src/util/bit-stream-utils-test.cc
M be/src/util/bit-stream-utils.h
M be/src/util/cpu-info.cc
M be/src/util/cpu-info.h
A be/src/util/vectorised_bit_unpacking_generator.py
12 files changed, 6,194 insertions(+), 99 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/07/13807/21
--
To view, visit http://gerrit.cloudera.org:8080/13807
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9e452a547973778bbd8d768c608e1a32e948f947
Gerrit-Change-Number: 13807
Gerrit-PatchSet: 21
Gerrit-Owner: Daniel Becker <daniel.bec...@cloudera.com>
Gerrit-Reviewer: Csaba Ringhofer <csringho...@cloudera.com>
Gerrit-Reviewer: Daniel Becker <daniel.bec...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>

Reply via email to