-
Notifications
You must be signed in to change notification settings - Fork 755
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'github/sycl' into ur_cmdbuf_enqueue
- Loading branch information
Showing
109 changed files
with
2,102 additions
and
1,841 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Considerations for working on KHR extensions | ||
|
||
SYCL specification evolves through embedding extensions developed by various | ||
vendors, including Khronos Group itself (`khr` extensions). | ||
|
||
In order for a KHR extension to be accepted, there must be CTS tests for it and | ||
at least one implementation which passes them. | ||
|
||
Considering that KHR extensions are being developed in public, we can start | ||
prototyping them as soon as corresponding PR for an extension is published at | ||
KhronosGroup/SYCL-Docs. | ||
|
||
However, we shouldn't be exposing those extensions to end users until the | ||
extension if finalised, ratified and published by Khronos - due to risk of an | ||
extension changing during that process and lack of the officially published | ||
version of it. | ||
|
||
So, we can have a PR but can't merge it. Keeping PRs opened for a long time is a | ||
bad practice, because they tend to get stale: there are merge conflicts, | ||
potential functional issues due to the codebase changes, etc. | ||
|
||
In order for us to avoid stale PRs, all functionality which is a public | ||
interface of an "in-progress" KHR extension, must be hidden under | ||
`__DPCPP_ENABLE_UNFINISHED_KHR_EXTENSIONS` macro. That way we can merge a PR to | ||
avoid constantly maintaining it in a good shape, start automatically testing it | ||
but at the same time avoid exposing incomplete and/or undocumented feature to | ||
end users just yet. | ||
|
||
"in-progress" KHR extension term used above is defined as: | ||
- PR proposing a KHR extension has not been merged/cherry-picked to `sycl-2020` | ||
branch of KhronosGroup/SYCL-Docs. | ||
|
||
That only happens after all formal processes on Khronos Group side are | ||
completed so an extension can be considered good and stable to be released by | ||
us. | ||
|
||
Note: merge of an extension proposal PR into `main` branch of | ||
KhronosGroup/SYCL-Docs repo is **not** enough. | ||
- Published (i.e. the above bullet complete) KHR extension, which hasn't been | ||
fully implemented by us | ||
|
||
The macro is **not** intended to be used by end users and its purpose is to | ||
simplify our development process by allowing us to merge implementation (full | ||
or partial) of the aforementioned extensions earlier to simplify maintenance and | ||
enable automated testing. | ||
|
||
Due to this reason, we are not providing a separate macro for each "in-progress" | ||
KHR extension we may (partially) support, but just a single guard. |
This file contains 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
This file contains 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
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.