Replies: 4 comments 8 replies
-
@arunoruto sorry I missed your question here. Thanks for your feedback. I do not think anyone has tried Nix to run numba-dpex before, so in a way you are a pioneer. 😄 Let me discuss with some of the other developers who are more experienced with Nix and get back to you. |
Beta Was this translation helpful? Give feedback.
-
As @diptorupd said, there is no native support for nixos. While it may sound like overkill, but I bet it is possible to install conda inside nix and install dpex inside conda. There are instructions how to do so. More over intel provides oneapi inside wheels, but I'm not sure how easy it will be to get it work using something like |
Beta Was this translation helpful? Give feedback.
-
@arunoruto I right now have no understanding of Nix and how the packaging work. Specific to numba-dpex and dpctl, at this point the whole of oneAPI is not needed. At runtime both numba-dpex and dpctl require the dpcpp compiler runtime and OpenCL/LevelZero drivers. To build from source, the One detour that I can suggest is to build a standalone Nix package for the dpcpp compiler. It is even possible to use the open-source Intel dpcpp compiler (https://github.com/intel/llvm/releases) instead of the proprietary version in oneAPI. Once there is a dpcpp compiler package, dpctl and numba-dpex can be built using it. If you give it a shot and ask questions here, I and others can try and help you. I am also cross posting it to the NixOS issue you mentioned. |
Beta Was this translation helpful? Give feedback.
-
I think to triage why GPUs are not being seen by DPC++ runtime, one needs to run with
In addition to DCP++ runtimes NixOS also needs to ensure that driver loaders are available. For Intel GPUs that would be level-zero loader (https://github.com/oneapi-src/level-zero). Level-Zero loaders would attempt to load a user-mode linux library
One way to find out whether the failure to see GPU devices is due to library version mismatch (symbols not found during SO loading) is to run |
Beta Was this translation helpful? Give feedback.
-
More and more development is shifting to nix using the system (nixos) or the package manager (nix). It has perks compared to containerized development like docker. It even has a large package repository (over 80,000 packages as of writing), but it sometimes lacks the traction of large projects like oneAPI.
I was recently trying to get numba-dpex running on my Laptop (which runs Nixos), but in the end, I failed with the message
ImportError: libintlc.so.5: cannot open shared object file: No such file or directory
. I guess this happens to the missing oneAPI libs, which should be installed.It would be nice to have a small guide on setting up a Nix system to run numba-dpex, or at least installing the required packages! There have been some previous attempts at packaging the one API into Nix in this issue, but sadly, it only works as a NUR (Nix User Repository, like AUR for Arch) package. Maybe someone here could help bring this to Nix and make it easier for us to utilize.
And sorry if this is the wrong repo to post this discussion. It is the one project I am most familiar with, and I do hope someone can help me a bit!
Beta Was this translation helpful? Give feedback.
All reactions