From 5cc09242a8b0ca87a762b77217784006b43ec2db Mon Sep 17 00:00:00 2001 From: vbeckham Date: Thu, 14 May 2026 13:26:29 +0100 Subject: [PATCH 1/3] Clarify optional kernel features. --- adoc/chapters/device_compiler.adoc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/adoc/chapters/device_compiler.adoc b/adoc/chapters/device_compiler.adoc index a9ffe2078..911e78a29 100644 --- a/adoc/chapters/device_compiler.adoc +++ b/adoc/chapters/device_compiler.adoc @@ -410,17 +410,21 @@ The following aspects are those that correspond to optional kernel features: * [code]#fp64# * [code]#atomic64# -In addition, the following {cpp} attributes from <> also -correspond to optional kernel features because they force the kernel to be -compiled in a way that might not run on all devices: +In addition, the following {cpp} attributes from +correspond to optional kernel features for some integer constant values of +[code]#size#, since not all devices will support arbitrary work group and sub +group sizes. - * [code]#reqd_work_group_size()# - * [code]#reqd_sub_group_size()# + * [code]#reqd_work_group_size(size)# + * [code]#reqd_sub_group_size(size)# In order to guarantee source code portability of SYCL applications that use optional kernel features, all SYCL implementations must be able to compile device code that uses these optional features regardless of whether the implementation supports the features on any of its devices. +For the two C++ attributes listed above, all implementations must be able to +compile kernels that are decorated with these attributes regardless of whether +the implementation supports the specified work-group or sub-group size. Of course, applications that make use of optional kernel features should ensure that a kernel using such a feature is submitted only to a device that supports From 100d02df60d70aee0cc19c29a8d0ff32c36da203 Mon Sep 17 00:00:00 2001 From: vbeckham Date: Tue, 19 May 2026 11:09:54 +0100 Subject: [PATCH 2/3] Clarifying device vs. implementation --- adoc/chapters/device_compiler.adoc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/adoc/chapters/device_compiler.adoc b/adoc/chapters/device_compiler.adoc index 911e78a29..407d21868 100644 --- a/adoc/chapters/device_compiler.adoc +++ b/adoc/chapters/device_compiler.adoc @@ -421,10 +421,11 @@ group sizes. In order to guarantee source code portability of SYCL applications that use optional kernel features, all SYCL implementations must be able to compile device code that uses these optional features regardless of whether the -implementation supports the features on any of its devices. +implementation supports the specified work-group or sub-group size on any of its +devices. For the two C++ attributes listed above, all implementations must be able to -compile kernels that are decorated with these attributes regardless of whether -the implementation supports the specified work-group or sub-group size. +compile kernels that are decorated with these attributes regardless of whether a +device supports the specified work-group or sub-group size. Of course, applications that make use of optional kernel features should ensure that a kernel using such a feature is submitted only to a device that supports From 3b235bceee73a460458d8d7a90065b1bb576828b Mon Sep 17 00:00:00 2001 From: vbeckham Date: Tue, 19 May 2026 14:40:44 +0100 Subject: [PATCH 3/3] Fix up sentences. --- adoc/chapters/device_compiler.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/adoc/chapters/device_compiler.adoc b/adoc/chapters/device_compiler.adoc index 407d21868..1efe8a855 100644 --- a/adoc/chapters/device_compiler.adoc +++ b/adoc/chapters/device_compiler.adoc @@ -421,11 +421,11 @@ group sizes. In order to guarantee source code portability of SYCL applications that use optional kernel features, all SYCL implementations must be able to compile device code that uses these optional features regardless of whether the -implementation supports the specified work-group or sub-group size on any of its -devices. +implementation supports the features on any of its devices. For the two C++ attributes listed above, all implementations must be able to -compile kernels that are decorated with these attributes regardless of whether a -device supports the specified work-group or sub-group size. +compile kernels that are decorated with these attributes regardless of whether +the implementation supports the specified work-group or sub-group size on any of +its devices. Of course, applications that make use of optional kernel features should ensure that a kernel using such a feature is submitted only to a device that supports