Hello Tidy Bot, Andrew Wong, Kudu Jenkins, Andrew Wong, Grant Henke, Bankim 
Bhavsar,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/15634

to look at the new patch set (#3).

Change subject: columnar_serialization: use AVX2 for int32 and int64 copying
......................................................................

columnar_serialization: use AVX2 for int32 and int64 copying

This uses the AVX2 "gather" instructions to do the copying of selected
int32s and int64s. The following improvements were observed:

Int32:
  Converting 10_int32_non_null to PB (method columnar) row select rate 1: 
0.8829691 cycles/cell -> 0.8386091 cycles/cell
  Converting 10_int32_non_null to PB (method columnar) row select rate 0.8: 
1.86863074 cycles/cell -> 1.61456746 cycles/cell
  Converting 10_int32_non_null to PB (method columnar) row select rate 0.5: 
2.3829623 cycles/cell -> 2.05157198 cycles/cell
  Converting 10_int32_non_null to PB (method columnar) row select rate 0.2: 
4.15909214 cycles/cell -> 3.82449024 cycles/cell
  Converting 10_int32_0pct_null to PB (method columnar) row select rate 1: 
1.04652828 cycles/cell -> 1.01822806 cycles/cell
  Converting 10_int32_0pct_null to PB (method columnar) row select rate 0.8: 
2.10860372 cycles/cell -> 1.85333702 cycles/cell
  Converting 10_int32_0pct_null to PB (method columnar) row select rate 0.5: 
2.75141002 cycles/cell -> 2.39638206 cycles/cell
  Converting 10_int32_0pct_null to PB (method columnar) row select rate 0.2: 
4.6968821 cycles/cell -> 4.40193506 cycles/cell
  Converting 10_int32_10pct_null to PB (method columnar) row select rate 1: 
1.31809924 cycles/cell -> 1.31851512 cycles/cell
  Converting 10_int32_10pct_null to PB (method columnar) row select rate 0.8: 
2.36648378 cycles/cell -> 2.12030662 cycles/cell
  Converting 10_int32_10pct_null to PB (method columnar) row select rate 0.5: 
2.98480266 cycles/cell -> 2.7476185 cycles/cell
  Converting 10_int32_10pct_null to PB (method columnar) row select rate 0.2: 
5.0439634 cycles/cell -> 4.5842071 cycles/cell

Int64:
  Converting 10_int64_non_null to PB (method columnar) row select rate 1: 
1.32330358 cycles/cell -> 1.24855148 cycles/cell
  Converting 10_int64_non_null to PB (method columnar) row select rate 0.8: 
2.04848734 cycles/cell -> 2.12979712 cycles/cell
  Converting 10_int64_non_null to PB (method columnar) row select rate 0.5: 
2.50150968 cycles/cell -> 2.5724664 cycles/cell
  Converting 10_int64_non_null to PB (method columnar) row select rate 0.2: 
4.4513395 cycles/cell -> 4.35936382 cycles/cell
  Converting 10_int64_0pct_null to PB (method columnar) row select rate 1: 
1.5080423 cycles/cell -> 1.51448434 cycles/cell
  Converting 10_int64_0pct_null to PB (method columnar) row select rate 0.8: 
2.34286302 cycles/cell -> 2.26529584 cycles/cell
  Converting 10_int64_0pct_null to PB (method columnar) row select rate 0.5: 
2.99375316 cycles/cell -> 2.7263687 cycles/cell
  Converting 10_int64_0pct_null to PB (method columnar) row select rate 0.2: 
5.01722324 cycles/cell -> 4.71793008 cycles/cell
  Converting 10_int64_10pct_null to PB (method columnar) row select rate 1: 
1.7227708 cycles/cell -> 1.67661726 cycles/cell
  Converting 10_int64_10pct_null to PB (method columnar) row select rate 0.8: 
2.68160422 cycles/cell -> 2.50480846 cycles/cell
  Converting 10_int64_10pct_null to PB (method columnar) row select rate 0.5: 
3.29833934 cycles/cell -> 3.05940708 cycles/cell
  Converting 10_int64_10pct_null to PB (method columnar) row select rate 0.2: 
5.42127834 cycles/cell -> 4.99359244 cycles/cell

In the few places that the above indicates a regression, I looped that
same test case and found that the "after" was indeed either
indistinguishable or slightly faster. The test results just have a
little bit of noise.

Change-Id: I6c9a536b78a524e8178f5d4a0d2dea04deedbd78
---
M src/kudu/common/columnar_serialization.cc
1 file changed, 93 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/34/15634/3
--
To view, visit http://gerrit.cloudera.org:8080/15634
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6c9a536b78a524e8178f5d4a0d2dea04deedbd78
Gerrit-Change-Number: 15634
Gerrit-PatchSet: 3
Gerrit-Owner: Todd Lipcon <t...@apache.org>
Gerrit-Reviewer: Andrew Wong <andrew.w...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ban...@cloudera.com>
Gerrit-Reviewer: Grant Henke <granthe...@apache.org>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to