Skip to content

oneAPI DPC++ Compiler release 7.2.0

Latest

Choose a tag to compare

@KornevNikita KornevNikita released this 17 Oct 06:36
· 12327 commits to sycl since this release
v7.2.0

Components included in the release

  • clang version 23.1.1
  • SYCL runtime version 9.0.0 (as indicated by predefined macros __LIBSYCL_MAJOR_VERSION, __LIBSYCL_MINOR_VERSION and __LIBSYCL_PATCH_VERSION)

Compatibility with previous releases

This release is compatible with the previous v7.* releases.
Any applications built with these releases should continue to work with the runtime shipped in this release.

Compatibility with oneAPI

Intel(R) oneAPI DPC++/C++ Compiler version 2026.2 release leverages codebase from the sycl-rel-7_2 branch and it is the closest oneAPI DPC++/C++ compiler release to this one (in terms of available features and bugfixes).

However, this does not guarantee any feature or bugfix parity between these two releases.

Validation & quality expectations

In general, the list of supported hardware and operating systems should match the one provided by Intel(R) oneAPI DPC++/C++ Compiler for version 2026.2, see corresponding system requirements.

However, we did not perform the same exhaustive testing of this open-source branch and therefore there could be some unique issues that are not present in Intel(R) oneAPI DPC++/C++ Compiler version 2026.2.

You can find full validation logs for the branch here, but a summary of it is also posted below.

End to end tests

The following hardware and software configurations were tested.

Driver versions are listed as reported by sycl::device::get_info<info::device::driver_version>().

  • Windows

    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Iris(R) Xe Graphics 12.0.0
    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Arc(TM) A770 Graphics 12.55.8
    • Intel(R) oneAPI Unified Runtime over Level-Zero V2 on
      Intel(R) Arc(TM) B580 Graphics 20.1.0
  • Linux (Ubuntu 24.04)

    • Intel(R) OpenCL Graphics on Intel(R) Iris(R) Xe Graphics
    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Iris(R) Xe Graphics 12.0.0
    • Intel(R) oneAPI Unified Runtime over Level-Zero V2 on
      Intel(R) Arc(TM) B580 Graphics 20.1.0
    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Arc(TM) A750 Graphics 12.55.8
    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Data Center GPU Max 1100 12.60.7
    • Intel(R) OpenCL on
      11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80 GHz OpenCL 3.0
    • NVIDIA CUDA BACKEND on NVIDIA GeForce RTX 3090
      • Driver version: CUDA 12.7

SYCL CTS

Please note that releases made from intel/llvm did not pass the formal Conformance Process defined by the Khronos Group, and as such cannot be considered to be fully conformant or fully implementing the SYCL 2020 specification.

  • Linux (Ubuntu 24.04)
    • Intel(R) OpenCL on
      11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80 GHz OpenCL 3.0
    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Iris(R) Xe Graphics 12.0.0
  • Windows
    • Intel(R) oneAPI Unified Runtime over Level-Zero on
      Intel(R) Iris(R) Xe Graphics 12.0.0

We used c3eaacac0613fdc1d1dcb58ce416f2425c1b8457 CTS in our validation.

How to use

Pre-built binaries are provided for Windows & Linux. Archives contain both SYCL compiler and runtime files.
To use, unpack those and setup the environment variables: PATH & LD_LIBRARY_PATH on Linux, PATH & LIB on Windows, in accordance with
Get Started Guide.

Binaries were built using the following project configuration (below is an (incomplete) list of (key) arguments passed to buildbot/configure.py script):

# Linux:
-t Release --use-zstd --ci-defaults --disable-jit --no-assertions --add_security_flags=sanitize --cuda
# Windows:
--ci-defaults --use-zstd --disable-jit --no-assertions --add_security_flags=sanitize

Please note that SYCL JIT library is not being built, OpenMP is not being built, HIP plugin is not being built on either platform, CUDA plugin is not being built on Windows.
If you are interested in a different configuration, you will have to build it yourself. To do so, follow
Get Started Guide

What's Changed

  • New option -ftime-trace for SYCL offloading compilation, enabling detailed JSON trace files for both host and device (spir64) compilation phases. Trace files are named with clear offloading prefixes to avoid filename collisions (e.g. -host-x86_64-unknown-linux-gnu and -sycl-spir64-unknown-unknown). Supported in both new (--offload-new-driver) and legacy driver models. Developers can load the .json output in chrome://tracing or Perfetto to identify and optimize slow compilation paths in SYCL applications.
  • Added support for PreCompiled Headers (PCH) with SYCL. PCH files could not previously be created or used with SYCL; that restriction is now lifted. PCH files can now be created, e.g. with: clang++ -fsycl -c -x c++-header header.h. This precompiles the header file header.h once each for the device target(s), and once for the host. The individual pch files generated are then combined into a single header.pchi binary. PCH files can be used with clang++ -fsycl -c -include-pch header.pchi file.cpp. This unbundles the combined header.pchi binary into its respective target components and uses the respective pchi files in the device target and host compilations.
  • Added support for re-use of SYCL event objects to track completion of multiple command submissions, rather than creating a new event for each submission. An event object is still only able to track one command at a time, but this extension allows an event to track a new command once the application no longer needs to track the previous one. This pattern may perform better on some implementations because fewer event objects need to be created and destroyed.
  • Support for sycl_ext_oneapi_register_host_memory extension which allows registering regular host memory with the SYCL runtime so it is promoted to USM host memory, enabling kernel access and potentially optimizing explicit copies between registered host memory and USM device memory. This only works with L0 backend on Battlemage or newer Intel GPUs.
  • Support for linking a SYCLBIN object bundle together with a runtime-compiled SYCL source bundle preserves and executes kernels from both bundles in the resulting executable kernel_bundle.
  • Implemented sycl_khr_queue_flush Khronos® extension and also implemented Khronos® change to support *_vector_width_long_long.
  • Support for cl_intel_bfloat16 extension on CPU device. This extension adds support for the BFloat16 (Brain Floating Point) data type to OpenCL. The BFloat16 type is a 16-bit floating-point format designed for machine learning and AI workloads, offering a balance between range and precision.
  • Support for cl_intel_16bit_atomics extension on CPU device. This extension enables programmers to perform atomic operations on 16-bit numbers in memory.
  • OpenCL 3.1 specification is now fully supported. This specification was published by the Khronos® OpenCL Working Group on 22 May 2026.
  • Included new extensions supported by the Khronos® SPIR-V translator: SPV_INTEL_subgroup_scaled_matrix_multiply_accumulate, SPV_INTEL_subgroup_matrix_multiply_accumulate_float8, SPV_INTEL_subgroup_buffer_prefetch, SPV_INTEL_rounded_divide_sqrt.

Full Changelog: v7.1.1...v7.2.0