JuliaGPU / JuliaGPU/oneAPI.jl

Native Windows support

Open
#396 0 comments 1 reaction 0 assignees View on GitHub
help wanted libraries upstream
Dominant language
Julia
Stars
215
Forks
37
Avg merge
10h 47m
Merged PRs (30d)
14

Description

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).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the oneAPI Support library build and its MinGW link against sycl7.dll, then evaluate the clang-cl/MSVC ABI, Intel MinGW-compatible binaries, and C-API alternatives described in the issue. Done means native Windows support works without WSL; no specific files or tests are named.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, julia
Domain
build-system, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.