Open lrpablo opened 2 months ago
Note that the issue with AdaptiveCpp is a duplicate of https://github.com/oneapi-src/oneMKL/issues/478
The issue of undefined reference with the MKLCPU backend is surprising. It looks like you are trying a 2025.0 RC which we don't have access to. Do you know if this also fails with 2024.2?
Yes, it also fails with version 2024.2. And yes, it's related to issue #478, as the goal is to remove the attempt to compile with -fsycl
, but in doing so, a new error occurs: the linking problem.
Summary
Trying to link the examples when compiling with AdaptiveCpp using MKL::MKL as the target library fails.
Version
oneMKL version 0.2.0 githash = f4d6b1994eb110587ced0fc9777bac7550498874.
Environment
OS name and version=Ubuntu 22.04.4 LTS
Compiler version=AdaptiveCpp version: 24.02.1+git.d1341108.20240718.branch.develop.dirty
CMake output log -- CMAKE_BUILD_TYPE: None, set to Release by default -- The CXX compiler identification is Clang 18.1.8 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /home/pablo/usr/local/bin/acpp - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- TARGET_DOMAINS: blas -- MKL_VERSION: 2025.0.0 -- MKL_ROOT: /opt/intel/oneapi/mkl/2025.0 -- MKL_SYCL_ARCH: intel64 -- MKL_ARCH: intel64 -- MKL_SYCL_LINK: dynamic -- MKL_LINK: dynamic -- MKL_SYCL_INTERFACE_FULL: intel_ilp64 -- MKL_INTERFACE_FULL: intel_ilp64 -- MKL_SYCL_THREADING: tbb_thread -- MKL_THREADING: tbb_thread -- MKL_MPI: None, set to
intelmpi
by default -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_scalapack_ilp64.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_cdft_core.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_intel_ilp64.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_tbb_thread.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_core.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_blacs_intelmpi_ilp64.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_blas.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_lapack.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_dft.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_sparse.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_data_fitting.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_rng.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_stats.so -- Found /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so -- Looking for hipSYCL CMake Deprecation Warning at /home/pablo/usr/local/lib/cmake/hipSYCL/hipsycl-config.cmake:27 (message): find_package(hipSYCL) is deprecated. Use find_package(AdaptiveCpp) instead. For this, you may have to set -DAdaptiveCppDIR=/install/prefix/lib/cmake/AdaptiveCpp. Additionally, replace -DHIPSYCL cmake arguments with -DACPP_ Call Stack (most recent call first): CMakeLists.txt:279 (find_package)CMake Warning (dev) at cmake/FindcuBLAS.cmake:20 (find_package): Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake --help-policy CMP0146" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first): src/blas/backends/cublas/CMakeLists.txt:22 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Found CUDA: /usr/local/cuda (found suitable version "12.5", minimum required is "10.0") -- Found cuBLAS: /usr/local/cuda/include -- ONEAPI_DEVICE_SELECTOR will be set to the following value(s): [opencl:cpu;cuda:gpu] for run-time dispatching examples -- Configuring done (0.7s) -- Generating done (0.0s) -- Build files have been written to: oneMKL/build
Steps to reproduce
Edit the file src/blas/backends/mklcpu/CMakeLists.txt
Observed behavior
When using MKL::MKL as the target library in src/blas/backends/mklcpu/CMakeLists.txt, the issue with attempting to compile the examples with the -fsycl switch is resolved, but errors occurs when trying to link.