arrayfire / arrayfire

ArrayFire: a general purpose GPU library.

Home Page:https://arrayfire.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Build] 3.9.0 fails to build: get_filename_component called with incorrect number of arguments

svenstaro opened this issue · comments

Description

In a clean environment, I'm running this:

  cmake \
      -GNinja \
      -Bbuild \
      -DUSE_CPU_MKL=ON \
      -DGOOGLETEST_VERSION=1.9.0 \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_INSTALL_LIBDIR=/usr/lib \
      -DAF_WITH_IMAGEIO=ON \
      -DAF_BUILD_CPU=ON \
      -DAF_BUILD_OPENCL=ON \
      -DAF_WITH_NONFREE=ON \
      -DAF_BUILD_EXAMPLES=ON \
      -DAF_BUILD_DOCS=ON \
      -DCUDA_architecture_build_targets="5.2;5.3;6.0;6.1;6.2;7.0;7.2;7.5;8.0;8.6;8.7;8.9;9.0;9.0+PTX" \
      -DCMAKE_BUILD_TYPE=None \
      -DCUDA_HOST_COMPILER=/opt/cuda/bin/gcc \
      -DBoost_NO_BOOST_CMAKE=ON

  ninja -C build

Error Log

-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/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: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test has_cxx_fast_math
-- Performing Test has_cxx_fast_math - Success
-- Performing Test has_cxx_fp_model
-- Performing Test has_cxx_fp_model - Failed
-- Performing Test has_cxx_no_errno_math
-- Performing Test has_cxx_no_errno_math - Failed
-- Performing Test has_cxx_no_trapping_math
-- Performing Test has_cxx_no_trapping_math - Success
-- Performing Test has_cxx_no_signed_zeros
-- Performing Test has_cxx_no_signed_zeros - Success
-- Performing Test has_cxx_no_ieee_fp
-- Performing Test has_cxx_no_ieee_fp - Success
-- Performing Test has_cxx_unqualified_std_cast_call
-- Performing Test has_cxx_unqualified_std_cast_call - Success
-- Performing Test has_cxx_error_reorder_ctor
-- Performing Test has_cxx_error_reorder_ctor - Failed
-- Performing Test has_cxx_debug-disables-optimization
-- Performing Test has_cxx_debug-disables-optimization - Failed
fatal: not a git repository (or any of the parent directories): .git
-- No git. Setting hash to default
CMake Warning (dev) at CMakeLists.txt:64 (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.

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: /opt/cuda (found suitable version "12.2", minimum required is "10.2")
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1")
CMake Warning (dev) at CMakeModules/FindcuDNN.cmake:88 (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):
  CMakeLists.txt:65 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found cuDNN: /usr/lib/libcudnn.so.8 (found suitable version "8.9", minimum required is "4.0")
-- Looking for CL_VERSION_3_0
-- Looking for CL_VERSION_3_0 - found
-- Found OpenCL: /usr/lib/libOpenCL.so (found suitable version "3.0", minimum required is "1.2")
-- Found OpenGL: /usr/lib/libGL.so
-- Found FreeImage: /usr/include
-- Checking for module 'fftw3'
--   Found fftw3, version 3.3.10
-- Found FFTW: /usr/include
-- Checking for module 'cblas'
--   Found cblas, version 3.11.0
-- Found CBLAS: /usr/lib/libcblas.so
-- Found LAPACKE: /usr/lib/liblapacke.so
-- Found Doxygen: /usr/bin/doxygen (found version "1.9.8") found components: doxygen dot
-- Check size of int
-- Check size of int - done
-- MKL: Thread Layer(Intel OpenMP) Interface(4-byte Integer)
-- Found MKL_Shared: /opt/intel/mkl/include (found version "2023.0.2")
-- Found MKL_Static: /opt/intel/mkl/include (found version "2023.0.2")
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
-- Found Boost: /usr/include (found suitable version "1.81.0", minimum required is "1.70")
-- MKL_DPCPP_ARCH: None, set to ` intel64` by default
-- MKL_ARCH: None, set to ` intel64` by default
-- MKL_DPCPP_LINK: None, set to ` dynamic` by default
-- MKL_LINK: None, set to ` dynamic` by default
-- MKL_DPCPP_INTERFACE_FULL: intel_ilp64
-- MKL_INTERFACE_FULL: intel_ilp64
-- MKL_DPCPP_THREADING: tbb_thread
-- MKL_THREADING: tbb_thread
-- Found MKL: /opt/intel/oneapi/mkl/latest (Required is at least version "2023.1")
-- Found MKL: /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_intel_ilp64.so (Required is at least version "2023.1")
-- Found MKL: /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_tbb_thread.so (Required is at least version "2023.1")
-- Found MKL: /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_core.so (Required is at least version "2023.1")
-- Found MKL: /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_sycl.so (Required is at least version "2023.1")
CMake Error at /opt/intel/oneapi/mkl/latest/lib/cmake/mkl/MKLConfig.cmake:766 (get_filename_component):
  get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
  CMakeLists.txt:144 (find_package)

Build Environment

Compiler version: 13.2.1
Operating system: Arch Linux
Build environment:

blas-3.11.0-2  default-cursors-2-1  dnssec-anchors-20190629-3
              fontconfig-2:2.14.2-1  freeglut-3.4.0-1  freetype2-2.13.2-1
              giflib-5.2.1-2  glbinding-3.3.0-1  glu-9.0.3-1
              graphite-1:1.3.14-3  harfbuzz-8.1.1-1  hwloc-2.9.1-1
              imath-3.1.9-1  intel-oneapi-common-2023.2.0-1
              intel-oneapi-compiler-dpcpp-cpp-runtime-2023.2.0-1
              intel-oneapi-compiler-dpcpp-cpp-runtime-libs-2023.2.0-1
              intel-oneapi-compiler-shared-runtime-2023.2.0-1
              intel-oneapi-compiler-shared-runtime-libs-2023.2.0-1
              intel-oneapi-openmp-2023.2.0-1  intel-oneapi-tbb-2021.10.0-1
              jasper-4.0.0-1  jxrlib-0.2.4-2  lapack-3.11.0-2  lcms2-2.15-1
              ldns-1.8.3-2  level-zero-loader-1.11.0-1  libdrm-2.4.116-1
              libedit-20221030_3.1-1  libglvnd-1.6.0-1  libjpeg-turbo-3.0.0-1
              libnl-3.8.0-1  libomxil-bellagio-0.9.3-4  libpciaccess-0.17-1
              libpng-1.6.40-2  libraw-0.21.1-2  libtiff-4.5.1-1
              libunwind-1.6.2-2  libwebp-1.3.1-1  libx11-1.8.6-1
              libxau-1.0.11-2  libxcb-1.16-1  libxdamage-1.1.6-1
              libxdmcp-1.1.4-2  libxext-1.3.5-1  libxfixes-6.0.1-1
              libxi-1.8.1-1  libxkbcommon-1.5.0-1  libxrandr-1.5.3-1
              libxrender-0.9.11-1  libxshmfence-1.3.2-1  libxxf86vm-1.1.5-1
              llvm-libs-16.0.6-1  lm_sensors-1:3.6.0.r41.g31d1f125-2
              mesa-1:23.1.6-4  openexr-3.1.11-1  openjpeg2-2.5.0-2
              openmpi-4.1.5-3  openpmix-4.2.5-1  openssh-9.4p1-2
              vulkan-icd-loader-1.3.255-1  wayland-1.22.0-1  xcb-proto-1.16.0-1
              xkeyboard-config-2.39-1  xorgproto-2023.2-1  cblas-3.11.0-2
              fftw-3.3.10-4  forge-2:1.0.8-1  freeimage-3.18.0-20  glew-2.2.0-6
              glfw-wayland-3.3.8-1  intel-oneapi-mkl-2023.2.0_49495-1
              lapacke-3.11.0-2  onetbb-2021.10.0-1

CMake variables:

  cmake \
      -GNinja \
      -Bbuild \
      -DUSE_CPU_MKL=ON \
      -DGOOGLETEST_VERSION=1.9.0 \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_INSTALL_LIBDIR=/usr/lib \
      -DAF_WITH_IMAGEIO=ON \
      -DAF_BUILD_CPU=ON \
      -DAF_BUILD_OPENCL=ON \
      -DAF_WITH_NONFREE=ON \
      -DAF_BUILD_EXAMPLES=ON \
      -DAF_BUILD_DOCS=ON \
      -DCUDA_architecture_build_targets="5.2;5.3;6.0;6.1;6.2;7.0;7.2;7.5;8.0;8.6;8.7;8.9;9.0;9.0+PTX" \
      -DCMAKE_BUILD_TYPE=None \
      -DCUDA_HOST_COMPILER=/opt/cuda/bin/gcc \
      -DBoost_NO_BOOST_CMAKE=ON

Looks like this is a problem with the MKLConfig in the MKL install. From looking at the file its having trouble finding TBB but it looks like you have those packages installed on your system. I have the same configuration and I am not running into this issue. Can you figure out why TBB is not being found on your system?

Also I noticed you are building for 5.3, 6.2, 7.2 and 8.7. These compute capabilities are only part of the ARM based Jetson devices which I don't think Arch linux is targeting. I suggest you remove those to reduce compile times and binary sizes.

Hi svenstaro,

I had the same problem as you when building the library. The package that you are missing is: intel-oneapi-tbb-devel.

Turned out it was a packaging problem in the intel-oneapi-tbb package in Arch Linux. I fixed it and now we're looking good.