Skip to content

Use the LLVM SPIR-V back-end on the LTS stack - #708

Draft
maleadt wants to merge 1 commit into
mainfrom
tb/lts-llvm-backend
Draft

maleadt wants to merge 1 commit into
mainfrom
tb/lts-llvm-backend

Conversation

@maleadt

@maleadt maleadt commented Oct 16, 2026

Copy link
Copy Markdown
Member

Test PR to see whether the Aurora LTS stack (NEO 25.18, IGC 2.11) accepts SPIR-V from the LLVM back-end. #574 switched the LTS stack to the Khronos translator because its IGC reportedly didn't accept the back-end's output, but there's no recorded reproducer.

The translator is now the limiting factor: it doesn't support llvm.ssub.with.overflow or llvm.smul.with.overflow, so signed checked_sub/checked_mul in a kernel fail to compile with ONEAPI_LTS=1 (this is what broke the LTS job on #707). If the ALCF job passes here, the translator could be dropped altogether.

The other LTS workarounds (BFloat16 off, strided reductions, queue draining) are unchanged.

@codecov

codecov Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.43%. Comparing base (f644589) to head (7aa2afe).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #708      +/-   ##
==========================================
+ Coverage   82.40%   82.43%   +0.03%     
==========================================
  Files          52       51       -1     
  Lines        4415     4241     -174     
==========================================
- Hits         3638     3496     -142     
+ Misses        777      745      -32     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The LTS stack was switched to the Khronos translator because its IGC reportedly
rejected the back-end's output, but no failing case was recorded. The translator
meanwhile lacks support for intrinsics like `llvm.ssub.with.overflow`, so signed
checked arithmetic fails to compile there. Test whether the LTS stack now accepts
the back-end's SPIR-V.
@maleadt
maleadt force-pushed the tb/lts-llvm-backend branch from 6b173b6 to 7aa2afe Compare October 18, 2026 13:08
@maleadt maleadt changed the title [test] Use the LLVM SPIR-V back-end on the LTS stack Use the LLVM SPIR-V back-end on the LTS stack Oct 19, 2026
@maleadt
maleadt marked this pull request as draft October 19, 2026 05:15
@maleadt

maleadt commented Oct 19, 2026

Copy link
Copy Markdown
Member Author

@michel2323 Could you ask Intel to include a SPIRV-LLVM-Translator bump in the LTS IGC update? IGC 2.11 bundles llvm_release_150 @ 2d4f2e7, which turns SPIR-V OpIAddCarry/OpISubBorrow into calls to __spirv_IAddCarry/__spirv_ISubBorrow that IGC doesn't implement ("undefined reference to _Z17__spirv_IAddCarryll", module build failure). It's fixed by KhronosGroup/SPIRV-LLVM-Translator#2877, backported to llvm_release_150 as KhronosGroup/SPIRV-LLVM-Translator#3761 (998b2cc6); upstream IGC has had it since 2.38.2. It breaks unsigned checked_add/checked_sub in kernels today, and it's what keeps oneAPI.jl from using the LLVM SPIR-V back-end on Aurora.

@maleadt maleadt added kernels Writing and compiling kernels: device intrinsics, codegen, KernelAbstractions back-end. installation Toolkit and driver discovery, artifacts, platform support. labels Oct 19, 2026
@michel2323

Copy link
Copy Markdown
Member

I ran into this issue too, and it seems to be the only remaining blocker to bring LTS to the LLVM translator. I've created a SYCL reproducer, and I'll confirm it on Aurora tomorrow and forward it to our bug tracker.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

installation Toolkit and driver discovery, artifacts, platform support. kernels Writing and compiling kernels: device intrinsics, codegen, KernelAbstractions back-end.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants