diff --git a/.github/workflows/open_cts_issue.yml b/.github/workflows/open_cts_issue.yml index 37b142a1..44a9f76a 100644 --- a/.github/workflows/open_cts_issue.yml +++ b/.github/workflows/open_cts_issue.yml @@ -31,8 +31,6 @@ jobs: repo: SYCL-CTS title: | [Spec change] ${{ github.event.pull_request.title }} - # Assign person who opened PR - assignees: ${{ github.triggering_actor }} body: | Please review whether ${{ github.event.pull_request.html_url }} by @${{ github.triggering_actor }} requires any changes to the CTS. diff --git a/README.md b/README.md index be62dbd1..964ee9fa 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ -[![SPEC 2020-8](https://img.shields.io/badge/SPEC-2020--8-orange.svg?logo=adobe-acrobat-reader)](https://www.khronos.org/registry/SYCL/specs/sycl-2020/pdf/sycl-2020.pdf) -[![SPEC 2020-8](https://img.shields.io/badge/SPEC-2020--8-orange.svg?logo=HTML5)](https://www.khronos.org/registry/SYCL/specs/sycl-2020/html/sycl-2020.html) +[![SPEC 2020-9](https://img.shields.io/badge/SPEC-2020--9-orange.svg?logo=adobe-acrobat-reader)](https://www.khronos.org/registry/SYCL/specs/sycl-2020/pdf/sycl-2020.pdf) +[![SPEC 2020-9](https://img.shields.io/badge/SPEC-2020--9-orange.svg?logo=HTML5)](https://www.khronos.org/registry/SYCL/specs/sycl-2020/html/sycl-2020.html) [![SPEC latest](https://img.shields.io/badge/SPEC-latest-red.svg?logo=adobe-acrobat-reader)](https://github.com/KhronosGroup/SYCL-Docs/actions?query=branch%3ASYCL-2020%2Fmaster+is%3Asuccess) [![Join the Slack group](https://img.shields.io/badge/chat-on%20slack-blue.svg?logo=slack)](https://khr.io/slack) diff --git a/adoc/Makefile b/adoc/Makefile index 2f22bdb2..d7b910f7 100644 --- a/adoc/Makefile +++ b/adoc/Makefile @@ -67,14 +67,8 @@ VERBOSE = --verbose # SYCL_VERSION & SYCL_REVISION) are based on this external configuration file: include $(SYCL_DIR)/sycl_version.txt -# In particular, SYCL_LANGUAGE_VERSION is derived from other values -SYCL_LANGUAGE_VERSION=$(shell printf "%04d%02d" $(SYCLLANGVERSION) \ - $(SYCLREVISION)) -SYCL_NAME=$(SYCLNAME) -SYCL_VERSION=$(SYCLVERSION) -SYCL_REVISION=$(SYCLREVISION) # Name the generated spec from the revision -SPEC_BASE_NAME=$(shell echo $(SYCL_NAME)-$(SYCL_VERSION) \ +SPEC_BASE_NAME=$(shell echo $(SYCLNAME)-$(SYCLVERSION) \ | tr [:upper:] [:lower:]) # asciidoc build attributes to set (defaults are usually OK) @@ -170,7 +164,7 @@ HEADER_DIR = $(CURDIR)/headers # Top-level spec source file SPECSRC = syclbase.adoc # Static files making up sections of the API spec. -SPECFILES = $(wildcard *.adoc) $(wildcard chapters/*.adoc) +SPECFILES = $(wildcard *.adoc) $(wildcard chapters/*.adoc) $(wildcard extensions/*.adoc) # Shorthand for where different types of generated files go. # All can be relocated by overriding GENERATED in the make invocation. diff --git a/adoc/chapters/architecture.adoc b/adoc/chapters/architecture.adoc index 499038ca..1a1f0793 100644 --- a/adoc/chapters/architecture.adoc +++ b/adoc/chapters/architecture.adoc @@ -16,10 +16,10 @@ can run on either an heterogeneous device or on the <>. The terminology used for SYCL inherits historically from OpenCL with some SYCL-specific additions. However SYCL is a generic {cpp} programming model that can be laid out on top of -other heterogeneous APIs apart from OpenCL. -SYCL implementations can provide <>s for various heterogeneous APIs, -implementing the SYCL general specification on top of them. -We refer to this heterogeneous API as the <>. +other APIs apart from OpenCL. +SYCL implementations can provide <>s for various APIs, implementing the +SYCL general specification on top of them. +We refer to this API as the <>. The SYCL general specification defines the behavior that all SYCL implementations must expose to SYCL users for a SYCL application to behave as expected. @@ -62,7 +62,7 @@ developers in other fields. == Anatomy of a SYCL application Below is an example of a typical <> which schedules a job to -run in parallel on any heterogeneous device available. +run in parallel on any device available. // An AsciiDoctor "feature", the language is specified as the second // parameter of this attribute, even if we do not want it. So add a @@ -186,8 +186,8 @@ correct. [[sec:platformmodel]] == The SYCL platform model -The SYCL platform model consists of a host connected to one or more -heterogeneous devices, called <>. +The SYCL platform model consists of a host connected to one or more devices, +called <>. <> are grouped together into one or multiple <>. An implementation may also expose empty <> that do not @@ -215,8 +215,7 @@ The <> then extracts operations from the <>. When the operation is a <>, the <> uses a <>-specific mechanism to extract the device binary from the SYCL -application and pass it to the heterogeneous API for execution on the -<>. +application and pass it to the <> for execution on the <>. A SYCL <> is divided into one or more compute units (CUs) which are each divided into one or more processing elements (PEs). @@ -241,7 +240,7 @@ programmable kernels, and only support _built-in_ functions. == The SYCL backend model SYCL is a generic programming model for the {cpp} language that can target -multiple heterogeneous APIs, such as OpenCL. +multiple APIs, such as OpenCL. SYCL implementations enable these target APIs by implementing <>. @@ -270,8 +269,8 @@ guarantee that said backends can be executed at runtime. The subset of active backends available at runtime is called _available backends_. A backend is said to be _available_ if the host platform where the SYCL -application is executed exposes support for the heterogeneous API required for -the <>. +application is executed exposes support for the API required for the +<>. It is implementation dependent whether certain backends require third-party libraries to be available in the system. @@ -366,8 +365,7 @@ been satisfied. ==== Backend resources managed by the SYCL application The SYCL runtime integrated with the SYCL application will manage the resources -required by the <> to manage the heterogeneous devices it is -providing access to. +required by the <> to manage the devices it is providing access to. This includes, but is not limited to, resource handlers, memory pools, dispatch queues and other temporary handler objects. @@ -1520,6 +1518,8 @@ queue. The situations where a SYCL runtime may be able to achieve this asynchronous fall-back is implementation-defined. +This feature is deprecated in SYCL {SYCL_VERSION}. + === Scheduling of kernels and data movement A <> takes a reference to a command group diff --git a/adoc/chapters/information_descriptors.adoc b/adoc/chapters/information_descriptors.adoc index 718742c4..32e281e9 100644 --- a/adoc/chapters/information_descriptors.adoc +++ b/adoc/chapters/information_descriptors.adoc @@ -11,7 +11,7 @@ introduced in <>. == Platform information descriptors The following interface includes all the information descriptors for the -[code]#platform# class as described in <>. +[code]#platform# class. [source,,linenums] ---- include::{header_dir}/platformInfo.h[lines=4..-1] diff --git a/adoc/chapters/introduction.adoc b/adoc/chapters/introduction.adoc index 4d8050a5..c0aca595 100644 --- a/adoc/chapters/introduction.adoc +++ b/adoc/chapters/introduction.adoc @@ -152,4 +152,28 @@ platform-specific technologies, thereby letting both users and implementers build on top of SYCL as an open platform for system-wide heterogeneous processing innovation. + +[[sec::unified-spec]] +== Unified specification + +This document provides the specification for both SYCL 2020 and SYCL +{SYCL_VERSION}. +It also provides the specification for extensions to the SYCL language in +<>. +and the specification for the OpenCL backend in <>. +All APIs in these extensions and the backend specification may be used with any +of the SYCL versions specified in this document unless the description +specifically states otherwise. + +If an API is documented as "Missing before SYCL __Version__", that API is newly +introduced in SYCL _Version_, so it is not available in versions of SYCL prior +to _Version_. + +If an API is documented as "Deprecated by SYCL __Version__", that API is still +supported, but its use is discouraged in SYCL _Version_ and in subsequent +versions of SYCL. + +If an API is documented as "Missing after SYCL __Version__", that API is removed +and no longer available in SYCL versions after _Version_. + // %%%%%%%%%%%%%%%%%%%%%%%%%%%% end introduction %%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/adoc/chapters/programming_interface.adoc b/adoc/chapters/programming_interface.adoc index f5fa3b05..92b165dd 100644 --- a/adoc/chapters/programming_interface.adoc +++ b/adoc/chapters/programming_interface.adoc @@ -412,7 +412,7 @@ a@ required for the underlying <> specified in the <> specification document, if this SYCL [code]#T# instance was originally constructed using one of the backend interoperability - [code]#make_*# functions specified in + [code]#make_*# functions specified in <>. See the relevant backend specification for details. @@ -949,12 +949,12 @@ to resolve some ambiguity in constructors with default parameters. [[sec:platform-class]] === Platform class -The SYCL [code]#platform# class encapsulates a single SYCL platform on which -SYCL kernel functions may be executed. -A SYCL platform must be associated with a single <>. +The [code]#platform# class encapsulates a single SYCL platform on which kernel +functions may be executed. +A platform must be associated with a single <>. -A SYCL [code]#platform# is also associated with any number of SYCL -[code]#devices# associated with the same <>. +A [code]#platform# also contains a set of devices that are associated with the +same <>. A platform may contain no devices. All member functions of the [code]#platform# class are synchronous and errors @@ -963,207 +963,239 @@ are handled by throwing synchronous SYCL exceptions. The execution environment for a SYCL application has a fixed number of platforms which does not vary as the application executes. The application can get a list of all these platforms via -[code]#platform::get_platforms()#, and the order of the platform objects is the +[api]#platform::get_platforms#, and the order of the platform objects is the same each time the application calls that function. The [code]#platform# class also provides constructors, but constructing a new [code]#platform# instance merely creates a new object that is a copy of one of -the objects returned by [code]#platform::get_platforms()#. +the objects returned by [api]#platform::get_platforms#. -The SYCL [code]#platform# class provides the common reference semantics (see -<>). - -==== Platform interface - -A synopsis of the SYCL [code]#platform# class is provided below. -The constructors, member functions and static member functions of the SYCL -[code]#platform# class are listed in <>, -<> and <> respectively. -The additional common special member functions and common member functions are -listed in <> in -<> and -<> respectively. +The [code]#platform# class provides the common reference semantics as defined in +<>. -// Interface of platform class -[source,,linenums] +[source,role=synopsis] ---- include::{header_dir}/platform.h[lines=4..-1] ---- +[[sec:platform-ctors]] +==== Constructors -[[table.constructors.platform]] -.Constructors of the SYCL [code]#platform# class -// Jon: Dims{6.7cm}{8.3cm} -[width="100%",options="header",separator="@",cols="65%,35%"] -|==== -@ Constructor @ Description -a@ -[source] +.[apititle]#Default constructor# +[source,role=synopsis,id=api:platform-ctor] ---- platform() ---- - a@ Constructs a SYCL [code]#platform# instance that is a copy of the - [code]#platform# which contains the device returned by - [code]#default_selector_v#. -a@ -[source] +_Effects:_ Constructs a [code]#platform# object that is a copy of the platform +which contains the device returned by [code]#default_selector_v#. + +''' + +.[apititle]#Selector constructor# +[source,role=synopsis,id=api:platform-ctor-selector] ---- -template explicit platform(const DeviceSelector&) +template +explicit platform(const DeviceSelector& selector) ---- - a@ Constructs a SYCL [code]#platform# instance that is a copy of the - [code]#platform# which contains the device returned by the - <> parameter. -|==== +_Constraints:_ The [code]#DeviceSelector# must be a type that satisfies the +requirements of a <> as defined in <>. + +_Effects:_ The [code]#selector# is called for every <> as described +in <>. +Constructs a [code]#platform# object that is a copy of the platform which +contains the device that is selected by [code]#selector#. +''' +[[sec:platform-member-funcs]] +==== Member functions -[[table.members.platform]] -.Member functions of the SYCL [code]#platform# class -[width="100%",options="header",separator="@",cols="65%,35%"] -|==== -@ Member function @ Description -a@ -[source] +.[apidef]#platform::get_backend# +[source,role=synopsis,id=api:platform-get-backend] ---- backend get_backend() const noexcept ---- - a@ Returns a [code]#backend# identifying the <> associated - with this [code]#platform#. -a@ -[source] +_Returns:_ The <> that is associated with this platform. + +''' + +.[apidef]#platform::get_info# +[source,role=synopsis,id=api:platform-get-info] ---- -template typename Param::return_type get_info() const +template +typename Param::return_type get_info() const ---- - a@ Queries this SYCL [code]#platform# for information requested by - the template parameter [code]#Param#. - The type alias [code]#Param::return_type# must be defined in - accordance with the info parameters in <> to - facilitate returning the type associated with the [code]#Param# - parameter. -a@ -[source] +_Constraints:_ The [code]#Param# must be an information descriptor for the +platform class. + +Each information descriptor specifies the return value and may also specify +preconditions, exceptions that are thrown, etc. +See <> for the platform information descriptors +that are defined by the <>. + +''' + +.[apidef]#platform::get_backend_info# +[source,role=synopsis,id=api:platform-get-backend-info] ---- -template typename Param::return_type get_backend_info() const +template +typename Param::return_type get_backend_info() const ---- - a@ Queries this SYCL [code]#platform# for <>-specific - information requested by the template parameter [code]#Param#. - The type alias [code]#Param::return_type# must be defined in - accordance with the <> specification. - Must throw an [code]#exception# with the [code]#errc::backend_mismatch# - error code if the <> that corresponds with [code]#Param# is different - from the <> that is associated with this [code]#platform#. -a@ -[source] +_Constraints:_ The [code]#Param# must be a backend information descriptor for +the platform class. + +_Throws:_ An [code]#exception# with the [code]#errc::backend_mismatch# error +code if the backend that corresponds with [code]#Param# is different from the +backend that is associated with this platform. + +Each information descriptor specifies the return value and may also specify +preconditions, additional exceptions that are thrown, etc. + +''' + +.[apidef]#platform::has# +[source,role=synopsis,id=api:platform-has] ---- bool has(aspect asp) const ---- - a@ Returns true if all of the SYCL [code]#devices# associated with this - SYCL [code]#platform# have the given <>. Returns [code]#false# if this SYCL [code]#platform# does not - contain any devices. -a@ -[source] +_Returns:_ The value [code]#true# if all of the devices associated with this +platform have the given <>. +Returns the value [code]#false# if this platform does not contain any devices. + +''' + +.[apidef]#platform::has_extension# +[source,role=synopsis,id=api:platform-has-extension] ---- bool has_extension(const std::string& extension) const ---- - a@ Deprecated, use [code]#has()# instead. -Returns [code]#true# if this SYCL [code]#platform# supports the extension queried by the [code]#extension# parameter. A SYCL [code]#platform# can only support an extension if all associated SYCL [code]#devices# support that extension. Returns [code]#false# if this SYCL [code]#platform# does not contain any devices. +Deprecated by SYCL 2020. -a@ -[source] +{note}Use [api]#platform::has# instead. +{endnote} + +_Returns:_ The value [code]#true# if this platform supports the extension +queried by the [code]#extension# parameter. +A platform only supports an extension if all associated devices support that +extension. +Returns [code]#false# if this platform does not contain any devices. + +''' + +.[apidef]#platform::get_devices# +[source,role=synopsis,id=api:platform-get-devices] ---- std::vector -get_devices(info::device_type deviceType = info::device_type::all) const +get_devices(info::device_type type = info::device_type::all) const ---- - a@ Returns a [code]#std::vector# containing all the - <> associated with this SYCL [code]#platform# - which have the device type encapsulated by [code]#deviceType#. -|==== +_Returns:_ A [code]#std::vector# containing all of the <> associated with this platform which have the device type specified by +[code]#type#. +''' +[[sec:platform-static-member-funcs]] +==== Static member functions -[[table.staticmembers.platform]] -.Static member functions of the SYCL [code]#platform# class -[width="100%",options="header",separator="@",cols="65%,35%"] -|==== -@ Static member function @ Description -a@ -[source] +.[apidef]#platform::get_platforms# +[source,role=synopsis,id=api:platform-get-platforms] ---- static std::vector get_platforms() ---- - a@ Returns a [code]#std::vector# containing all SYCL - [code]#platforms# from all <> available in the system. - -|==== +_Returns:_ A [code]#std::vector# containing all of the platforms from all +<> that are available in the system. +''' -==== Platform information descriptors +[[sec:platform-info-descriptors]] +==== Information descriptors -A <> can be queried for information using the [code]#get_info# member -function of the [code]#platform# class, specifying one of the info parameters in -[code]#info::platform#. -The possible values for each info parameter and any restrictions are defined in -the specification of the <> associated with the <>. -All info parameters in [code]#info::platform# are specified in -<> and the synopsis for [code]#info::platform# is described -in <>. +This section describes the information descriptors that can be used as the +[code]#Param# template parameter to [api]#platform::get_info#. +When the description has a _Returns_, _Throws_, etc. paragraph, this indicates +the value returned by or the exceptions thrown by the [api]#platform::get_info# +function. +''' -[[table.platform.info]] -.Platform information descriptors -// Jon: Dims{5cm}{2cm}{7cm} -[width="100%",options="header",separator="@",cols="37%,19%,44%"] -|==== -@ Platform descriptors @ Return type @ Description -a@ -[source] +.[apidef]#info::platform::version# +[source,role=synopsis,id=api:info-platform-version] ---- -info::platform::version +namespace sycl::info::platform { +struct version { + using return_type = std::string; +}; +} // namespace sycl::info::platform ---- - @ [.code]#std::string# - a@ Returns a backend-defined <> version. +_Remarks:_ Template parameter to [api]#platform::get_info#. -a@ -[source] +_Returns:_ An implementation-defined platform version string. + +''' + +.[apidef]#info::platform::name# +[source,role=synopsis,id=api:info-platform-name] ---- -info::platform::name +namespace sycl::info::platform { +struct name { + using return_type = std::string; +}; +} // namespace sycl::info::platform ---- - @ [.code]#std::string# - a@ Returns the name of the <>. +_Remarks:_ Template parameter to [api]#platform::get_info#. -a@ -[source] +_Returns:_ An implementation-defined name for this platform. + +''' + +.[apidef]#info::platform::vendor# +[source,role=synopsis,id=api:info-platform-vendor] ---- -info::platform::vendor +namespace sycl::info::platform { +struct vendor { + using return_type = std::string; +}; +} // namespace sycl::info::platform ---- - @ [.code]#std::string# - a@ Returns the name of the vendor providing the <>. +_Remarks:_ Template parameter to [api]#platform::get_info#. -a@ -[source] +_Returns:_ An implementation-defined name for the vendor providing this +platform. + +''' + +.[apidef]#info::platform::extensions# +[source,role=synopsis,id=api:info-platform-extensions] ---- -info::platform::extensions +namespace sycl::info::platform { +struct extensions { + using return_type = std::vector; +}; +} // namespace sycl::info::platform ---- - @ [.code]#std::vector# - a@ Deprecated, use [code]#device::get_info()# with - [code]#info::device::aspects# instead. +Deprecated by SYCL 2020. + +{note}Use [code]#device::get_info()# with [code]#info::device::aspects# instead. +{endnote} -Returns the extensions supported by this [code]#platform#. Returns an empty list if this [code]#platform# does not contain any devices. +_Remarks:_ Template parameter to [api]#platform::get_info#. -|==== +_Returns:_ The extensions supported by this platform. +Returns an empty list if this platform does not contain any devices. +''' [[sec:interface.context.class]] @@ -3706,7 +3738,7 @@ Some queue member functions are shortcuts to member functions of the These are listed in <>. // Interface for class: queue -[source,,linenums] +[source,,linenums,subs="attributes+"] ---- include::{header_dir}/queue.h[lines=4..-1] ---- @@ -3955,7 +3987,8 @@ a@ ---- template event submit(T cgf, queue& secondaryQueue) ---- -a@ Submit a <> to the queue, in order to be scheduled +a@ Deprecated in SYCL {SYCL_VERSION}. +Submit a <> to the queue, in order to be scheduled for execution on the device. On a kernel error, this <> is then scheduled for execution on the secondary queue. Returns an event, which corresponds to the queue the <> @@ -10932,7 +10965,7 @@ modification of shared allocations through the aspect See <> for more details. Performance hints for shared allocations may be specified by the user by -enqueueing [code]#prefetch# operations on a device. +enqueuing [code]#prefetch# operations on a device. These operations inform the SYCL runtime that the specified shared allocation is likely to be accessed on the device in the future, and that it is free to migrate the allocation to the device. @@ -14107,6 +14140,7 @@ fall-back from primary to secondary queue are unspecified in the specification. Even if a command group is run on the secondary queue, the requirement that host code within the command group is executed exactly once remains, regardless of whether the fallback queue is used for execution. +The fallback queue feature is deprecated in SYCL {SYCL_VERSION}. The command group [code]#handler# class provides the interface for all of the member functions that are able to be executed inside the command group scope, @@ -17203,7 +17237,7 @@ executions are decoupled from one another except at specific points. For example, device code executions often begin when dependencies in the SYCL task graph are satisfied, which occurs asynchronously from host code execution. As a result of this the errors that occur on a device cannot be thrown directly -from a host API call, because the call enqueueing a device action has typically +from a host API call, because the call enqueuing a device action has typically already returned by the time that the error occurs. Such errors are not detected until the error-causing task executes or tries to execute, and we refer to these as <>. @@ -17302,6 +17336,8 @@ context will be used and if the context was also constructed without an The <> event returned by that function will be relevant to the queue where the kernel has been enqueued. +The secondary queue feature is deprecated in SYCL {SYCL_VERSION}. + Below is an example of catching a SYCL [code]#exception# and printing out the error message. @@ -21915,9 +21951,9 @@ a group. The result of a call to these functions is non-deterministic if the binary operator is not commutative and associative. -Only the binary operators defined in <> are supported by -the [code]#reduce# functions in SYCL 2020, but the standard {cpp} syntax is used -for forward compatibility with future SYCL versions. +Only the binary operators defined in <> are currently +supported by the SYCL [code]#reduce# functions, but the standard {cpp} syntax is +used for forward compatibility with future SYCL versions. [source,,linenums] ---- @@ -22049,8 +22085,8 @@ result returned to each work-item represents a partial prefix sum. The result of a call to a scan is non-deterministic if the binary operator is not associative. -Only the binary operators defined in <> are supported by -the scan functions in SYCL 2020, but the standard {cpp} syntax is used for +Only the binary operators defined in <> are currently +supported by the SYCL scan functions, but the standard {cpp} syntax is used for forward compatibility with future SYCL versions. [source,,linenums] diff --git a/adoc/chapters/what_changed.adoc b/adoc/chapters/what_changed.adoc index 5085b0d3..f4322252 100644 --- a/adoc/chapters/what_changed.adoc +++ b/adoc/chapters/what_changed.adoc @@ -4,7 +4,11 @@ [[cha:what-changed-from]] = What has changed from previous versions -[[sec:what-changed-between]] +== What has changed from SYCL 2020 to SYCL {SYCL_VERSION} + + * The overload with a fallback/secondary queue parameter of the + [code]#submit()# member function of [code]#sycl::queue# was deprecated. + == What has changed from SYCL 1.2.1 to SYCL 2020 The SYCL runtime moved from namespace [code]#cl::sycl# provided by diff --git a/adoc/code/usm_device.cpp b/adoc/code/usm_device.cpp index 36f499a1..8e0d88c8 100644 --- a/adoc/code/usm_device.cpp +++ b/adoc/code/usm_device.cpp @@ -9,8 +9,7 @@ int main() { // Create a default queue to enqueue work to the default device queue myQueue; - // Allocate shared memory bound to the device and context associated to the - // queue + // Allocate device USM, using the device and context associated with the queue int* data = sycl::malloc_device(1024, myQueue); myQueue.parallel_for(1024, [=](id<1> idx) { diff --git a/adoc/extensions/index.adoc b/adoc/extensions/index.adoc new file mode 100644 index 00000000..07062df6 --- /dev/null +++ b/adoc/extensions/index.adoc @@ -0,0 +1,13 @@ +[appendix] +[[chapter:extensions]] += Optional extensions + +Each of the optional extensions in this appendix has been approved by the SYCL +working group. +These extensions may be promoted to core features in future versions of the SYCL +specification, but their design is subject to change. + +(There are currently no extensions in this appendix.) + +// leveloffset=2 allows extensions to be written as standalone documents +// include::sycl_khr_extension_name.adoc[leveloffset=2] diff --git a/adoc/headers/platform.h b/adoc/headers/platform.h index f28f1445..64609d35 100644 --- a/adoc/headers/platform.h +++ b/adoc/headers/platform.h @@ -14,7 +14,7 @@ class platform { backend get_backend() const noexcept; std::vector - get_devices(info::device_type = info::device_type::all) const; + get_devices(info::device_type type = info::device_type::all) const; template typename Param::return_type get_info() const; diff --git a/adoc/headers/queue.h b/adoc/headers/queue.h index 233bc6b7..fa9a22c9 100644 --- a/adoc/headers/queue.h +++ b/adoc/headers/queue.h @@ -60,6 +60,7 @@ class queue { template event submit(T cgf); + // Deprecated in SYCL {SYCL_VERSION}. template event submit(T cgf, const queue& secondaryQueue); void wait(); diff --git a/adoc/scripts/verify_reflow_conformance.sh b/adoc/scripts/verify_reflow_conformance.sh index 3e51d3f9..9253a9ac 100755 --- a/adoc/scripts/verify_reflow_conformance.sh +++ b/adoc/scripts/verify_reflow_conformance.sh @@ -1,11 +1,13 @@ #!/usr/bin/env bash error=0 -for file in adoc/chapters/*.adoc; +for file in adoc/chapters/*.adoc adoc/extensions/*.adoc; do echo "$file" - ./adoc/scripts/reflow.py -out tmp_ci/ -- "$file" - diff "$file" "${file/adoc\/chapters/tmp_ci}" + dir=`dirname $file` + dir=`basename $dir` + ./adoc/scripts/reflow.py -out "tmp_ci/$dir" -- "$file" + diff "$file" "${file/adoc/tmp_ci}" error=$((error+$?)) done diff --git a/adoc/syclbase.adoc b/adoc/syclbase.adoc index e2533049..f6f03041 100644 --- a/adoc/syclbase.adoc +++ b/adoc/syclbase.adoc @@ -159,5 +159,7 @@ include::chapters/what_changed.adoc[] include::chapters/references.adoc[] +include::extensions/index.adoc[] + include::chapters/glossary.adoc[] //endif::[] diff --git a/sycl_version.txt b/sycl_version.txt index 23206744..180d44fe 100644 --- a/sycl_version.txt +++ b/sycl_version.txt @@ -1,4 +1,4 @@ -SYCLLANGVERSION=2020 +SYCLLANGVERSION=NEXT SYCLNAME=SYCL -SYCLVERSION=2020 -SYCLREVISION=9 +SYCLVERSION=NEXT +SYCLREVISION=1