-
Notifications
You must be signed in to change notification settings - Fork 173
Open
Labels
buildA request to change/fix/improve the build systemA request to change/fix/improve the build systemhelp wantedTasks, issues or features that could be implemented and contributed to the projectTasks, issues or features that could be implemented and contributed to the project
Description
Summary
Building the MKLCPU backend with AdaptiveCpp doesn't work.
Version
> git rev-parse HEAD
ca1ecc28e86ac82280f3be586bc0d56ef83a0ab3Environment
- HW you use: Some AMD CPU
- oneMKL 2025.1 (have same issue with 2024.2)
- Ubuntu 24.04
- AdaptiveCpp built from my own fork (it's built from a very recent AdaptiveCpp commit, it additionally defines
sycl::spanwhich seems to be required somewhere in oneMKL or oneMATH, don't remember exactly where): nilsfriess/OpenSYCL@79379c5. Additionally, the fork also has a small modification in AdaptiveCpp's compiler driver to ignore the-fsyclflag (of course this is a hack and should just be fixed in oneMath).
Steps to reproduce
Clone oneMath and apply the following diff:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2826d1c..3930905 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -296,7 +296,7 @@ else()
message(STATUS "Looking for hipSYCL")
find_package(hipSYCL CONFIG REQUIRED)
set(USE_ADD_SYCL_TO_TARGET_INTEGRATION true)
- set (CMAKE_CXX_STANDARD 17)
+ set (CMAKE_CXX_STANDARD 20)
add_library(ONEMATH::SYCL::SYCL INTERFACE IMPORTED)
elseif(ONEMATH_SYCL_IMPLEMENTATION STREQUAL "dpc++")
message(STATUS "Looking for dpc++")This is just to make sure that the sycl::span implementation mentioned above (which essentially just does using sycl::span = std::span) works. Then build with
cmake .. -DCMAKE_CXX_COMPILER=acpp \
-DONEMATH_SYCL_IMPLEMENTATION=hipsycl \
-DENABLE_MKLCPU_BACKEND=True \
-DBUILD_FUNCTIONAL_TESTS=False \
-DBUILD_EXAMPLES=True \
-DCMAKE_INSTALL_PREFIX=./install \
-DTARGET_DOMAINS=blas \
-DHIPSYCL_TARGETS=generic \
-DENABLE_MKLGPU_BACKEND=FalseObserved behavior
Configuring works, building fails: CMake output:
-- CMAKE_BUILD_TYPE: Release
-- TARGET_DOMAINS: blas
-- MKL_VERSION: 2024.2.0
-- MKL_ROOT: /opt/intel/oneapi/mkl/2024.2
-- 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: intelmpi
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_scalapack_ilp64.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_cdft_core.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_intel_ilp64.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_tbb_thread.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_core.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_blacs_intelmpi_ilp64.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_blas.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_lapack.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_dft.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_sparse.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_data_fitting.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_rng.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_stats.so
-- Found /opt/intel/oneapi/mkl/2024.2/lib/libmkl_sycl_vm.so
-- Looking for hipSYCL
CMake Deprecation Warning at /home/friessn/Projects/AdaptiveCpp/build/install/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
-DAdaptiveCpp_DIR=/install/prefix/lib/cmake/AdaptiveCpp. Additionally,
replace -DHIPSYCL_* cmake arguments with -DACPP_*
Call Stack (most recent call first):
CMakeLists.txt:297 (find_package)
-- ONEAPI_DEVICE_SELECTOR will be set to the following value(s): [opencl:cpu] for run-time dispatching examples
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/friessn/Projects/oneMath/buildOutput after running make:
It seems (?) that the issue is somehow related to conversions from bfloat16 but honestly I'm not too sure what's going on.
Expected behavior
It should build.
Metadata
Metadata
Assignees
Labels
buildA request to change/fix/improve the build systemA request to change/fix/improve the build systemhelp wantedTasks, issues or features that could be implemented and contributed to the projectTasks, issues or features that could be implemented and contributed to the project