dnbaker / dashing

Fast and accurate genomic distances using HyperLogLog
GNU General Public License v3.0
160 stars 11 forks source link

Build failure with AVX512 #6

Closed kloetzl closed 5 years ago

kloetzl commented 5 years ago

After cloning and updating the build fails at bonsai/hll/vec/vec.h:175 because _mm512_mullo_si512 is not a valid intrinsic. This then leads to a huge number of follow up errors.

dnbaker commented 5 years ago

Thank you! I haven't been testing on AVX512 recently, and I must have introduced that bug. It should be _mm512_mullo_epi64. I'll correct this today (it shouldn't take long) and add tests for AVX512 to CI so that this doesn't happen again.

dnbaker commented 5 years ago

Sorry for the delay, the git issue took up a lot longer than I had expected. (But that's fixed, too!)

I've updated vec, bonsai, and dashing and successfully built dashing on a Skylake cluster. Would you be willing to give it another shot?

kloetzl commented 5 years ago

With v0.1.1-22-gd00454a I get the following error:

In file included from bonsai/hll/hll.h:3,
                 from ./bonsai/bonsai/include/popcnt.h:8,
                 from ./bonsai/bonsai/include/util.h:35,
                 from src/dashing.cpp:4:
bonsai/hll/common.h: In function ‘sketch::common::VType sketch::common::multinv::f64(sketch::common::VType, sketch::common::VType)’:
bonsai/hll/common.h:327:22: error: ‘_mm_mullo_epi64’ is not a member of ‘vec’
         p1[i] = vec::_mm_mullo_epi64(p2[i], _mm_sub_epi64(_mm_set1_epi64x(2), vec::_mm_mullo_epi64(p1[i], p2[i])));
dnbaker commented 5 years ago

Thanks for the catch! This is an issue that wasn't picked up by the compilers I was using, as the multinv with VType wasn't being used, but it's now been corrected as of v0.1.1-25-gb572575.

kloetzl commented 5 years ago

Now it builds; Thanks for the quick help!