Repository navigation
Releases: Intel-tensorflow/jax
Releases · Intel-tensorflow/jax
Release list
JAX on Intel® GPUs (oneAPI) v0.11.2
Release Notes
This is the first release of the oneAPI PJRT and plugin wheels for JAX on PyPI, enabling JAX applications to run on Intel® GPUs through XLA’s SYCL platform support. This release is based on JAX 0.11.2.
This is an experimental (Alpha) release. Not all JAX functionality is supported yet.
Features:
- Core JAX functionality: jax.jit, jax.grad/autodiff, jax.vmap, jax.numpy, jax.nn, jax.random (Threefry kernel), FFT, convolutions, sort & scan.
- GEMM in f16, bf16, f32, f64, c64, c128.
- LAPACK support for Cholesky, LU, solve / inverse / determinant, QR (incl. column pivoting), Eigenvalue decomposition (eigh), SVD, Eig with hybrid host/GPU execution, triangular solve.
- Single-host multi-GPU: pmap, jit with sharding, and collectives.
- Validated to work with MaxText, MaxDiffusion, Optax and Orbax,.
Compatibility
| jax-oneapi-plugin / -pjrt | jax / jaxlib | Python | oneAPI runtime | Graphics Compute Runtime |
|---|---|---|---|---|
| 0.11.2 | 0.11.2 | 3.12, 3.13, 3.14, 3.15 | 2025.1 (DPC++ 2025.1.1, oneMKL 2025.1.0; installed automatically) | 26.31.39395.13 (OMIX 0.4.0) |
Hardware
- Validated on Intel® Arc™ Pro B50/ B60/B65/B70 GPUs and
- Intel® Data Center GPU Max Series.
Prerequisites
Intel GPU Driver. The intel GPU compute runtime should be installed on the system before installing the wheels. The pip wheels do not include them. Use one of the following options.
- Option 1: Container
Use the Intel® Graphics Compute Runtime for oneAPI Level Zero and OpenCL™ Driver Container, (with tag 26.31.39395.13-runtime-<os version>) that contains the necessary driver components. Follow instructions on running the container. - Option 2: Native Installation
Install ONLY the intel-gpu-compute runtime from the Intel(R) OMIX repository. (OMIX 0.4). Follow the instructions for setting up the package repository and install the compute runtime with this command.
sudo apt install -y intel-gpu-computeInstallation
python -m venv jax-oneapi && source jax-oneapi/bin/activate
pip install "jax[oneapi]==0.11.2"
python -c "import jax; print(jax.devices())"
# Will print [OneapiDevice(id=0)]jax[oneapi] installs jax, jaxlib, both oneAPI plugin wheels, and required dependencies.
Limitations
- The following features in JAX are currently not supported.
- Scale-out – distribution across multiple GPUs across multiple hosts.
- Advanced JAX features such as Pallas
- Mosaic-GPU and other CUDA only features
- Sparse kernels
- RNN Kernels
- Known issues
- Using JAX with other oneAPI based frameworks such as PyTorch can cause installation issues due to conflicts in the dependencies, in that case use each framework in a separate container or Python environment.
- On the OneAPI backend, the missing-OneAPI-platform gap in XLA's serialization paths causes both executable serialization (
UNIMPLEMENTED: Unsupported platform ID for XlaExecutableAbiVersion) and PJRT topology deserialization (INVALID_ARGUMENT: The platform is not a GPU platform. platform_name: 'oneapi') to fail. - Using
jax.profiler.tracefails with “device-activity plane named /device:GPU:N” error. - DLPack has no
kDLOneAPIHostdevice type, so OneAPI pinned-host memory round-trips incorrectly reportmemory_kindas'device'; pinned-host DLPack round-trip is therefore unsupported. - On the OneAPI GPU backend, reverse-mode grad of
odeintcrashes during codegen withLLVM Fatal Error while compiling target binary for module: jit__odeint_wrapperfailingtest_pend_grads. LLVM Fatal Error while compiling target binary for module: jit_convert_element_typedue to unsupported SPIR-V extension:SPV_EXT_long_vector.jnp.convolve/jnp.correlatewith an unsigned-integerpreferred_element_typefail to execute on the OneAPI GPU backend, raisingINVALID_ARGUMENT: Unsupported element type: u16 and u32when the result is materialized.- A subset of bfloat16 ops is miscomputed only when the buffer is a single element; Affects a few tests (
testFull6,testOp61_exp_bfloat16,testReducerWhere62). - bfloat16
lax.sortmis-orders elements (e.g.testSortAgainstNumpy1,testSortNumKeys3) because vISA lacks BF16 immediate support, silently promoting operands and breaking bit-exact compares. - Due to lack of scale-out support, any multi-process (multi-host) collective spanning more than one process fails at runtime with
JaxRuntimeError: INTERNAL: For non-local GPU cliques ... clique id callback must be passed via execution params, breaking thetests/multiprocess/*suite (psum/all_gather/all_to_all, pjit, array, callbacks, pmap). - The signed int4 binary ops (e.g.
lax.min) returns wrong results; failstest_int4_binary_ops6. - On OneAPI GPU, the
TF32_TF32_F32andTF32_TF32_F32_X3dot algorithm presets are not yet supported and will raise an error when used. - On the OneAPI backend,
jax.exportcannot serialize computations with OneAPI solver/linalg custom calls (targets lack export back-compat guarantees), failingshape_poly_testandexport_harnesses_multi_platform_test; runtime execution of these ops is unaffected. - On the OneAPI GPU backend,
jax.scipy.spatial.transform.Rotation.from_matrix(...).as_rotvec()crashes with a segmentation fault during compilation, failingtests/scipy_spatial_test.py::LaxBackedScipySpatialTransformTests.testRotationFromMatrix1 - With shape-polymorphic (symbolic) dimensions, SVD fails at lowering time with
jax._src.export.shape_poly.InconclusiveDimensionOperationon OneAPI, breaking thetest_harness_svdpolycases intests/shape_poly_test.py; concrete-shape SVD is unaffected. - On OneAPI, the jitted NVFP4
scaled_dot_general_wrapperoutput doesn't match the explicitly dequantized float32dot_generalreference, failing thetest_dot_general_nvfp4*cases intests/scaled_matmul_stablehlo_test.py.