Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows support #92

Closed
mobius-eng opened this issue Jul 22, 2021 · 16 comments
Closed

Windows support #92

mobius-eng opened this issue Jul 22, 2021 · 16 comments
Labels
enhancement New feature or request

Comments

@mobius-eng
Copy link

Trying

using oneAPI

Get the error:

ERROR: InitError: UndefVarError: libze_loader not defined
Stacktrace:
 [1] unsafe_zeInit
   @ C:\Users\alexeyc\.julia\packages\oneAPI\bEvNc\lib\level-zero\libze.jl:895 [inlined]
 [2] __init__()
   @ oneAPI.oneL0 C:\Users\alexeyc\.julia\packages\oneAPI\bEvNc\lib\level-zero\oneL0.jl:93
 [3] _include_from_serialized(path::String, depmods::Vector{Any})
   @ Base .\loading.jl:696
 [4] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String)
   @ Base .\loading.jl:782
 [5] _require(pkg::Base.PkgId)
   @ Base .\loading.jl:1020
 [6] require(uuidkey::Base.PkgId)
   @ Base .\loading.jl:936
 [7] require(into::Module, mod::Symbol)
   @ Base .\loading.jl:923
during initialization of module oneL0

Windows 10, Julia 1.6.2 (2021-07-14)

@mobius-eng
Copy link
Author

mobius-eng commented Jul 22, 2021

I think the reason for the error might be that my processor is not supported for "Level Zero" (based on https://github.com/intel/compute-runtime)

Edit: actually the processor is supposed to be Kaby Lake (Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz) so, it must be supported.

@maleadt
Copy link
Member

maleadt commented Jul 22, 2021

oneAPI.jl currently only supports Linux, sorry.

@maleadt maleadt changed the title InitError: UndefVarError: libze_loader not defined (Windows) Windows support Jul 22, 2021
@mobius-eng
Copy link
Author

Ah, I see...

@maleadt maleadt changed the title Windows support Native Windows support Feb 17, 2023
@maleadt
Copy link
Member

maleadt commented Feb 17, 2023

Apparently WSL2 just works. Native support isn't going to be happening soon, as the driver stack is entirely different.

@RoyiAvital
Copy link

Will Windows be supported?

@maleadt
Copy link
Member

maleadt commented Apr 30, 2023

If somebody works on that. I currently don't have such plans, but if you're a Windows user you could take a stab (e.g., figuring out if you we can compile and/or redistribute the driver, or whether and how it needs to be discovered).

@RoyiAvital
Copy link

I guess I'm on the other phase of the chicken egg circle :-).
I'd buy this card if I knew it worked on Windows.

@pengtu
Copy link
Contributor

pengtu commented May 1, 2023

As Tim said, WSL2 works just fine.

@RoyiAvital
Copy link

RoyiAvital commented May 2, 2023

Well, I use Windows because I like working in Windows and not in Linux / GNU.
I don't want to make it a Windows vs. Linux thing.
I just wanted to share there is a demand for GPU capabilities on Windows and hopefully we'll see support.

@el-oso
Copy link

el-oso commented Sep 26, 2023

how to get started on this?

@maleadt
Copy link
Member

maleadt commented Sep 26, 2023

I'd look for a oneAPI Windows example and compile it with the Intel toolchain, and inspect the generated code / resulting binary. If it uses Level Zero API calls, it should link against or dynamically open a library that provides that API; we should also discover that library in oneAPI.jl and use it instead of oneL0_jll. If it uses a different API, Windows support will be out of scope for this package.

@maleadt
Copy link
Member

maleadt commented Oct 10, 2023

Looks like ze_loader.dll is available on Windows, and is installed on System32, so this may be easier than I thought.

@maleadt maleadt added the enhancement New feature or request label Feb 27, 2024
@maleadt maleadt changed the title Native Windows support Windows support Mar 11, 2024
@maleadt
Copy link
Member

maleadt commented Mar 11, 2024

I recently managed to get oneAPI.jl working on my local WSL installation (i.e., not triggering intel/compute-runtime#663 anymore), and it seems like the package is generally working just fine, with all tests passing 🎉

Native support, where we directly interface with the driver without requiring WSL, would still be nice to have though. @el-oso is WSL a viable option for you for the time being? All it requires is wsl --install, setting up Julia inside of that VM (e.g. by installing juliaup), and using Julia/oneAPI.jl from there.

@el-oso
Copy link

el-oso commented Mar 11, 2024

Hi @maleadt , thanks for the update. I will test it tomorrow on my work laptop and let you know if this would be a viable option for me, at least for now.

@maleadt
Copy link
Member

maleadt commented Mar 11, 2024

Looks like ze_loader.dll is available on Windows, and is installed on System32, so this may be easier than I thought.

This seems to work reasonably, so native Windows support should be possible too. That won't include support for oneMKL etc though, so WSL will be a better option in the short term.

I will test it tomorrow on my work laptop and let you know if this would be a viable option for me, at least for now.

If you run into issues, also try the master branch of oneAPI.jl.

@maleadt
Copy link
Member

maleadt commented Mar 13, 2024

Let's close this, as we have Windows support through WSL now. I'll open a separate issue to track native windows support.

@maleadt maleadt closed this as completed Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants