The dpcpp(-cl) executables have been deprecated by Intel some time ago in oneAPI. One is instead meant to use "icpx -fsycl" (on Linux) and "icx-cl.exe -fsycl" (on Windows).
This update makes sure that the "-fsycl" flag is correctly propagated to the link commands. Plus it also silences printout from "icx-cl.exe --version" that is sent to stderr by that command.
Some additional notes:
The way to set the SYCLCXX environment variable on Windows gave me some headaches. One is supposed to do the following:
set SYCLCXX=icx-cl -fsycl
Yes, without any type of quotes whatsoever! 😕
Just like on Linux, CUDA can't use oneAPI 2023.0.0 as a host compiler at the moment. So one should not set the CC or CXX (or CUDAHOSTCXX) environment variables to point at oneAPI 2023 if CUDA is also used in the project. (Only using oneAPI to build the .sycl source files, and MSVC for everything else, does allow for a successful linking of everything at least.)
The
dpcpp(-cl)
executables have been deprecated by Intel some time ago in oneAPI. One is instead meant to use "icpx -fsycl
" (on Linux) and "icx-cl.exe -fsycl
" (on Windows).This update makes sure that the "
-fsycl
" flag is correctly propagated to the link commands. Plus it also silences printout from "icx-cl.exe --version
" that is sent to stderr by that command.Some additional notes:
SYCLCXX
environment variable on Windows gave me some headaches. One is supposed to do the following:Yes, without any type of quotes whatsoever! 😕
CC
orCXX
(orCUDAHOSTCXX
) environment variables to point at oneAPI 2023 if CUDA is also used in the project. (Only using oneAPI to build the.sycl
source files, and MSVC for everything else, does allow for a successful linking of everything at least.)