oneapi-src / oneMKL

oneAPI Math Kernel Library (oneMKL) Interfaces
Apache License 2.0
619 stars 158 forks source link

Building with CMake fails in installation #84

Closed latifisalar closed 3 years ago

latifisalar commented 3 years ago

Hi there,

I am trying to install oneMKL using CMake on Ubuntu 18.04. I have successfully finished the building step, and ctest is passing all the tests, however when I attempt to install using "cmake --install . --prefix ../install", it fails with the following error:

-- Up-to-date: /data4/salar/oneMKL/install/include -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/exceptions.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/get_device_id.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/backend_selector.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/exceptions.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/export.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/backends.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/backends_table.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/backend_selector_predicates.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/predicates.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/distributions.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/functions.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/rng_loader.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/engine_impl.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/curand -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/curand/onemkl_rng_curand.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/mklcpu -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/mklcpu/onemkl_rng_mklcpu.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/mklgpu -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/detail/mklgpu/onemkl_rng_mklgpu.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/rng/engines.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/types.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/predicates.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/blas_ct_backends.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/blas_loader.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/cublas -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/cublas/onemkl_blas_cublas.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/cublas/blas_ct.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/cublas/onemkl_blas_cublas.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/cublas/blas_ct.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/netlib -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/netlib/blas_ct.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/netlib/onemkl_blas_netlib.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/netlib/blas_ct.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/blas_ct_backends.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/onemkl_blas_backends.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/blas_loader.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklcpu -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklcpu/blas_ct.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklcpu/onemkl_blas_mklcpu.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklcpu/blas_ct.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklgpu -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklgpu/blas_ct.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklgpu/onemkl_blas_mklgpu.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/detail/mklgpu/blas_ct.hpp -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas/predicates.hxx -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/blas.hpp -- Up-to-date: /data4/salar/oneMKL/install/lib/cmake/oneMKL/oneMKLTargets.cmake -- Up-to-date: /data4/salar/oneMKL/install/lib/cmake/oneMKL/oneMKLTargets-release.cmake -- Up-to-date: /data4/salar/oneMKL/install/lib/cmake/oneMKL/oneMKLConfig.cmake -- Up-to-date: /data4/salar/oneMKL/install/lib/cmake/oneMKL/oneMKLConfigVersion.cmake -- Up-to-date: /data4/salar/oneMKL/install/lib/cmake/oneMKL/FindMKL.cmake -- Up-to-date: /data4/salar/oneMKL/install/lib/cmake/oneMKL/FindCompiler.cmake -- Up-to-date: /data4/salar/oneMKL/install/include/oneapi/mkl/detail/config.hpp CMake Error at bin/cmake_install.cmake:45 (file): file INSTALL cannot find "/data4/salar/oneMKL/build/bin/CMakeFiles/CMakeRelink.dir/libonemkl.so.0": No such file or directory. Call Stack (most recent call first): cmake_install.cmake:73 (include)

Would really appreciate if you could help me out to figure out what could be the possible issue.

vrpascuzzi commented 3 years ago

Hi, @latifisalar.

Looks like something could've gone wrong during the build, as the library libonemkl.so.0 does not exist. However, without knowing your environment, cmake command used to configure the build or the build output itself, it's hard to tell what went wrong.

Depending the backend you're targeting, you can try:

$ source /opt/intel/oneapi/setvars.sh
$ export CXX=`which clang++`
$ cmake \
  -DBUILD_FUNCTIONAL_TESTS=OFF \                        # Reduces compilation time, if you don't need them
  -DENABLE_MKLGPU_BACKEND=ON \                          # Requires an installation of...
  -DENABLE_MKLCPU_BACKEND=ON \                          #   ...oneapi/mkl for these backends
  -DTARGET_DOMAINS="rng,blas" \                         # Build blas and rng
  -DCMAKE_INSTALL_PREFIX=$PWD/install-onemkl \
  /<...>/oneMKL
$ cmake --build . --target install -- -j`nproc`

After a fresh clone, the above worked fine for me.

A few things to note:

Hope that helps.

latifisalar commented 3 years ago

Thanks @vrpascuzzi, a fresh clone and following the cmake recipe you mentioned solved my issue.