Bug 2180613 - Feature Request: oneAPI support for Cycles coming on Q3 2023
Summary: Feature Request: oneAPI support for Cycles coming on Q3 2023
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: blender
Version: 38
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Luya Tshimbalanga
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-03-21 21:37 UTC by Alexander Koppe
Modified: 2024-04-26 00:20 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Alexander Koppe 2023-03-21 21:37:50 UTC
With Intel Level Zero now available in the Fedora repositories, I think the version of Blender shipped with Fedora should be compiled with Cycles oneAPI support for Intel GPUs enabled, currently only CUDA and HIP are enabled

Comment 1 Luya Tshimbalanga 2023-03-22 01:34:37 UTC
Currently, SYCL 6.0+ is missing in the repository:

[...]
-- Could NOT find SYCL (missing: SYCL_LIBRARY SYCL_INCLUDE_DIR) 
-- Found LevelZero: /usr/lib64/libze_loader.so  
-- oneAPI not found, disabling WITH_CYCLES_DEVICE_ONEAPI
-- SYCL 6.0+ or Level Zero not found, disabling WITH_CYCLES_DEVICE_ONEAPI
[...]

One of Intel contributor is working on bring such support at this time of writing.

Comment 2 Alexander Koppe 2023-03-22 02:10:45 UTC
Is SYCL really a runtime dependency for Blender with oneAPI support? Because I can run Blender's own builds from their website (compiled with oneAPI support) just fine with only intel-compute-runtime and oneapi-level-zero installed from Fedora's repos.

It seems like SYCL is only required for compilation. But I guess Fedora's packaging guidelines require all build dependencies to also be available in the repository?

Comment 3 Luya Tshimbalanga 2023-03-22 08:04:29 UTC
According to version.cmake (https://projects.blender.org/blender/blender/src/branch/main/build_files/build_environment/cmake/versions.cmake) file from Blender source, minimal version 20220919 of dpcpp (Intel SYCL currently as nightly release) is needed for compilation.
https://github.com/intel/llvm/archive/refs/tags/sycl-nightly/

Logically, upstream Blender build uses compiler which is currently unavailable in Fedora repository.

Comment 4 Alexander Koppe 2023-04-15 19:48:32 UTC
Has any progress been made bringing sycl/dpcpp to Fedora yet or is there any way such progress can be followed somewhere?

Comment 5 Alexander Koppe 2023-06-12 23:31:32 UTC
I hope this doesn't come across as overly naggy, but is there any update on the state of this? Apparently there was already some work in progress to bring sycl to Fedora, but I suppose those plans haven't really materialized?

Comment 6 Luya Tshimbalanga 2023-06-20 04:54:47 UTC
Not yet so far.

Comment 7 Nicolas Chauvet (kwizart) 2023-06-20 08:02:01 UTC
It would be a first step to see if one can make a dedicated build using this content:
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html?operatingsystem=linux&distributions=dnf

For some reason, I was not able to install the toolkit on fedora-38...

Comment 8 Nicolas Chauvet (kwizart) 2023-06-20 09:35:58 UTC
Also maybe it worth to coordinate with frantisekz as he already has some components packaged as part of the intel-media-driver-free effort.
(https://copr.fedorainfracloud.org/coprs/frantisekz/intel-media-driver-free/packages/)

Comment 9 Luya Tshimbalanga 2023-06-29 00:53:04 UTC
Lets add aekoroglu.com  who is also interested to maintain the oneAPI stack and @frantisekzfrantisekz to possibly package oneAPI-dpcpp.

Comment 10 Ali Erdinc Koroglu 2023-06-29 10:23:02 UTC
Hello, I've started to work on oneAPI-dpcpp so this issue and the rest of the oneAPI-rendering-toolkit is in my OKRs to complete in Q3.

Comment 11 Luya Tshimbalanga 2023-06-30 01:10:07 UTC
Thanks Ali. Changing the title to reflect the progress.

Comment 12 Luya Tshimbalanga 2024-01-26 02:17:01 UTC
(In reply to Ali Erdinc Koroglu from comment #10)
> Hello, I've started to work on oneAPI-dpcpp so this issue and the rest of
> the oneAPI-rendering-toolkit is in my OKRs to complete in Q3.

Any update for packaging oneAPI-dpcpp?

Comment 13 František Zatloukal 2024-01-28 19:58:26 UTC
I've briefly looked into it, and as of now, if I am not missing anything, it's impossible to package this to Fedora. I wasn't able to find any sources for the dpcpp and its dependencies from the suite. eg. Archlinux packages just unpack the .deb files. It also comes with a bundled llvm (17, it seems) that may have some non-upstream patches.

The first step would be to have a source of this, then it may be possible to package it into Fedora (depending on the license, the arch package currently states "custom" which is a problem). Ali, do you have any idea/inside ways what to do with it?

Comment 14 Ali Erdinc Koroglu 2024-01-29 05:55:08 UTC
Hello everyone,
We already started to discuss about this DPC++ issue with Red Hat and,
I will be preparing the compiler package for Fedora from https://github.com/intel/llvm "SYCL branch", which is a derivative of DPC++.

The compiler requires a minimum TBB version of 2021 but Fedora has shipped with version 2020.3
On the other hand, Fedora 40 will include TBB 2021.8 (https://fedoraproject.org/wiki/Changes/F40ModernizeTBB)
So, we should wait until TBB 2021.8 is successfully implemented in F40.

Comment 15 Alexander Koppe 2024-03-07 08:04:22 UTC
Thanks everyone for the updates and your work on this. That is great news with F40 around the corner. Seems like things slowly start to fall into place with all of Intel's oneapi stuff on Fedora. Hope this will be ready and in a usable state for F41 maybe.

Comment 16 Alexander Koppe 2024-04-26 00:20:49 UTC
Hello,
with Fedora 40 now officially released and TBB 2021.11 available in the repos, is there any progress update on your efforts to bring the necessary compiler package to Fedora?


Note You need to log in before you can comment on or make changes to this bug.