Specification Version
SYCL 2020 (Revision 11)
Section Number(s)
Section 5.7. Optional Kernel Features
Issue Description
In SYCL 2020, fp16, fp64, and atomic64 are clearly optional device aspects. I’m less clear on the statement that reqd_work_group_size and reqd_sub_group_size are “optional kernel features.”
The term “optional” seems ambiguous:
- The attribute mechanism itself is optional (an implementation may ignore it or fail at launch/runtime, provided kernels using the attribute can still be compiled),
or
- The mechanism is required, but specific requested sizes are optional per device (i.e., only some
reqd_sub_group_size(N) / reqd_work_group_size(...) values are supported).
The wording “compiled in a way that might not run on all devices” suggests (2), but calling these attributes “optional kernel features” can be read as (1).
Could the spec clarify which interpretation is intended, and what conformance requires (e.g., must implementations enforce requested subgroup/workgroup sizes against device capabilities, or may they ignore the attributes)?
Context: implementations currently differ (honor vs ignore), e.g. intel/llvm#11687
Specification Version
SYCL 2020 (Revision 11)
Section Number(s)
Section 5.7. Optional Kernel Features
Issue Description
In SYCL 2020,
fp16,fp64, andatomic64are clearly optional device aspects. I’m less clear on the statement thatreqd_work_group_sizeandreqd_sub_group_sizeare “optional kernel features.”The term “optional” seems ambiguous:
or
reqd_sub_group_size(N)/reqd_work_group_size(...)values are supported).The wording “compiled in a way that might not run on all devices” suggests (2), but calling these attributes “optional kernel features” can be read as (1).
Could the spec clarify which interpretation is intended, and what conformance requires (e.g., must implementations enforce requested subgroup/workgroup sizes against device capabilities, or may they ignore the attributes)?
Context: implementations currently differ (honor vs ignore), e.g. intel/llvm#11687