We currently only support Windows through WSL. Native support involves:
[x] Level Zero: provided by the closed-source driver, so we just rely on ze_loader.dll
[ ] Libraries: depend on our oneAPI Support library, as Intel vendor libraries only expose a C++ ABI
The problem with building the oneAPI Support library for Windows is that our build environment uses MinGW. This poses issues when linking C++ libraries like sycl7.dll, which exposes a C++ API, and the MinGW and MSVC C++ ABIs are incompatible (see https://github.com/JuliaPackaging/Yggdrasil/pull/8285#issuecomment-1992399608).
AFAIU, there's a couple possible solutions here:
use clang-cl to target the MSVC ABI from our build environment: this would require significant work on the BinaryBuilder side (or a very hacky build recipe) to ensure the correct SDK/sysroot bits are available
hope that Intel provides MinGW-compatible binaries
hope that Intel adds C APIs to its vendor libraries (as the C ABI is compatible between MinGW and MSVC).
We currently only support Windows through WSL. Native support involves:
ze_loader.dll
The problem with building the oneAPI Support library for Windows is that our build environment uses MinGW. This poses issues when linking C++ libraries like
sycl7.dll
, which exposes a C++ API, and the MinGW and MSVC C++ ABIs are incompatible (see https://github.com/JuliaPackaging/Yggdrasil/pull/8285#issuecomment-1992399608).AFAIU, there's a couple possible solutions here:
clang-cl
to target the MSVC ABI from our build environment: this would require significant work on the BinaryBuilder side (or a very hacky build recipe) to ensure the correct SDK/sysroot bits are available