Skip to content

[SYCL][NFC] Refactor IPC for memory#21963

Open
slawekptak wants to merge 7 commits intointel:syclfrom
slawekptak:ext_ipc_mem_refactor_v3
Open

[SYCL][NFC] Refactor IPC for memory#21963
slawekptak wants to merge 7 commits intointel:syclfrom
slawekptak:ext_ipc_mem_refactor_v3

Conversation

@slawekptak
Copy link
Copy Markdown
Contributor

List of changes:

  • Introduce a common header to be used by all IPC features going forward.
  • A new ipc::memory namespace with all of the functions related to IPC for memory. The ipc_memory namespace becomes deprecated and ipc::memory should be used instead.

@slawekptak slawekptak requested a review from a team as a code owner May 8, 2026 10:35
@slawekptak slawekptak requested review from Copilot and sergey-semenov and removed request for sergey-semenov May 8, 2026 10:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the SYCL experimental IPC memory API by introducing a shared IPC “common” header and a new sycl::ext::oneapi::experimental::ipc::memory namespace, while keeping the legacy ipc_memory namespace as a compatibility layer.

Changes:

  • Add a new common IPC header defining ipc::handle and shared handle data types.
  • Implement ipc::memory::{get, put, close} and forward legacy ipc_memory::{get, put, close} to the new implementation.
  • Extend the public header with ipc::memory convenience overloads (implicit default context/device, open helpers).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
sycl/source/ipc_memory.cpp Implements the new ipc::memory API and forwards legacy ipc_memory entry points to shared helpers.
sycl/include/sycl/ext/oneapi/experimental/ipc_memory.hpp Exposes the new ipc::memory API surface and retains the legacy ipc_memory API in the same header.
sycl/include/sycl/ext/oneapi/experimental/detail/ipc_common.hpp Introduces a shared IPC handle/type definition intended for reuse across IPC features.
Comments suppressed due to low confidence (1)

sycl/include/sycl/ext/oneapi/experimental/ipc_memory.hpp:108

  • The PR description says ext::oneapi::experimental::ipc_memory is deprecated in favor of ext::oneapi::experimental::ipc::memory, but the header does not annotate the legacy API with __SYCL_DEPRECATED(...) (or similar). If deprecation is intended, please add the attribute/messages on the legacy declarations (and adjust tests accordingly).
namespace ext::oneapi::experimental::ipc_memory {

using handle_data_t = std::vector<std::byte>;

#if __cpp_lib_span
using handle_data_view_t = std::span<const std::byte, std::dynamic_extent>;
#endif

struct handle {

Comment thread sycl/include/sycl/ext/oneapi/experimental/detail/ipc_common.hpp
Comment thread sycl/include/sycl/ext/oneapi/experimental/detail/ipc_common.hpp
Comment thread sycl/source/ipc_memory.cpp
Comment thread sycl/include/sycl/ext/oneapi/experimental/ipc_memory.hpp
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