-
Notifications
You must be signed in to change notification settings - Fork 173
Open
Description
Summary
oneMKL uses CXX_COMPILER_NAME to detect SYCL support. This means that if a user compiles their own copy of intel/llvm, SYCL support is not detected and the MKL::MKL_SYCL library will not be available. (The CXX_COMPILER_NAME is by default Clang.)
Users can force set SYCL_COMPILER with -DSYCL_COMPILER=ON, which will make the MKL::MKL_SYCL library available. However, with CLANG_COMPILER also set, the intel_thread backend is also made available. This elicits a compiler warning:
bbrock@ortce-skl22:~/src/distributed-ranges/build/examples/shp$ make -j
Consolidate compiler generated dependencies of target fmt
Warning: Using MKL::MKL_SYCL* targets with intel_thread may have potential composability problems on CPU device with other SYCL kernels.
[ 5%] Building CXX object _deps/cpp-format-build/CMakeFiles/fmt.dir/src/os.cc.oWhich seems to indicate this is still a sub-optimal solution.
Version
oneMKL develop branch.
Environment
- Running on a system with two SPRs and 8 PVC GPUs.
- Both production oneMKL
2024.0and oneMKL develop. - Ubuntu 22.04 LTS
- Fresh
intel/llvm
Steps to reproduce
- Compile fresh
intel/llvm - Compile a project, including oneMKL via CMake (in my case distributed ranges)
Observed behavior
Build fails due to MKL::MKL_DPCPP/MKL::MKL_SYCL library not being available.
Expected behavior
I expect SYCL support to be detected by oneMKL and the build to succeed.
Metadata
Metadata
Labels
No labels
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
-fsyclflag. #450BenBrock commentedon Feb 22, 2024
I implemented a first stab at this in a new PR #450. It is based on oneDPL's CMake and modifies MKL's
MKLConfig.cmaketo explicitly check for support for the-fsyclflag and SYCL headers.[-]oneMKL's CMake Does Not Detect SYCL Support when Compiled with intel/llvm[/-][+]oneMKL's CMake Does Not Detect SYCL Support when Compiled with `intel/llvm`[/+]