Skip to content

Conversation

kbenzie
Copy link
Contributor

@kbenzie kbenzie commented Jul 10, 2025

Automated changes by create-pull-request GitHub action

@kbenzie kbenzie requested a review from a team as a code owner July 10, 2025 00:42
Copy link
Contributor

Unified Runtime -> intel/llvm Repo Move Notice

Information

The source code of Unified Runtime has been moved to intel/llvm under the unified-runtime top-level directory,
all future development will now be carried out there. This was done in intel/llvm#17043.

The code will be mirrored to oneapi-src/unified-runtime and the specification will continue to be hosted at oneapi-src.github.io/unified-runtime.

The contribution guide will be updated with new instructions for contributing to Unified Runtime.

PR Migration

All open PRs including this one will be marked with the auto-close label and shall be automatically closed after 30 days.

Should you wish to continue with your PR you will need to migrate it to intel/llvm.
We have provided a script to help automate this process.

If your PR should remain open and not be closed automatically, you can remove the auto-close label.


This is an automated comment.

AlexeySachkov and others added 6 commits July 11, 2025 00:43
The problem here is that the macro is actually handled by glibc and
value `3` isn't supported with older compiler/glibc combinations,
causing warnings about the macro redefinition.

We still have to support older compilers/glibc and therefore two changes
were made:
- UR skips setting their own `_FORTIFY_SOURCE` in favor of a global one
if it is built as part of LLVM (i.e. not standalone)
- Before setting `_FORTIFY_SOURCE` globally we check the compiler and
fallback to value `2` for older gcc
The wording of the spec was a bit confusing, so it has been clarified.
The conformance test was also updated to be more robust, which
unfortunately exposes failures in HIP and Cuda.
In DX11 Texture1D and Texture3D cannot be shared between process or
devices, so only Texture2D is used but its layout is adapted (height =
1 for 1D and ArraySlices = depth for 3D) for the interop purposes and
testing 1D and 3D image operations on it in the SYCL kernel.
The new DXGI adapter selection fixes issues with non-matching devices
between DX and SYCL which also failed the DX12 tests when more than 1
potential adapter is visible to DirectX. Ideally the introduction of
LUIDs to SYCL will resolve that completely when they are properly
matched. The future flow should change to - 1) create SYCL device (so
the device selection itself can be manipulated via
`ONEAPI_DEVICE_SELECTOR`) , 2) get DXGI adapter for creating a DX
logical device (D3D11 or D3D12) by matching adapter LUIDs (this is going
to depend on a LUID device info query extension for SYCL).

Some notes on synchronisation:

- IKeyedMutex is required for synchronising the access to the shared
resource (texture) between devices or processes.
- Currently the SYCL queue calls wait after submission to execute
immediately and block until completion, but we can use ID3D11Fence
imported in SYCL to signal the completion of the work to D3D11 via SYCL
in the future when this kind of interop is considered.
This is needed so that we can enable V2 adapter by default on certain
platforms: intel/llvm#19333

The reason is that we need to load both adapters (legacy and v2) to
check the device version. However, loading v2 adapter causes L0 loader
to emit logs for all API calls (if ZE_DEBUG=1 is set). Since the legacy
adapter used different logic for printing API calls, this would result
in printing the same logs twice. This patch fixes that.
@kbenzie kbenzie merged commit c3a510d into main Jul 14, 2025
@kbenzie kbenzie deleted the mirror-commits- branch July 14, 2025 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants