[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Help] Could someone please have a look at gmap build failure



Hi,

I think the same way. The code has multiple levels of vector extensions: SSE2, SSE3, AVX... AVX512. The code has macros to define the data types according to the selected extension. It's very possible that they focused on SSE3 or AVX (which are already the minimum supported by any machine) and neglected to test SSE2.

I can also take a look. Additionally, since it supports up to AVX512, it would be good to create multiple binaries (as we did in VeryFastTree) with different levels so that modern hardware can take advantage of them while preserving compatibility.


El jue, 13 jul 2023 a las 9:36, Michael R. Crusoe (<michael.r.crusoe@gmail.com>) escribió:
The real error is at

gcc -DHAVE_CONFIG_H -I.   -Wdate-time -D_FORTIFY_SOURCE=2   -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -DGSNAP=1 -mpopcnt -DHAVE_SSE2=1 -msse2 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -mno-avx2 -g -O2 -ffile-prefix-map=/builds/med-team/gmap/debian/output/source_dir=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gsnap_sse2-intersect-uint2.o `test -f 'intersect-uint2.c' || echo './'`intersect-uint2.c
intersect-simd.c: In function 'v1':
intersect-simd.c:242:8: warning: implicit declaration of function '_mm_lddqu_si128'; did you mean '_mm_loadu_si128'? [-Wimplicit-function-declaration]
  242 |   F0 = _mm_lddqu_si128((const __m128i *)(freq));
      |        ^~~~~~~~~~~~~~~
      |        _mm_loadu_si128

I don't think upstream tested the SSE2 build recently; I'm looking at this now

On Wed, Jul 12, 2023 at 2:01 PM Andreas Tille <andreas@an3as.eu> wrote:
Hi,

I admit I'm bad in such hardware internals that seem to break the
build of gmap:

intersect-uint2.c:409:21: error: incompatible types when initializing type '__m128i' using type 'int'
  409 |         __m128i p = _mm_shuffle_epi8(v_a, * (__m128i *) &(shuffle_mask16[r*16]));
      |                     ^~~~~~~~~~~~~~~~
intersect-uint2.c:427:17: error: incompatible types when assigning to type '__m128i' from type 'int'
  427 |           v_b = _mm_lddqu_si128((const __m128i *) &B[i_b]);
      |                 ^~~~~~~~~~~~~~~

See
   https://salsa.debian.org/med-team/gmap/-/jobs/4423598
for the full build log.

Any help would be welcome
    Andreas.

--
http://fam-tille.de


Reply to: