Open Xiaojun928 opened 1 year ago
Dear @Xiaojun928,
What C/C++ compilers are you using?
Best, Sergei
Hi Sergei,
Thanks for your quick reply. I am using GCC (g++) as the compiler.
Best, Xiaojun
And the version is 6.1.0
Dear @Xiaojun928,
Looks like this is a GCC bug (missing intrinsics) for versions prior to version 8 (the current version is 12+). Is it possible for you to upgrade to a newer GCC version?
Best, Sergei
Dear Sergei,
Thanks for your advice. I cannot upgrade gcc without root privilege. I also tried to install a newer one but failed. So I compiled hyphy-develop on another Ubuntu OS with a newer GCC (9.3.0), but the error persists.
$ cmake ./
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_AVX_EXTENSIONS
-- Performing Test HAVE_AVX_EXTENSIONS - Success
-- Performing Test HAVE_FMA3
-- Performing Test HAVE_FMA3 - Success
-- Performing Test HAVE_NEON_EXTENSIONS
-- Performing Test HAVE_NEON_EXTENSIONS - Failed
Set default compiler flags to -fsigned-char -O3 -std=c++14 -g -march=native -mtune=native -mavx2 -mfma
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found suitable version "1.2.11", minimum required is "1.2.9")
Node not installed; API documentation will not be generated
-- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS)
-- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS)
-- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xiaojun/hyphy-develop
$ make -j MP
Scanning dependencies of target hyphy
[ 0%] Building CXX object CMakeFiles/hyphy.dir/src/core/_hyExecutionContext.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllist.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlan.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlanhelpers.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/alignment.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistxl_iterator.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistx_iterator.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistxl.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlanruntime.cpp.o
[ 8%] Building CXX object CMakeFiles/hyphy.dir/src/core/associative_list.cpp.o
[ 12%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistx.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlan2.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/calcnode.cpp.o
[ 12%] Building CXX object CMakeFiles/hyphy.dir/src/core/baseobj.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/category.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/constant.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/dataset_filter.cpp.o
[ 28%] Building CXX object CMakeFiles/hyphy.dir/src/core/dataset_filter_numeric.cpp.o
[ 28%] Building CXX object CMakeFiles/hyphy.dir/src/core/dataset.cpp.o
[ 28%] Building CXX object CMakeFiles/hyphy.dir/src/core/fisher_exact.cpp.o
[ 28%] Building CXX object CMakeFiles/hyphy.dir/src/core/formula.cpp.o
[ 32%] Building CXX object CMakeFiles/hyphy.dir/src/core/formula_parsing_context.cpp.o
[ 32%] Building CXX object CMakeFiles/hyphy.dir/src/core/fstring.cpp.o
[ 32%] Building CXX object CMakeFiles/hyphy.dir/src/core/global_object_lists.cpp.o
[ 32%] Building CXX object CMakeFiles/hyphy.dir/src/core/hbl_env.cpp.o
[ 36%] Building CXX object CMakeFiles/hyphy.dir/src/core/global_things.cpp.o
[ 40%] Building CXX object CMakeFiles/hyphy.dir/src/core/likefunc.cpp.o
[ 44%] Building CXX object CMakeFiles/hyphy.dir/src/core/list.cpp.o
[ 44%] Building CXX object CMakeFiles/hyphy.dir/src/core/likefunc2.cpp.o
[ 44%] Building CXX object CMakeFiles/hyphy.dir/src/core/mathobj.cpp.o
[ 44%] Building CXX object CMakeFiles/hyphy.dir/src/core/likefuncocl.cpp.o
[ 44%] Building CXX object CMakeFiles/hyphy.dir/src/core/matrix.cpp.o
[ 44%] Building CXX object CMakeFiles/hyphy.dir/src/core/nexus.cpp.o
[ 48%] Building CXX object CMakeFiles/hyphy.dir/src/core/matrix_mult.cpp.o
[ 48%] Building CXX object CMakeFiles/hyphy.dir/src/core/operation.cpp.o
[ 52%] Building CXX object CMakeFiles/hyphy.dir/src/core/ntuplestorage.cpp.o
[ 56%] Building CXX object CMakeFiles/hyphy.dir/src/core/parser2.cpp.o
[ 56%] Building CXX object CMakeFiles/hyphy.dir/src/core/parser.cpp.o
[ 56%] Building CXX object CMakeFiles/hyphy.dir/src/core/simplelist.cpp.o
[ 56%] Building CXX object CMakeFiles/hyphy.dir/src/core/stack.cpp.o
[ 60%] Building CXX object CMakeFiles/hyphy.dir/src/core/site.cpp.o
[ 60%] Building CXX object CMakeFiles/hyphy.dir/src/core/string_file_wrapper.cpp.o
[ 64%] Building CXX object CMakeFiles/hyphy.dir/src/core/string_buffer.cpp.o
[ 60%] Building CXX object CMakeFiles/hyphy.dir/src/core/polynoml.cpp.o
[ 64%] Building CXX object CMakeFiles/hyphy.dir/src/core/strings.cpp.o
[ 68%] Building CXX object CMakeFiles/hyphy.dir/src/core/time_difference.cpp.o
[ 72%] Building CXX object CMakeFiles/hyphy.dir/src/core/tree.cpp.o
[ 72%] Building CXX object CMakeFiles/hyphy.dir/src/core/translation_table.cpp.o
[ 72%] Building CXX object CMakeFiles/hyphy.dir/src/core/tree_evaluator.cpp.o
[ 72%] Building CXX object CMakeFiles/hyphy.dir/src/core/topology.cpp.o
[ 76%] Building CXX object CMakeFiles/hyphy.dir/src/core/tree_iterator.cpp.o
[ 76%] Building CXX object CMakeFiles/hyphy.dir/src/core/trie.cpp.o
[ 76%] Building CXX object CMakeFiles/hyphy.dir/src/core/trie_iterator.cpp.o
[ 80%] Building CXX object CMakeFiles/hyphy.dir/src/core/variable.cpp.o
[ 80%] Building CXX object CMakeFiles/hyphy.dir/src/core/variablecontainer.cpp.o
[ 80%] Building CXX object CMakeFiles/hyphy.dir/src/core/vector.cpp.o
[ 84%] Building CXX object CMakeFiles/hyphy.dir/src/new/bayesgraph.cpp.o
[ 84%] Building CXX object CMakeFiles/hyphy.dir/src/new/bayesgraph2.cpp.o
[ 84%] Building CXX object CMakeFiles/hyphy.dir/src/new/bgm2.cpp.o
[ 88%] Building CXX object CMakeFiles/hyphy.dir/src/new/scfg.cpp.o
[ 92%] Building C object CMakeFiles/hyphy.dir/contrib/SQLite-3.8.2/sqlite3.c.o
[ 92%] Building CXX object CMakeFiles/hyphy.dir/src/new/bgm.cpp.o
[ 92%] Building CXX object CMakeFiles/hyphy.dir/src/utils/hyphyunixutils.cpp.o
[ 92%] Building CXX object CMakeFiles/hyphy.dir/src/contrib/mersenne_twister.cpp.o
[ 96%] Building CXX object CMakeFiles/hyphy.dir/src/contrib/regex.cpp.o
[ 96%] Building CXX object CMakeFiles/hyphy.dir/src/mains/unix.cpp.o
/home/xiaojun/hyphy-develop/src/core/matrix_mult.cpp: In function ‘void _hy_matrix_multiply_4x4x2(double*, double*, double*, int, bool)’:
/home/xiaojun/hyphy-develop/src/core/matrix_mult.cpp:2624:10: error: ‘_mm256_loadu2_m128d’ was not declared in this scope; did you mean ‘_mm256_loadu_si256’?
2624 | B1 = _mm256_loadu2_m128d (B,B); // 00,01 x 2
| ^~~~~~~~~~~~~~~~~~~
| _mm256_loadu_si256
make[3]: *** [CMakeFiles/hyphy.dir/build.make:479: CMakeFiles/hyphy.dir/src/core/matrix_mult.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/Makefile2:84: CMakeFiles/hyphy.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:307: CMakeFiles/MP.dir/rule] Error 2
make: *** [Makefile:279: MP] Error 2
Best, Xiaojun
Dear @Xiaojun928,
Try version 2.5.46 (just released). I replaced _mm256_loadu2_m128d
with a different instruction that is supported by older (pre 10) GCC versions.
Best, Sergei
Dear Sergei,
Many thanks for your help! I downloaded the latest version and complied it by following the guide here, while the same error persists for make -j MP
.
Since my goal is to using modules in hyphy-analyses, I tried to build hyphy
form source by following your guide here.
git clone https://github.com/veg/hyphy.git
cd hyphy
cmake .
make install
As make -j MP
was skipped this time, no error was reported. Then the modules in HyPhy standalone analyses could work now.
It seems that make -j MP
for hyphy-develop
is not neccessary. Alternatively, building hyphy
from source is enough if we want to use modules in Hyphy analyses? Please correct me if I am wrong. Thanks a lot!
Best, Xiaojun
Dear @Xiaojun928,
My apologies. I managed not to commit the compilation fix to 2.5.46
. It is in the develop
branch now. Please give it a try
git clone https://github.com/veg/hyphy.git
cd hyphy
git checkout develop
cmake .
make install
Best, Sergei
Dear Sergei,
Thanks a lot for your help!
I tried as you suggested, but I failed to make install
. Here is the log.
$ git checkout develop
Branch develop set up to track remote branch develop from origin.
Switched to a new branch 'develop'
(base) [xjwang@cl001 hyphy]$ cmake .
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home-user/xjwang/miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home-user/xjwang/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_AVX_EXTENSIONS
-- Performing Test HAVE_AVX_EXTENSIONS - Success
-- Performing Test HAVE_FMA3
-- Performing Test HAVE_FMA3 - Success
-- Performing Test HAVE_NEON_EXTENSIONS
-- Performing Test HAVE_NEON_EXTENSIONS - Failed
Set default compiler flags to -fsigned-char -O3 -std=c++14 -g -march=native -mtune=native -mavx2 -mfma
-- Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES)
-- Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES)
-- Could NOT find OpenMP (missing: OpenMP_C_FOUND OpenMP_CXX_FOUND)
-- Found CURL: /home-user/xjwang/miniconda3/lib/libcurl.so (found version "7.71.1")
/home-user/xjwang/miniconda3/lib/libcurl.so
-- Found ZLIB: /home-user/xjwang/miniconda3/lib/libz.so (found suitable version "1.2.11", minimum required is "1.2.9")
Node not installed; API documentation will not be generated
-- Found MPI_C: /home-user/xjwang/miniconda3/lib/libmpi.so (found version "3.1")
-- Found MPI_CXX: /home-user/xjwang/miniconda3/lib/libmpi.so (found version "3.1")
-- Found MPI: TRUE (found version "3.1")
-fsigned-char -O3 -std=c++14 -g -march=native -mtune=native -mavx2 -mfma -Wl,-rpath,/home-user/xjwang/miniconda3/lib -pthread NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /home-user/software/hyphy
(base) [xjwang@cl001 hyphy]$ make install
Scanning dependencies of target hyphy
[ 0%] Building CXX object CMakeFiles/hyphy.dir/src/core/_hyExecutionContext.cpp.o
[ 0%] Building CXX object CMakeFiles/hyphy.dir/src/core/alignment.cpp.o
[ 0%] Building CXX object CMakeFiles/hyphy.dir/src/core/associative_list.cpp.o
[ 5%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllist.cpp.o
[ 5%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistx.cpp.o
[ 5%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistx_iterator.cpp.o
[ 10%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistxl.cpp.o
[ 10%] Building CXX object CMakeFiles/hyphy.dir/src/core/avllistxl_iterator.cpp.o
[ 10%] Building CXX object CMakeFiles/hyphy.dir/src/core/baseobj.cpp.o
[ 10%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlan.cpp.o
[ 15%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlan2.cpp.o
[ 15%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlanhelpers.cpp.o
[ 15%] Building CXX object CMakeFiles/hyphy.dir/src/core/batchlanruntime.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/calcnode.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/category.cpp.o
[ 20%] Building CXX object CMakeFiles/hyphy.dir/src/core/constant.cpp.o
[ 25%] Building CXX object CMakeFiles/hyphy.dir/src/core/dataset.cpp.o
[ 25%] Building CXX object CMakeFiles/hyphy.dir/src/core/dataset_filter.cpp.o
[ 25%] Building CXX object CMakeFiles/hyphy.dir/src/core/dataset_filter_numeric.cpp.o
[ 25%] Building CXX object CMakeFiles/hyphy.dir/src/core/fisher_exact.cpp.o
[ 30%] Building CXX object CMakeFiles/hyphy.dir/src/core/formula.cpp.o
[ 30%] Building CXX object CMakeFiles/hyphy.dir/src/core/formula_parsing_context.cpp.o
[ 30%] Building CXX object CMakeFiles/hyphy.dir/src/core/fstring.cpp.o
[ 35%] Building CXX object CMakeFiles/hyphy.dir/src/core/global_object_lists.cpp.o
[ 35%] Building CXX object CMakeFiles/hyphy.dir/src/core/global_things.cpp.o
[ 35%] Building CXX object CMakeFiles/hyphy.dir/src/core/hbl_env.cpp.o
[ 40%] Building CXX object CMakeFiles/hyphy.dir/src/core/likefunc.cpp.o
[ 40%] Building CXX object CMakeFiles/hyphy.dir/src/core/likefunc2.cpp.o
[ 40%] Building CXX object CMakeFiles/hyphy.dir/src/core/likefuncocl.cpp.o
[ 40%] Building CXX object CMakeFiles/hyphy.dir/src/core/list.cpp.o
[ 45%] Building CXX object CMakeFiles/hyphy.dir/src/core/mathobj.cpp.o
[ 45%] Building CXX object CMakeFiles/hyphy.dir/src/core/matrix.cpp.o
[ 45%] Building CXX object CMakeFiles/hyphy.dir/src/core/matrix_mult.cpp.o
/home-user/software/hyphy/src/core/matrix_mult.cpp: In function 'void _hy_matrix_multiply_4x4x2(double*, double*, double*, int, bool)':
/home-user/software/hyphy/src/core/matrix_mult.cpp:2622:10: error: '_mm256_set_m128d' was not declared in this scope
A1 = _mm256_set_m128d (_mm_loaddup_pd (A+S1), _mm_loaddup_pd (A)); // 00,00,10,10
^~~~~~~~~~~~~~~~
/home-user/software/hyphy/src/core/matrix_mult.cpp:2622:10: note: suggested alternative: '_mm256_set1_pd'
A1 = _mm256_set_m128d (_mm_loaddup_pd (A+S1), _mm_loaddup_pd (A)); // 00,00,10,10
^~~~~~~~~~~~~~~~
_mm256_set1_pd
make[2]: *** [CMakeFiles/hyphy.dir/src/core/matrix_mult.cpp.o] Error 1
make[1]: *** [CMakeFiles/hyphy.dir/all] Error 2
make: *** [all] Error 2
Best, Xiaojun
Dear @Xiaojun928,
Making progress. This is a different error. Let me look into that; just to check -- what is the GCC version for the latest error?
Best, Sergei
PS _mm256_set_m128d
is supported by GCC as of version 8.1
Dear Sergei,
The latest error was reported if using GCC 6.1.0. And make install
works well if using GCC 9.3.0.
Best, Xiaojun
Hi,
Thanks for developing this great tool! After successfully running
cmake ./
, I got the error when runningmake -j MP
like below. I did not find a similar issue in this repo. I really appreciate any help you can provide.Kind regards, Xiaojun