Jim Apple has posted comments on this change. Change subject: Use AVX2 operations to speedup Bloom filters by 10-100%. ......................................................................
Patch Set 7: (2 comments) http://gerrit.cloudera.org:8080/#/c/3338/7/be/src/util/bloom-filter.h File be/src/util/bloom-filter.h: Line 176: if (CpuInfo::IsSupported(CpuInfo::AVX2)) { > Code-gen aside. I am interested in closing up this debate. If I use use_avx2_, and this is not as efficient as the codegen approach since the replacement for CpuInfo:IsSupported(CpuInfo::AVX2) is now further away from the actual usage of that info in Find() and Insert(), then we can change back to using CpuInfo::IsSupported in Find and Insert once the codegen patch is in. IOW, I propose to do what Mostafa is suggesting for now and change it back later if it helps performance after the codegen patch is in. Dan, Tim, does that work for you? Line 254: const bool result = _mm256_testc_si256(bucket, mask); > Did you check that AVX2 provides speedup even for highly selective filters? Yes. Those are the 'absent' lines in the benchmark file. -- To view, visit http://gerrit.cloudera.org:8080/3338 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I6fef4f6652876f8fd7e3f0e41431702380418c98 Gerrit-PatchSet: 7 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Jim Apple <[email protected]> Gerrit-Reviewer: Dan Hecht <[email protected]> Gerrit-Reviewer: Jim Apple <[email protected]> Gerrit-Reviewer: Mostafa Mokhtar <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]> Gerrit-HasComments: Yes
