Closed AndreaGuarracino closed 2 years ago
I guess it won't work but I will be able to say for sure at Wednesday. The current CI check on aarch64 passes because it uses Release mode.
Thank you for your reply, @martin-g. I would like to know what it happens with both
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build -- -j 3
and
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic && cmake --build build -- -j 3
On my system (Ubuntu 22.04, AMD Ryzen5), I need this branch (still_generic
) to be able to compile seqwish
in Generic
mode. This also allows pggb
to pass CI here https://github.com/pangenome/pggb/pull/240.
Hi @AndreaGuarracino !
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build -- -j 3
still passes!
but
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic && cmake --build build -- -j 3
fails with:
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic && cmake --build build -- -j 3
-- CMAKE_BUILD_TYPE: Generic
-- CMAKE_SYSTEM_NAME: Linux
-- Found OpenMP_C: -fopenmp
-- Found OpenMP_CXX: -fopenmp
-- Found OpenMP: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/tmp/seqwish/build
[ 7%] Built target sdsl-lite
[ 21%] Built target paryfor
[ 21%] Built target tayweeargs
[ 28%] Built target gzipreader
[ 39%] Built target mmmulti
[ 42%] Built target atomicqueue
[ 49%] Built target iitii
[ 55%] Built target atomicbitvector
[ 62%] Built target bbhash
[ 69%] Built target ips4o
[ 76%] Built target ska
[ 82%] Built target mio
[ 83%] Building CXX object CMakeFiles/seqwish.dir/src/utils.cpp.o
[ 84%] Building CXX object CMakeFiles/seqwish.dir/src/tempfile.cpp.o
[ 84%] Building CXX object CMakeFiles/seqwish.dir/src/main.cpp.o
cc1plus: error: unknown value ‘haswell’ for ‘-march’
cc1plus: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a native
cc1plus: error: unknown value ‘haswell’ for ‘-march’
cc1plus: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a native
make[2]: *** [CMakeFiles/seqwish.dir/build.make:63: CMakeFiles/seqwish.dir/src/utils.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1plus: error: unknown value ‘haswell’ for ‘-march’
cc1plus: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a native
make[2]: *** [CMakeFiles/seqwish.dir/build.make:76: CMakeFiles/seqwish.dir/src/tempfile.cpp.o] Error 1
make[2]: *** [CMakeFiles/seqwish.dir/build.make:89: CMakeFiles/seqwish.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:435: CMakeFiles/seqwish.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
As @martin-g guessed the build fails when the build type is anything different than Release
on Linux ARM64 (Ubuntu 20.04.5)
-march=haswell
allows us to compile seqwish
in Generic
mode (that is, without -march=native
, which is too bounded to the system where the tool is compiled) when building the Docker
image of pggb
(https://github.com/pangenome/pggb/blob/master/Dockerfile#L60). I wonder if such pggb
's Docker
images would run on your systems.
For now, we go this way, hoping for more general solutions in the future. Thank you very much for your feedback!
@AndreaGuarracino I will propose a PR where haswell
will be set as a default but the user could override it with cmake -D...
. Coming in few minutes!
@julien-faye, @martin-g, could you please check if you are able to build such a branch with your Linux ARM64 systems?