oneapi-src / level-zero

oneAPI Level Zero Specification Headers and Loader
https://spec.oneapi.com/versions/latest/elements/l0/source/index.html
MIT License
208 stars 90 forks source link

Linux driver i915 SVM support required to run on vanilla kernel? Upstreaming status? #105

Closed simonlui closed 1 year ago

simonlui commented 1 year ago

Hello,

I have been trying to get level-zero to work on kernels in a non-supported Linux distribution (Fedora), which I know Intel currently doesn't support, but it confused me why things wouldn't work correctly even with the latest kernel compiled from drm-intel. level-zero recently was added and along with the compute-runtime built from the Fedora packaging scheme, it seems like everything should be in place for things to work but when opening Blender, the oneAPI option doesn't enable for me nor does any sort of poking around with other test applications. From looking around, running sycl-ls from the OneAPI packages I installed should list my Intel Arc A770 as a level zero device but I am just plain missing the level zero output and only have OpenCL support. There also doesn't seem to be much clarity why it isn't working when all the software packages are there, either in Blender or otherwise. So I decided to look at the key differences of what is inside the i915 DKMS module at https://github.com/intel-gpu/intel-gpu-i915-backports and a vanilla kernel driver i915 Kconfig. I found the following big config difference.

config DRM_I915_SVM
...
      Choose this option if you want Shared Virtual Memory (SVM)
      support in i915. With SVM support, one can share the virtual
      address space between a process and the GPU. SVM is supported
      on both integrated and discrete Intel GPUs.

Looking online according to Phoronix (here and here), it seems like it is essential in getting oneAPI and Level Zero to work correctly but there doesn't seem to be any signs of it actually being upstreamed into mainline Linux. This post from the freedesktop drm mailing list seems like the last time it was referenced in the mailing lists still as a RFC in late 2019. So my questions:

1.) Is Intel GPU SVM support a requirement in order to run Level Zero? 2.) If so, is there a path in getting Intel GPU SVM support upstreamed properly into Linux proper?

To me, it seems like a blocker to #73 because even if all the userland software packages are going to be there, it won't work without the relevant kernel bits and this could be detrimental in enabling Level Zero/oneAPI support for applications in any other Linux distribution other than Ubuntu, SUSE, and Red Hat at the moment which Intel currently provides support for.

jandres742 commented 1 year ago

thanks @simonlui

I have been trying to get level-zero

Are you referring to the Level-zero loader, or the level-zero GPU driver?

simonlui commented 1 year ago

Hello,

I am referring to the GPU driver here, I guess, as I have installed the requisite Level Zero loader via the Fedora package here that was packaged a while ago, and it looks correct to me. Additionally, downloading the binary package or building it from source didn't change anything as far as getting anything to work with Level Zero/oneAPI.

jandres742 commented 1 year ago

thanks @simonlui . could you post the issue in the Level Zero GPU driver repo? we should be able to help you more accurately there https://github.com/intel/compute-runtime

simonlui commented 1 year ago

I have migrated most of the information for my issue here over to the compute-runtime repository. Closing this issue for the conversation to continue over there.