Introduce Intel 2024, 2025, and SYCL programs #191

Manually merged
abonerib merged 40 commits from pkgs/tasycl into master 2026-03-23 16:20:41 +01:00
Collaborator

Migrated from: rarias/bscpkgs#3

sycl+ompss is broken still: http://weasel:3001/eval/48?compare=bsc-ci&full=0#tabs-new
fixed: http://weasel:3001/eval/51

Things done:

  • Introduce Intel oneapi 2024 and 2025

    • Changed oneapi update script so we only save relevant information from intel's apt repo.
  • Reworked existing intel oneapi 2023 to use the apt information from the update script above.

  • Introduce Intel oneapi open source compiler 6.2.1 as a monolithic llvm build.

  • Added a modified OmpSs-2 compiler wrapper (in clangOmpss2Nodes.forIcpx) than can be used as a SYCL host compiler keeping the proper flags for SYCL. (See test/compilers/icpx-ompss2.nix for an example.

  • Added some SYCL related packages using the new compilers:

    • GROMACS
    • oneMath
    • TASYCL
  • Added PoCL (A Portable OpenCL runtime) that can be used to run OpenCL (and by extension SYCL) programs.

Not working:

  • SYCL with oneapi 2023
  • SYCL with propietary oneapi compilers using NVIDIA backend through unified-runtime.

Working, but barely tested:

  • SYCL with NVIDIA backend in intel open source compiler 6.2.1
Migrated from: https://jungle.bsc.es/git/rarias/bscpkgs/pulls/3 ~sycl+ompss is broken still: http://weasel:3001/eval/48?compare=bsc-ci&full=0#tabs-new~ fixed: http://weasel:3001/eval/51 ### Things done: - Introduce Intel oneapi 2024 and 2025 - Changed oneapi update script so we only save relevant information from intel's apt repo. - Reworked existing intel oneapi 2023 to use the apt information from the update script above. - Introduce Intel oneapi open source compiler 6.2.1 as a monolithic llvm build. - Added a modified OmpSs-2 compiler wrapper (in `clangOmpss2Nodes.forIcpx`) than can be used as a SYCL host compiler keeping the proper flags for SYCL. (See `test/compilers/icpx-ompss2.nix` for an example. - Added some SYCL related packages using the new compilers: - GROMACS - oneMath - TASYCL - Added PoCL (A Portable OpenCL runtime) that can be used to run OpenCL (and by extension SYCL) programs. #### Not working: - SYCL with oneapi 2023 - SYCL with propietary oneapi compilers using NVIDIA backend through unified-runtime. #### Working, but barely tested: - SYCL with NVIDIA backend in intel open source compiler 6.2.1
abonerib changed title from Introduce Intel 2024, 2025, tasycl and oneMath to WIP: Introduce Intel 2024, 2025, tasycl and oneMath 2025-10-07 17:15:03 +02:00
abonerib reviewed 2025-10-08 14:39:51 +02:00
overlay.nix Outdated
@@ -78,0 +88,4 @@
intel2025-icx-c = hello-c.override { stdenv = final.intelPackages_2025.stdenv; };
intel2024-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2024.stdenv; };
intel2025-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2025.stdenv; };
# intel2023-sycl = hello-sycl.override { intelPackages = final.intelPackages_2023; }; # broken
Author
Collaborator

I can package the 2023 version the same way we do the 2024/5 and remove the old one, but it may break things.

I can package the 2023 version the same way we do the 2024/5 and remove the old one, but it may break things.
Owner

I suggest to leave it as-is for now and only change it if we need it.

I suggest to leave it as-is for now and only change it if we need it.
abonerib marked this conversation as resolved
abonerib reviewed 2025-10-08 14:41:30 +02:00
@@ -0,0 +45,4 @@
dontConfigure = true;
# NODES requires access to /sys/devices to request NUMA information
requiredSystemFeatures = [ "sys-devices" ];
Author
Collaborator

This requires #181

This requires #181
abonerib marked this conversation as resolved
abonerib added a new dependency 2025-10-08 14:41:54 +02:00
abonerib changed target branch from master to upgrade/25.11 2025-12-02 18:15:26 +01:00
Author
Collaborator

Last week, someone opened a new PR packaging intel llvm in nixpkgs
I also had a successful prototype here: 3ac19eb970 it compiles but is missing the compiler wrappers.

The one from nixpkgs does not have CUDA support, mine does. I have yet to test it properly, but the UR adapter for CUDA works and is picked up by sycl-ls, so I am moderately hopeful that we can get it to work (and maybe upstream it).

fox$ OCL_ICD_VENDORS=$PWD/pocl/etc/OpenCL/vendors/ sycl-ls
[cuda:gpu][cuda:0] NVIDIA CUDA BACKEND, NVIDIA RTX 4000 SFF Ada Generation 8.9 [CUDA 12.8]
[cuda:gpu][cuda:1] NVIDIA CUDA BACKEND, NVIDIA RTX 4000 SFF Ada Generation 8.9 [CUDA 12.8]
[opencl:cpu][opencl:0] Portable Computing Language, cpu-znver4-AMD EPYC 9684X 96-Core Processor OpenCL 3.0 PoCL HSTR: cpu-x86_64-unknown-linux-gnu-znver4 [7.1]

I don't think we have a need for the proprietary compiler right now, so after the holidays, I'll test the viability of using the open source versions instead now that they are feasible in nix.

Last week, someone opened a new PR packaging intel llvm in [nixpkgs](https://github.com/NixOS/nixpkgs/pull/470035) I also had a successful prototype here: https://jungle.bsc.es/git/abonerib/jungle/commit/3ac19eb970f01b6063f939ea3eb26eb985427ef6 it compiles but is missing the compiler wrappers. The one from nixpkgs does not have CUDA support, mine does. I have yet to test it properly, but the UR adapter for CUDA works and is picked up by sycl-ls, so I am moderately hopeful that we can get it to work (and maybe upstream it). ``` fox$ OCL_ICD_VENDORS=$PWD/pocl/etc/OpenCL/vendors/ sycl-ls [cuda:gpu][cuda:0] NVIDIA CUDA BACKEND, NVIDIA RTX 4000 SFF Ada Generation 8.9 [CUDA 12.8] [cuda:gpu][cuda:1] NVIDIA CUDA BACKEND, NVIDIA RTX 4000 SFF Ada Generation 8.9 [CUDA 12.8] [opencl:cpu][opencl:0] Portable Computing Language, cpu-znver4-AMD EPYC 9684X 96-Core Processor OpenCL 3.0 PoCL HSTR: cpu-x86_64-unknown-linux-gnu-znver4 [7.1] ``` I don't think we have a need for the proprietary compiler right now, so after the holidays, I'll test the viability of using the open source versions instead now that they are feasible in nix.
rarias changed target branch from upgrade/25.11 to master 2026-01-20 13:51:31 +01:00
rarias added 19 commits 2026-01-20 13:51:31 +01:00
Moved from llvmPackages_latest.tools.bintools to
llvmPackages_latest.bintools
The buildPythonPackage and buildPythonApplication functions now
  require an explicit format attribute. Previously the default format
  used setuptools and called setup.py from the source tree, which is
  deprecated. The modern alternative is to configure pyproject = true
  with build-system = [ setuptools ].
See: https://github.com/NixOS/nixpkgs/pull/437723
The option 'systemd.watchdog.runtimeTime' has been renamed to
'systemd.settings.Manager.RuntimeWatchdogSec'.
This reverts 26f52aa27d
nixseparatedebuginfod has been replaced by nixseparatedebuginfod2
Mark mcxx as broken and remove from package list
All checks were successful
CI / build:cross (pull_request) Successful in 8s
CI / build:all (pull_request) Successful in 16s
1d3bda33a0
New apt list does not have Package: as the first entry for all packages
abonerib force-pushed pkgs/tasycl from 731766c179 to 1e9d37a3ec 2026-01-21 12:28:03 +01:00 Compare
abonerib force-pushed pkgs/tasycl from 1e9d37a3ec to 60133da653 2026-03-13 16:49:11 +01:00 Compare
abonerib force-pushed pkgs/tasycl from 60133da653 to 6e879efeee 2026-03-13 16:50:23 +01:00 Compare
abonerib force-pushed pkgs/tasycl from 6e879efeee to 797ba0b73c 2026-03-16 15:16:36 +01:00 Compare
abonerib force-pushed pkgs/tasycl from 797ba0b73c to 9260bce841 2026-03-16 15:21:21 +01:00 Compare
abonerib force-pushed pkgs/tasycl from 9260bce841 to e8a51dc271 2026-03-17 17:25:47 +01:00 Compare
abonerib changed title from WIP: Introduce Intel 2024, 2025, tasycl and oneMath to Introduce Intel 2024, 2025, and SYCL programs 2026-03-17 18:32:55 +01:00
abonerib requested review from rarias 2026-03-17 18:32:59 +01:00
abonerib added this to the Kanban project 2026-03-18 14:30:54 +01:00
rarias moved this to In Progress in Kanban on 2026-03-19 11:49:16 +01:00
abonerib force-pushed pkgs/tasycl from e8a51dc271 to 19e5399039 2026-03-19 14:59:53 +01:00 Compare
abonerib added 2 commits 2026-03-20 13:05:21 +01:00
Refactored the parsing and dependency resolution logic into a single
Haskell script.
Update Intel 2023 derivation to use new TOML
Some checks failed
CI / build:cross (pull_request) Successful in 8s
CI / build:all (pull_request) Failing after 33s
8b3b21af97
abonerib added 1 commit 2026-03-20 15:42:30 +01:00
Fix PoCL SYCL tests
Some checks failed
CI / build:cross (pull_request) Successful in 8s
CI / build:all (pull_request) Failing after 1m1s
8787677df3
abonerib force-pushed pkgs/tasycl from 8787677df3 to a3764f2f19 2026-03-20 16:14:23 +01:00 Compare
abonerib force-pushed pkgs/tasycl from a3764f2f19 to 33b49d1623 2026-03-20 16:24:45 +01:00 Compare
abonerib force-pushed pkgs/tasycl from 33b49d1623 to 1c75372f92 2026-03-20 16:57:41 +01:00 Compare
abonerib added 2 commits 2026-03-22 20:47:02 +01:00
Log missing deps on update.hs without Debug.Trace
All checks were successful
CI / build:cross (pull_request) Successful in 8s
CI / build:all (pull_request) Successful in 33s
d68b0d7cf4
abonerib force-pushed pkgs/tasycl from d68b0d7cf4 to c475151b7a 2026-03-22 20:49:13 +01:00 Compare
abonerib added 1 commit 2026-03-23 12:45:15 +01:00
Add meta to oneapi packages
All checks were successful
CI / build:all (pull_request) Successful in 1h34m37s
CI / build:cross (pull_request) Successful in 1h42m40s
96266dd530
abonerib added 1 commit 2026-03-23 15:56:10 +01:00
Add licence to oneapi update.hs
All checks were successful
CI / build:cross (pull_request) Successful in 8s
CI / build:all (pull_request) Successful in 33s
0720e2a979
abonerib force-pushed pkgs/tasycl from 0720e2a979 to 28cea86814 2026-03-23 15:59:53 +01:00 Compare
rarias approved these changes 2026-03-23 16:12:40 +01:00
rarias left a comment
Owner

Thanks a lot for all the work here, specially the dependency solver in Haskell for .deb packages!

I did some tests with the Intel compilers and it seems to be working fine. Regarding SYCL and PoCL, I only performed a very lightweight review, but I didn't saw anything wrong.

I hope at some point nixpkgs upstream adds support for Intel packages so we don't have to carry the maintenance burden ourselves.

Thanks a lot for all the work here, specially the dependency solver in Haskell for .deb packages! I did some tests with the Intel compilers and it seems to be working fine. Regarding SYCL and PoCL, I only performed a very lightweight review, but I didn't saw anything wrong. I hope at some point nixpkgs upstream adds support for Intel packages so we don't have to carry the maintenance burden ourselves.
abonerib force-pushed pkgs/tasycl from 28cea86814 to 0140b887bb 2026-03-23 16:19:26 +01:00 Compare
abonerib manually merged commit 0140b887bb into master 2026-03-23 16:20:41 +01:00
rarias moved this to Done in Kanban on 2026-03-23 16:57:35 +01:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Reference: rarias/jungle#191