RFC Device Array experimental update - #2807
Open
danhoeflinger wants to merge 2 commits into
Open
danhoeflinger wants to merge 2 commits into
danhoeflinger wants to merge 2 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the device-container RFCs to document the intended experimental/proposed split.
Changes:
- Moves
device_arrayanddevice_allocatordocumentation to experimental status. - Revises transfer and allocator APIs.
- Adds open questions and experimental exit criteria.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
rfcs/proposed/device_vector/README.md |
Documents the RFC status split. |
rfcs/proposed/device_vector/device_vector_compat.md |
Updates allocator requirements and open questions. |
rfcs/experimental/device_array/README.md |
Documents the experimental APIs, behavior, and exit criteria. |
Suppressed comments (6)
rfcs/experimental/device_array/README.md:14
- This status is premature in this branch: there is no
include/oneapi/dpl/experimental/device_arrayheader, and searches underinclude/andtest/find nodevice_arrayordevice_allocatorimplementation or tests. That also makes the documented include/example unusable and conflicts with the experimental-state requirement inrfcs/experimental/README.md:3-6. Merge the implementation/release first, or keep this RFC proposed.
rfcs/experimental/device_array/README.md:113 - This claims a uniform data-first order and three forms for each operation, but
read_at/to_vectorhave only two forms and the newwrite_atdeliberately takes the position before the value. Describe bulk and single-element overloads separately so the API summary matches the declarations.
rfcs/experimental/device_array/README.md:101 - The stated
noexceptcondition omits allocator state. The same RFC saysdevice_allocatorstores asycl::property_list(lines 264-266), so moving/assigning the base can also depend on that member; move assignment additionally has a distinct condition from move construction. Document each operation in terms of all stored state rather than only context/device.
rfcs/experimental/device_array/README.md:328 - Remove the duplicated space.
This issue also appears on line 484 of the same file.
rfcs/experimental/device_array/README.md:484
- Correct the spelling of “occurrence.”
rfcs/experimental/device_array/README.md:501 - This exit criterion is an incomplete sentence: “whether the shared base and the DeviceAllocator contract” has no predicate, so it does not state what the implementation is meant to validate.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| | Part | State | Document | | ||
| |---|---|---| | ||
| | `device_array<T>`, `device_allocator<T, Alignment>` | **Experimental** — implemented and released in `oneapi::dpl::experimental` | [rfcs/experimental/device_array](../../experimental/device_array/README.md) | |
Comment on lines
+286
to
+289
| The default allocator, `oneapi::dpl::experimental::device_allocator`, is already | ||
| implemented and released as an experimental feature alongside `device_array`; it is | ||
| specified in the | ||
| [device_array RFC](../../experimental/device_array/README.md#device_allocator). It is |
| ``` | ||
|
|
||
| Allocation failure surfaces as the `sycl::exception` thrown by the underlying USM `sycl::malloc_device` or `sycl::aligned_alloc_device`. | ||
| The allocator must be copy-constructible and copy-assignable. It should signal allocation |
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
Signed-off-by: Dan Hoeflinger <dan.hoeflinger@intel.com>
danhoeflinger
force-pushed
the
dev/dhoeflin/rfc_device_array_update
branch
from
August 21, 2026 20:14
2afb56f to
fd6ec8a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update of the device_array / device_allocator / device_vector RFC after implementation of device_array.
Move device_array and device_allocator to experimental, add exit criteria.
Keep device_vector in proposed.
Adjusted RFC with things discovered during implementation.