marian-nmt / marian

Fast Neural Machine Translation in C++
https://marian-nmt.github.io
Other
1.21k stars 227 forks source link

Unable to install Marian #412

Open 3CE8D2BAC65BDD6AA9 opened 1 year ago

3CE8D2BAC65BDD6AA9 commented 1 year ago

I am a newbie that try to install Marian. My machine is an AMD 5900X and running Ubuntu 20.04. I have tried different CUDA (10-12) and gcc (9-12) combinations. But it always stopped at the same place:

/usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function (anonymous namespace)::eig(unsigned long, double*, double*, int)': /mnt/sda/marian/src/3rd_party/faiss/VectorTransform.cpp:428: undefined reference todsyev_'

Here is my environment: -- The CXX compiler identification is GNU 11.1.0 -- The C compiler identification is GNU 11.1.0 -- 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 -- 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 -- Project name: marian -- Project version: v1.12.0+65bf82ff CMake Warning at CMakeLists.txt:79 (message): CMAKE_BUILD_TYPE not set; setting to Release

-- Building with -march=native and intrinsics will be chosen automatically by the compiler to match the current machine. -- Checking support for CPU intrinsics -- Could not find hardware support for AVX512 on this machine. -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE
-- Found CUDA: /etc/alternatives/cuda (found suitable version "11.7", minimum required is "9.0") -- Compiling code for Pascal GPUs -- Compiling code for Volta GPUs -- Compiling code for Turing GPUs -- Compiling code for Ampere GPUs -- Compiling code for Ampere RTX GPUs -- Found CUDA libraries: /etc/alternatives/cuda/lib64/libcurand.so;/etc/alternatives/cuda/lib64/libcusparse.so;/etc/alternatives/cuda/lib64/libcublas.so;/etc/alternatives/cuda/lib64/libcublasLt.so -- Found TCMalloc: /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so -- Could NOT find MKL (missing: MKL_LIBRARIES MKL_INCLUDE_DIRS MKL_INTERFACE_LIBRARY MKL_SEQUENTIAL_LAYER_LIBRARY MKL_CORELIBRARY) -- Looking for sgemm -- Looking for sgemm - not found -- Looking for dgemm -- Looking for dgemm_ - found -- Found BLAS: /usr/lib/x86_64-linux-gnu/libf77blas.so;/usr/lib/x86_64-linux-gnu/libatlas.so
-- Checking for [openblas] -- Checking for [openblas] -- includes found -- Checking for [cblas] -- Checking for [cblas] -- includes found -- Looking for cblas_sgemm -- Looking for cblas_sgemm - found -- Checking for [cblas] -- libraries found -- CBLAS library found: /usr/lib/x86_64-linux-gnu/libcblas.so -- cblas.h include directory: /usr/include/x86_64-linux-gnu -- VERSION: 0.1.94 -- Found TCMalloc: /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so -- Found Doxygen: /usr/bin/doxygen (found version "1.8.17") found components: doxygen dot -- Configuring done -- Generating done -- Build files have been written to: /mnt/sda/marian/build

The error messages are:

[ 97%] Linking CXX executable ../marian-vocab [ 97%] Built target marian_vocab [ 97%] Linking CXX executable ../marian-decoder [ 97%] Linking CXX executable ../marian-conv [ 98%] Linking CXX executable ../marian-scorer /usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function (anonymous namespace)::eig(unsigned long, double*, double*, int)': /mnt/sda/marian/src/3rd_party/faiss/VectorTransform.cpp:428: undefined reference todsyev_' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:433: undefined reference to `dsyev' /usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function matrix_qr(int, int, float*)': /mnt/sda/marian/src/3rd_party/faiss/VectorTransform.cpp:98: undefined reference tosgeqrf_' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:103: undefined reference to `sgeqrf' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:106: undefined reference to `sorgqr' /usr/bin/ld: ../libmarian.a(prod.cpp.o): in function sgemm(bool, bool, int, int, int, float, float*, int, float*, int, float, float*, int)': /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference tocblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float , float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const*, int, float const*, int, float, float*, int)' collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/marian_conv.dir/build.make:100: marian-conv] Error 1 make[1]: *** [CMakeFiles/Makefile2:453: src/CMakeFiles/marian_conv.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... /usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function(anonymous namespace)::eig(unsigned long, double, double, int)': /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:428: undefined reference to `dsyev' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:433: undefined reference to `dsyev' /usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function matrix_qr(int, int, float*)': /mnt/sda/marian/src/3rd_party/faiss/VectorTransform.cpp:98: undefined reference tosgeqrf_' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:103: undefined reference to `sgeqrf' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:106: undefined reference to `sorgqr' /usr/bin/ld: ../libmarian.a(prod.cpp.o): in function sgemm(bool, bool, int, int, int, float, float*, int, float*, int, float, float*, int)': /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference tocblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float , float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const*, int, float const*, int, float, float*, int)' collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/marian_decoder.dir/build.make:100: marian-decoder] Error 1 make[1]: *** [CMakeFiles/Makefile2:513: src/CMakeFiles/marian_decoder.dir/all] Error 2 /usr/bin/ld: ../libmarian.a(prod.cpp.o): in functionsgemm(bool, bool, int, int, int, float, float, int, float, int, float, float, int)': /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float , float const, int, float const, int, float, float, int)' collect2: error: ld returned 1 exit status make[2]: [src/CMakeFiles/marian_decoder.dir/build.make:100: marian-decoder] Error 1 make[1]: [CMakeFiles/Makefile2:513: src/CMakeFiles/marian_decoder.dir/all] Error 2 /usr/bin/ld: ../libmarian.a(prod.cpp.o): in function sgemm(bool, bool, int, int, int, float, float*, int, float*, int, float, float*, int)': /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference tocblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float , float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const*, int, float const*, int, float, float*, int)' collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/marian_scorer.dir/build.make:100: marian-scorer] Error 1 make[1]: *** [CMakeFiles/Makefile2:545: src/CMakeFiles/marian_scorer.dir/all] Error 2 [100%] Linking CXX executable ../marian /usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function(anonymous namespace)::eig(unsigned long, double, double, int)': /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:428: undefined reference to `dsyev' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:433: undefined reference to `dsyev' /usr/bin/ld: ../libmarian.a(VectorTransform.cpp.o): in function matrix_qr(int, int, float*)': /mnt/sda/marian/src/3rd_party/faiss/VectorTransform.cpp:98: undefined reference tosgeqrf_' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:103: undefined reference to `sgeqrf' /usr/bin/ld: /mnt/sda/marian/src/3rdparty/faiss/VectorTransform.cpp:106: undefined reference to `sorgqr' /usr/bin/ld: ../libmarian.a(prod.cpp.o): in function sgemm(bool, bool, int, int, int, float, float*, int, float*, int, float, float*, int)': /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference tocblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float , float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const, int, float const, int, float, float, int)' /usr/bin/ld: /mnt/sda/marian/src/tensors/cpu/prod_blas.h:23: undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, in t, int, float, float const, int, float const, int, float, float*, int)' collect2: error: ld returned 1 exit status make[2]: [src/CMakeFiles/marian_train.dir/build.make:100: marian] Error 1 make[1]: [CMakeFiles/Makefile2:671: src/CMakeFiles/marian_train.dir/all] Error 2 make: *** [Makefile:152: all] Error 2

Any help is appreciated!

Sadrahel commented 2 months ago

I'have quite same problems : https://github.com/marian-nmt/marian/issues/422