You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gate the LTS workarounds behind a runtime ONEAPI_LTS flag (layers 1-2)
Make the Intel LTS-stack support opt-in so this branch can eventually merge
into main without affecting the rolling stack: with the flag off, every LTS
code path is bypassed and behavior matches upstream.
Introduce oneL0.LTS[], resolved at the top of oneL0.__init__ from ONEAPI_LTS
(default on for this branch; set ONEAPI_LTS=0 for the rolling-stack paths).
Resolved before the driver-availability early returns so it is set even on a
host without a functional GPU. Gate on it:
- Layer 1 (behavior): the strided-reduction materialization and the
coalesced-kernel dispatch in mapreducedim!; the command-queue registry
(global_queue / synchronize_all_queues), the pre-free synchronize in
release, and the queue-finalizer drain + handle-null in cmdqueue.jl.
- Layer 2 (codegen): _compiler_config now selects the SPIRVCompilerTarget
backend (:khronos translator vs :llvm back-end) and the SPIR-V extension
list from the flag. GPUCompiler loads the tool lazily, so both SPIR-V JLLs
can coexist as deps and the choice is made at compile time.
Deferred to layer 3: driver-JLL selection (NEO/loader/headers/igc) via
Preferences and the oneMKL support-library ABI. The oneMKL FFT GC-rooting is
left as-is (already fixed upstream via GC.@preserve).
Verified: precompiles and loads; ONEAPI_LTS unset/1 -> on, ONEAPI_LTS=0 -> off.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments