From 19bc35a6d05f92bb83d111b659486bc2a40d3a09 Mon Sep 17 00:00:00 2001 From: James Brodman Date: Thu, 5 May 2022 15:24:38 -0400 Subject: [PATCH 01/12] Initial commit of oneapi extension proposal for adding Peer-to-Peer mechanisms to SYCL Signed-off-by: James Brodman --- .../proposed/sycl_ext_oneapi_p2p.asciidoc | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc new file mode 100644 index 0000000000000..2dc6f07b994fa --- /dev/null +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc @@ -0,0 +1,157 @@ += sycl_ext_oneapi_myextension + +:source-highlighter: coderay +:coderay-linenums-mode: table + +// This section needs to be after the document title. +:doctype: book +:toc2: +:toc: left +:encoding: utf-8 +:lang: en +:dpcpp: pass:[DPC++] + +// Set the default source code type in this document to C++, +// for syntax highlighting purposes. This is needed because +// docbook uses c++ and html5 uses cpp. +:language: {basebackend@docbook:c++:cpp} + + +== Notice + +[%hardbreaks] +Copyright (C) 2022-2022 Intel Corporation. All rights reserved. + +Khronos(R) is a registered trademark and SYCL(TM) and SPIR(TM) are trademarks +of The Khronos Group Inc. OpenCL(TM) is a trademark of Apple Inc. used by +permission by Khronos. + + +== Contact + +To report problems with this extension, please open a new issue at: + +https://github.com/intel/llvm/issues + + +== Dependencies + +This extension is written against the SYCL 2020 revision 4 specification. All +references below to the "core SYCL specification" or to section numbers in the +SYCL specification refer to that revision. + +== Status + +This is a proposed extension specification, intended to gather community +feedback. Interfaces defined in this specification may not be implemented yet +or may be in a preliminary state. The specification itself may also change in +incompatible ways before it is finalized. *Shipping software products should +not rely on APIs defined in this specification.* + + +== Overview + +This extension adds support for mechanisms to query and enable support for +direct memory access between peer devices in a system. +In particular, this allows one device to directly access USM Device allocations +for a peer device. Peer to peer capabilities are useful as they can provide +access to a peer device's memory inside a compute kernel and optimized memory +copies between peer devices. + +== Specification + +=== Feature test macro + +This extension provides a feature-test macro as described in the core SYCL +specification. An implementation supporting this extension must predefine the +macro `SYCL_EXT_ONEAPI_P2P` to one of the values defined in the table +below. Applications can test for the existence of this macro to determine if +the implementation supports this feature, or applications can test the macro's +value to determine which of the extension's features the implementation +supports. + +[%header,cols="1,5"] +|=== +|Value +|Description + +|1 +|Initial version of this extension. +|=== + + +=== Peer to Peer (P2P) Memory Access APIs + +This extension adds support for mechanisms to query and enable support for +direct memory access between peer devices in a system. +In particular, this allows one device to directly access USM Device +allocations for a peer device in the same context. +Peer to peer capabilities are useful as they can provide access to a peer +device's memory inside a compute kernel and also optimized memory copies between +peer devices. + +This extension adds four new member functions to the device class, as described +below. + +[source,c++] +---- +namespace sycl { +namespace ext { +namespace oneapi { +enum class p2p_property { + access_supported, + atomics_supported +}; +} // namespace oneapi +} // namespace ext + +class device { +public: + bool ext_oneapi_can_access_peer(const device &peer); + void ext_oneapi_enable_peer_access(const device &peer); + void ext_oneapi_disable_peer_access(const device &peer); + int ext_oneapi_get_p2p_property(const device &peer, ext::oneapi::p2p_property value); +}; + +} // namespace sycl +---- + +The semantics of the new functions are: + +|=== +| Member Function | Description + +| bool can_access_peer(device peer) +| Queries if this device may directly access the peer device's memory. +Returns true if direct access is supported. + +| void enable_peer_access(device peer) +| Enables this device to access USM device allocations located on the peer +device. This does not permit the peer device to access this device's memory. +Throws an exception if access cannot be enabled or if access is already +enabled. This device and the peer device must be in the same context. + +| void disable_peer_access(device peer) +| Disables access to the peer device's memory from this device. Throws an +exception if access cannot be disabled or if access is not enabled. + +| int get_p2p_property(const device &peer, ext::oneapi::p2p_property value) +| This method allows querying extra details about peer-to-peer connections +between this device and the peer device. +Valid properties are defined below. Backends may define additional +backend-specific properties that may also be queried. + +|=== + +=== P2P Properties Query + +|=== +| ext::oneapi::p2p_property::access_supported +| Returns 1 if peer access is supported between this device and the peer device. +Note that querying this property is similar to calling can_access_peer. + +| ext::oneapi::p2p_property::atomics_supported +| Returns 1 if peer access supports native atomic operations over the +peer-to-peer link +|=== + From 96ff0cc27cbd309deb2f3a4f116bd1bb6f7a33c7 Mon Sep 17 00:00:00 2001 From: James Brodman Date: Thu, 19 May 2022 16:08:47 -0400 Subject: [PATCH 02/12] Update based on feedback Signed-off-by: James Brodman --- ...c => sycl_ext_oneapi_peer_access.asciidoc} | 56 +++++++++---------- 1 file changed, 25 insertions(+), 31 deletions(-) rename sycl/doc/extensions/proposed/{sycl_ext_oneapi_p2p.asciidoc => sycl_ext_oneapi_peer_access.asciidoc} (71%) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc similarity index 71% rename from sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc rename to sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index 2dc6f07b994fa..16c84b09d8337 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_p2p.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -1,4 +1,4 @@ -= sycl_ext_oneapi_myextension += sycl_ext_oneapi_peer_access :source-highlighter: coderay :coderay-linenums-mode: table @@ -36,7 +36,7 @@ https://github.com/intel/llvm/issues == Dependencies -This extension is written against the SYCL 2020 revision 4 specification. All +This extension is written against the SYCL 2020 revision 5 specification. All references below to the "core SYCL specification" or to section numbers in the SYCL specification refer to that revision. @@ -52,9 +52,10 @@ not rely on APIs defined in this specification.* == Overview This extension adds support for mechanisms to query and enable support for -direct memory access between peer devices in a system. -In particular, this allows one device to directly access USM Device allocations -for a peer device. Peer to peer capabilities are useful as they can provide +memory access between peer devices in a system. +In particular, this allows one device to access USM Device allocations +for a peer device. This extension does not apply to USM Shared allocations. +Peer to peer capabilities are useful as they can provide access to a peer device's memory inside a compute kernel and optimized memory copies between peer devices. @@ -64,7 +65,7 @@ copies between peer devices. This extension provides a feature-test macro as described in the core SYCL specification. An implementation supporting this extension must predefine the -macro `SYCL_EXT_ONEAPI_P2P` to one of the values defined in the table +macro `SYCL_EXT_ONEAPI_PEER_ACCESS` to one of the values defined in the table below. Applications can test for the existence of this macro to determine if the implementation supports this feature, or applications can test the macro's value to determine which of the extension's features the implementation @@ -98,19 +99,21 @@ below. namespace sycl { namespace ext { namespace oneapi { -enum class p2p_property { +enum class peer_access { access_supported, - atomics_supported + access_enabled, + atomics_supported, }; } // namespace oneapi } // namespace ext class device { public: - bool ext_oneapi_can_access_peer(const device &peer); + bool ext_oneapi_can_access_peer(const device &peer, + ext::oneapi::peer_access value = + ext::oneapi::peer_access::access_supported); void ext_oneapi_enable_peer_access(const device &peer); void ext_oneapi_disable_peer_access(const device &peer); - int ext_oneapi_get_p2p_property(const device &peer, ext::oneapi::p2p_property value); }; } // namespace sycl @@ -121,37 +124,28 @@ The semantics of the new functions are: |=== | Member Function | Description -| bool can_access_peer(device peer) +| bool ext_oneapi_can_access_peer(device peer, + ext::oneapi::peer_access value = + ext::oneapi::peer_access::access_supported) | Queries if this device may directly access the peer device's memory. -Returns true if direct access is supported. +Returns true if access is supported and `value` is defaulted to +`ext::oneapi::peer_access::access_supported`. Returns true if `value` is +`ext::oneapi::peer_access::access_enabled` and peer access has been enabled +between this device and the peer device. Returns true if `value` is +`ext::oneapi::peer_access::atomics_supported` and this device can perform atomic +operations on the peer's memory. Returns false otherwise. + | void enable_peer_access(device peer) | Enables this device to access USM device allocations located on the peer device. This does not permit the peer device to access this device's memory. +This device must be in the same context as the allocations being accessed. Throws an exception if access cannot be enabled or if access is already -enabled. This device and the peer device must be in the same context. +enabled. | void disable_peer_access(device peer) | Disables access to the peer device's memory from this device. Throws an exception if access cannot be disabled or if access is not enabled. -| int get_p2p_property(const device &peer, ext::oneapi::p2p_property value) -| This method allows querying extra details about peer-to-peer connections -between this device and the peer device. -Valid properties are defined below. Backends may define additional -backend-specific properties that may also be queried. - -|=== - -=== P2P Properties Query - -|=== -| ext::oneapi::p2p_property::access_supported -| Returns 1 if peer access is supported between this device and the peer device. -Note that querying this property is similar to calling can_access_peer. - -| ext::oneapi::p2p_property::atomics_supported -| Returns 1 if peer access supports native atomic operations over the -peer-to-peer link |=== From 164f4622176510c204227cb5ff9bdba51a5ca877 Mon Sep 17 00:00:00 2001 From: James Brodman Date: Thu, 8 Sep 2022 14:50:42 -0400 Subject: [PATCH 03/12] Updates based on feedback, round 2 Signed-off-by: James Brodman --- .../sycl_ext_oneapi_peer_access.asciidoc | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index 16c84b09d8337..d89380776ee7a 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -91,7 +91,7 @@ Peer to peer capabilities are useful as they can provide access to a peer device's memory inside a compute kernel and also optimized memory copies between peer devices. -This extension adds four new member functions to the device class, as described +This extension adds the following new member functions to the device class, as described below. [source,c++] @@ -122,29 +122,36 @@ public: The semantics of the new functions are: |=== -| Member Function | Description +|Member Function |Description -| bool ext_oneapi_can_access_peer(device peer, +|bool ext_oneapi_can_access_peer(const device &peer, ext::oneapi::peer_access value = ext::oneapi::peer_access::access_supported) -| Queries if this device may directly access the peer device's memory. -Returns true if access is supported and `value` is defaulted to -`ext::oneapi::peer_access::access_supported`. Returns true if `value` is -`ext::oneapi::peer_access::access_enabled` and peer access has been enabled -between this device and the peer device. Returns true if `value` is -`ext::oneapi::peer_access::atomics_supported` and this device can perform atomic -operations on the peer's memory. Returns false otherwise. +a|Queries the peer access status between this device and `peer` according to +the query `value`: +* `ext::oneapi::peer_access::access_supported`: Returns true only if it is +possible for this device to enable peer access to USM device memory allocations +located on the `peer` device. -| void enable_peer_access(device peer) -| Enables this device to access USM device allocations located on the peer +* `ext::oneapi::peer_access::access_enabled`: Returns true only if peer access is +currently enabled from this device to the `peer` device. + +* `ext::oneapi::peer_access::atomics_supported`: When this query returns true, +it indicates that this device may perform atomic operationson USM device memory +allocations located on the `peer` device when peer access is enabled to that +device. If the query returns false, attempting to perform atomic operations on +`peer` memory will have undefined behavior. + +|void enable_peer_access(const device &peer) +|Enables this device to access USM device allocations located on the peer device. This does not permit the peer device to access this device's memory. This device must be in the same context as the allocations being accessed. Throws an exception if access cannot be enabled or if access is already enabled. -| void disable_peer_access(device peer) -| Disables access to the peer device's memory from this device. Throws an +|void disable_peer_access(const device &peer) +|Disables access to the peer device's memory from this device. Throws an exception if access cannot be disabled or if access is not enabled. |=== From 2eb8ff8eae7acb888b147eaf6472a1c5b838b76b Mon Sep 17 00:00:00 2001 From: jbrodman Date: Fri, 9 Sep 2022 13:36:11 -0400 Subject: [PATCH 04/12] Update sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc Co-authored-by: Greg Lueck --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index d89380776ee7a..c87fad46a0734 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -138,7 +138,7 @@ located on the `peer` device. currently enabled from this device to the `peer` device. * `ext::oneapi::peer_access::atomics_supported`: When this query returns true, -it indicates that this device may perform atomic operationson USM device memory +it indicates that this device may perform atomic operations on USM device memory allocations located on the `peer` device when peer access is enabled to that device. If the query returns false, attempting to perform atomic operations on `peer` memory will have undefined behavior. From e3b12fc60e9055a7da5a5f2750b220a1b0fceca0 Mon Sep 17 00:00:00 2001 From: James Brodman Date: Mon, 30 Jan 2023 15:45:47 -0500 Subject: [PATCH 05/12] Feedback vol 3 Signed-off-by: James Brodman --- .../proposed/sycl_ext_oneapi_peer_access.asciidoc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index d89380776ee7a..2abb29e2309ec 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -138,15 +138,19 @@ located on the `peer` device. currently enabled from this device to the `peer` device. * `ext::oneapi::peer_access::atomics_supported`: When this query returns true, -it indicates that this device may perform atomic operationson USM device memory -allocations located on the `peer` device when peer access is enabled to that -device. If the query returns false, attempting to perform atomic operations on -`peer` memory will have undefined behavior. +it indicates that this device may concurrently perform atomic operations on USM +device memory allocations located on the `peer` device when peer access is enabled +to that device. Atomics performed on a peer device's memory must have +`memory_scope::system` scope. +If the query returns false, attempting to perform atomic operations +on `peer` memory will have undefined behavior. |void enable_peer_access(const device &peer) |Enables this device to access USM device allocations located on the peer device. This does not permit the peer device to access this device's memory. -This device must be in the same context as the allocations being accessed. +Once this access is enabled, SYCL kernel functions and the explicit memory +functions may access USM device allocations on the peer device subject to the +normal rules about context as described in the core SYCL specification. Throws an exception if access cannot be enabled or if access is already enabled. From d28af858bf847a5550953e3dbc19927301c5d3c1 Mon Sep 17 00:00:00 2001 From: jbrodman Date: Tue, 28 Feb 2023 15:38:31 -0500 Subject: [PATCH 06/12] Update sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc Co-authored-by: Greg Lueck --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index 2abb29e2309ec..27dc2488150f7 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -138,7 +138,7 @@ located on the `peer` device. currently enabled from this device to the `peer` device. * `ext::oneapi::peer_access::atomics_supported`: When this query returns true, -it indicates that this device may concurrently perform atomic operations on USM +it indicates that this device may concurrently access and atomically modify USM device memory allocations located on the `peer` device when peer access is enabled to that device. Atomics performed on a peer device's memory must have `memory_scope::system` scope. From 0c4d39dc0d8f920d98cbeba2c5073174ba595a2f Mon Sep 17 00:00:00 2001 From: jbrodman Date: Tue, 28 Feb 2023 15:38:43 -0500 Subject: [PATCH 07/12] Update sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc Co-authored-by: Greg Lueck --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index 27dc2488150f7..288f9ae3eefca 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -142,8 +142,9 @@ it indicates that this device may concurrently access and atomically modify USM device memory allocations located on the `peer` device when peer access is enabled to that device. Atomics performed on a peer device's memory must have `memory_scope::system` scope. -If the query returns false, attempting to perform atomic operations -on `peer` memory will have undefined behavior. +If the query returns false, attempting to concurrently access or atomically +modify USM device memory located on the `peer` device results in undefined +behavior. |void enable_peer_access(const device &peer) |Enables this device to access USM device allocations located on the peer From ab8625ee07c0697fbfc55dcea4852185e8c4f75a Mon Sep 17 00:00:00 2001 From: jbrodman Date: Tue, 28 Feb 2023 15:42:57 -0500 Subject: [PATCH 08/12] Update sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc Co-authored-by: Greg Lueck --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index 288f9ae3eefca..27e2ddf632633 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -20,7 +20,7 @@ == Notice [%hardbreaks] -Copyright (C) 2022-2022 Intel Corporation. All rights reserved. +Copyright (C) 2022-2023 Intel Corporation. All rights reserved. Khronos(R) is a registered trademark and SYCL(TM) and SPIR(TM) are trademarks of The Khronos Group Inc. OpenCL(TM) is a trademark of Apple Inc. used by From 006dd207e8e65440b1a37878c47aca58926ceacb Mon Sep 17 00:00:00 2001 From: James Brodman Date: Tue, 28 Feb 2023 16:32:59 -0500 Subject: [PATCH 09/12] Adjust wording based on feedback and bump SYCL spec rev Signed-off-by: James Brodman --- .../proposed/sycl_ext_oneapi_peer_access.asciidoc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index 27e2ddf632633..a411072c0744d 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -36,7 +36,7 @@ https://github.com/intel/llvm/issues == Dependencies -This extension is written against the SYCL 2020 revision 5 specification. All +This extension is written against the SYCL 2020 revision 6 specification. All references below to the "core SYCL specification" or to section numbers in the SYCL specification refer to that revision. @@ -152,12 +152,15 @@ device. This does not permit the peer device to access this device's memory. Once this access is enabled, SYCL kernel functions and the explicit memory functions may access USM device allocations on the peer device subject to the normal rules about context as described in the core SYCL specification. -Throws an exception if access cannot be enabled or if access is already -enabled. +If this devcie does not support peer access (as defined by +`peer_access::access_supported`), throws an `exception` with the +`errc::feature_not_supported` error code. If access is already enabled, +throws an exception with the `errc::invalid` error code. + |void disable_peer_access(const device &peer) -|Disables access to the peer device's memory from this device. Throws an -exception if access cannot be disabled or if access is not enabled. +|Disables access to the peer device's memory from this device. If peer access +is not enabled, throws an `excpetion` with the `errc::invalid` error code. |=== From 2329d7184d6fccab4e4ff54e368809a75bd924b5 Mon Sep 17 00:00:00 2001 From: jbrodman Date: Thu, 2 Mar 2023 13:30:17 -0500 Subject: [PATCH 10/12] Update sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc Co-authored-by: Greg Lueck --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index a411072c0744d..a7b090a071762 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -160,7 +160,7 @@ throws an exception with the `errc::invalid` error code. |void disable_peer_access(const device &peer) |Disables access to the peer device's memory from this device. If peer access -is not enabled, throws an `excpetion` with the `errc::invalid` error code. +is not enabled, throws an `exception` with the `errc::invalid` error code. |=== From 232ce60b95048766119e85b61e6733b780874a42 Mon Sep 17 00:00:00 2001 From: jbrodman Date: Thu, 2 Mar 2023 13:30:28 -0500 Subject: [PATCH 11/12] Update sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc Co-authored-by: Greg Lueck --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index a7b090a071762..c8086804dfa52 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -152,7 +152,7 @@ device. This does not permit the peer device to access this device's memory. Once this access is enabled, SYCL kernel functions and the explicit memory functions may access USM device allocations on the peer device subject to the normal rules about context as described in the core SYCL specification. -If this devcie does not support peer access (as defined by +If this device does not support peer access (as defined by `peer_access::access_supported`), throws an `exception` with the `errc::feature_not_supported` error code. If access is already enabled, throws an exception with the `errc::invalid` error code. From 549ce0d40ac4ae689952e8194ef57f134f8b334c Mon Sep 17 00:00:00 2001 From: James Brodman Date: Thu, 2 Mar 2023 14:04:33 -0500 Subject: [PATCH 12/12] Remove enabled query as it's uncclear any backend really supports it Signed-off-by: James Brodman --- .../extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc | 3 --- 1 file changed, 3 deletions(-) diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc index c8086804dfa52..8001c2c1d9cc2 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_peer_access.asciidoc @@ -134,9 +134,6 @@ the query `value`: possible for this device to enable peer access to USM device memory allocations located on the `peer` device. -* `ext::oneapi::peer_access::access_enabled`: Returns true only if peer access is -currently enabled from this device to the `peer` device. - * `ext::oneapi::peer_access::atomics_supported`: When this query returns true, it indicates that this device may concurrently access and atomically modify USM device memory allocations located on the `peer` device when peer access is enabled