Skip to content

Optional Kernel Features #991

@hdelan

Description

@hdelan

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:

  1. 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
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions