Skip to content

Commit 8539847

Browse files
committed
[SYCL][Doc] Clarify launch of kernels with L0
Add some more requirements that the application must follow when launching a free function kernel directly with Level Zero or Open CL.
1 parent 5c0a51d commit 8539847

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

sycl/doc/extensions/proposed/sycl_ext_oneapi_free_function_kernels.asciidoc

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ https://github.com/intel/llvm/issues
3737

3838
== Dependencies
3939

40-
This extension is written against the SYCL 2020 revision 8 specification.
40+
This extension is written against the SYCL 2020 revision 10 specification.
4141
All references below to the "core SYCL specification" or to section numbers in
4242
the SYCL specification refer to that revision.
4343

@@ -941,6 +941,27 @@ bytes) of the device local memory that is represented by the
941941
The pointer passed to `zeKernelSetArgumentValue` or `clSetKernelArg` must be
942942
NULL in this case.
943943

944+
Some kernel features are disallowed when submitting a kernel using Level Zero or
945+
OpenCL.
946+
Other features require the kernel to be invoked in some special way.
947+
These features are detailed below:
948+
949+
* When a kernel's static call tree contains a call to
950+
`get_work_group_scratch_memory` from
951+
link:../experimental/sycl_ext_oneapi_work_group_scratch_memory.asciidoc[
952+
sycl_ext_oneapi_work_group_scratch_memory], the kernel has an additional
953+
"hidden" argument whose value must be set when the kernel is invoked.
954+
This argument appears after all other kernel arguments.
955+
The value corresponds to the `work_group_scratch_size` launch property, which
956+
specifies the size of the dynamic device local memory that is available via
957+
`get_work_group_scratch_memory`.
958+
The kernel argument's size specifies the size (in bytes) of the dynamic device
959+
local memory.
960+
The kernel argument's pointer must be NULL.
961+
962+
* Kernels must not use specialization constants as defined in section 4.9.5
963+
"Specialization constants" of the core SYCL specification.
964+
944965

945966
== Implementation notes
946967

0 commit comments

Comments
 (0)