Khronos has today released the SYCL 2020 Revision 7 maintenance update with the following updates:
- clarify buffer creation with nullptr;
- align more “concurrent” wording with ISO C++;
- precise that work-items provide weakly parallel forward progress guarantee;
- import forward progress definition from ISO C++ and clarify various aspects on atomicity and synchronization;
- C++17 remplaced by just the C++ core language;
- fix description of max_work_item_sizes and clarify relationship to kernel dimensionality;
- clarify “group” meaning in algorithm descriptions;
- improve readability of group barrier description;
- mention kernel_handler in kernel function definition;
- relax requirement on backend traits being available;
- clarify the “reducer” member types and constants;
- clarify native_specialization_constant when empty;
- allow “empty” shared_ptr for buffer construction;
- add static constexpr `dimensions` member to all range/id-like types;
- clarify blocking behavior of `queue::submit;
- clarifications to device copyable;
- clarify USM allocation of zero size coherent with std::malloc;
- clarify sycl::atomic_ref;
- clarify queue profiling behavior when unsupported;
- clarify the wording for the use of property::queue::in_order;
- reword guarantee about host-to-device fence synchronization;
- add single source single compiler pass (SSCP) to the glossary;
- add half to sycl::plus and sycl::multiplies and fix trait use;
- clarify any_device_has / all_devices_have;
- clarify that objects in global, local, or private address space can also be accessed via the generic address space;
- disallow ++ and—for sycl::vec
; - no assignment for read-only accessors;
- clarifications to sub-group;
- clarify is_group and bool_constant alias relations;
- clarify out-of-bounds behavior for group_broadcast.