Skip to content

[SYCL] Use global_var_host_access ext for device_global on SPIR-V#21351

Open
Maetveis wants to merge 2 commits intointel:syclfrom
Maetveis:use-new-global-host-access-ext
Open

[SYCL] Use global_var_host_access ext for device_global on SPIR-V#21351
Maetveis wants to merge 2 commits intointel:syclfrom
Maetveis:use-new-global-host-access-ext

Conversation

@Maetveis
Copy link
Contributor

Change the lowering of the sycl-host-access attribute to use the SPV_INTEL_global_variable_host_access extension instead of the deprecated SPV_INTEL_global_variable_decorations extension.

Newly compiled applications will need to use a recent version of IGC that supports the new extension, but IGC has implemented the support for the new extension more than 6 months ago (in version 2.16.0), so I believe this is ok to do now.

Change the lowering of the `sycl-host-access` attribute to use
the `SPV_INTEL_global_variable_host_access` extension instead of the
deprecated `SPV_INTEL_global_variable_decorations` extension.

Newly compiled applications will need to use a recent version of IGC
that supports the new extension, but IGC has implemented
the support for the new extension more than 6 months
ago (in version 2.16.0), so I believe this is ok to do now.
@Maetveis
Copy link
Contributor Author

Maetveis commented Feb 25, 2026

Failed Tests (11):
  SYCL :: Assert/check_resource_leak.cpp
  SYCL :: DeviceGlobal/device_global_arrow.cpp
  SYCL :: DeviceGlobal/device_global_copy.cpp
  SYCL :: DeviceGlobal/device_global_device_only.cpp
  SYCL :: DeviceGlobal/device_global_operator_passthrough.cpp
  SYCL :: DeviceGlobal/device_global_static.cpp
  SYCL :: DeviceGlobal/device_global_subscript.cpp
  SYCL :: KernelCompiler/sycl_device_globals.cpp
  SYCL :: SYCLBIN/dg_executable.cpp
  SYCL :: SYCLBIN/dg_input.cpp
  SYCL :: SYCLBIN/dg_object.cpp

These Windows failures seem related I'm looking into them.

@Maetveis
Copy link
Contributor Author

Maetveis commented Feb 25, 2026

Failed Tests (11):
  SYCL :: Assert/check_resource_leak.cpp
  SYCL :: DeviceGlobal/device_global_arrow.cpp
  SYCL :: DeviceGlobal/device_global_copy.cpp
  SYCL :: DeviceGlobal/device_global_device_only.cpp
  SYCL :: DeviceGlobal/device_global_operator_passthrough.cpp
  SYCL :: DeviceGlobal/device_global_static.cpp
  SYCL :: DeviceGlobal/device_global_subscript.cpp
  SYCL :: KernelCompiler/sycl_device_globals.cpp
  SYCL :: SYCLBIN/dg_executable.cpp
  SYCL :: SYCLBIN/dg_input.cpp
  SYCL :: SYCLBIN/dg_object.cpp

These Windows failures seem related I'm looking into them.

Yep, all of these use device_globals. I cannot reproduce the failures on ARC B580 with Graphics Driver 25.40.1953.2. These failures are probably due to an old driver.
What's the version of GPU driver on the Windows CI machines? Can it be lifted up? @sarnex maybe?

Copy link
Contributor

@YuriPlyakhin YuriPlyakhin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes in files owned by me look good.

Not sure about when is the good time to merge the PR, since it will break customers, if they are using older GPU drivers.

@Maetveis
Copy link
Contributor Author

Changes in files owned by me look good.

Thanks for the review!

Not sure about when is the good time to merge the PR, since it will break customers, if they are using older GPU drivers.

I didn't find any info on backwards compatibility with the driver for the Open Source (this) repository, the closest I could find was Intel® oneAPI Base Toolkit System Requirements. Here at least for linux the required driver versions would be recent enough, I think:

  • oneAPI 2025.3.0 release is validated with the following driver versions and is expected to work with subsequent driver versions at https://dgpu-docs.intel.com/releases/releases.html
    • LTS Driver 2523.31 (New LTS line)
    • LTS Driver 2350.145 (The earlier LTS release that has transitioned out of active maintenance)
    • Rolling Driver 2523.12 (Rolling releases have been discontinued and are not expected to return in the near future)

This is for the developer tools, while this PR adds a requirement for the runtime system. Also the same page doesn't have the same info for Windows 🤷.

I do have some work internally that depends on this, but if we can't merge it yet I can cherry pick only the function mapSYCLHostAccessToSPIRV there.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants