@@ -415,6 +415,10 @@ def SYCLSimdDocs : Documentation {
415
415
The compiler may decide to compile such functions using different optimization
416
416
and code generation pipeline. Also, this attribute is used to distinguish
417
417
ESIMD private globals from regular SYCL global variables.
418
+
419
+ In SYCL 1.2.1 mode, the ``intel::sycl_explicit_simd`` attribute is propagated
420
+ from the function it is applied to onto the kernel which calls the function.
421
+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
418
422
}];
419
423
}
420
424
@@ -2443,8 +2447,9 @@ lambda capture, or function object member, of the callable to which the
2443
2447
attribute was applied. This effect is equivalent to annotating restrict on
2444
2448
**all** kernel pointer arguments in an OpenCL or SPIR-V kernel.
2445
2449
2446
- If ``intel::kernel_args_restrict`` is applied to a function called from a device
2447
- kernel, the attribute is not ignored and it is propagated to the kernel.
2450
+ In SYCL 1.2.1 mode, the ``intel::kernel_args_restrict`` attribute is propagated
2451
+ from the function it is applied to onto the kernel which calls the function.
2452
+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
2448
2453
2449
2454
The attribute forms an unchecked assertion, in that implementations
2450
2455
do not need to check/confirm the pre-condition in any way. If a user applies
@@ -2482,8 +2487,10 @@ def SYCLIntelNumSimdWorkItemsAttrDocs : Documentation {
2482
2487
let Content = [{
2483
2488
Applies to a device function/lambda function. Indicates the number of work
2484
2489
items that should be processed in parallel. Valid values are positive integers.
2485
- If ``intel::num_simd_work_items`` is applied to a function called from a
2486
- device kernel, the attribute is not ignored and it is propagated to the kernel.
2490
+
2491
+ In SYCL 1.2.1 mode, the ``intel::num_simd_work_items`` attribute is propagated
2492
+ from the function it is applied to onto the kernel which calls the function.
2493
+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
2487
2494
2488
2495
.. code-block:: c++
2489
2496
@@ -2656,6 +2663,11 @@ allows the Y and Z arguments to be optional. If not provided by the user, the
2656
2663
value of Y and Z defaults to 1. See section 5.8.1 Kernel Attributes for more
2657
2664
details.
2658
2665
2666
+ In SYCL 1.2.1 mode, the ``intel::reqd_work_group_size``,
2667
+ ``cl::reqd_work_group_size``, and ``sycl::reqd_work_group_size`` attributes are
2668
+ propagated from the function they are applied to onto the kernel which calls the
2669
+ function. In SYCL 2020 mode, the attributes are not propagated to the kernel.
2670
+
2659
2671
.. code-block:: c++
2660
2672
2661
2673
[[sycl::reqd_work_group_size(4, 4, 4)]] void foo() {}
@@ -2800,8 +2812,10 @@ Applies to a device function/lambda function. Indicates the maximum dimensions
2800
2812
of a work group. Values must be positive integers. This is similar to
2801
2813
reqd_work_group_size, but allows work groups that are smaller or equal to the
2802
2814
specified sizes.
2803
- If ``intel::max_work_group_size`` is applied to a function called from a
2804
- device kernel, the attribute is not ignored and it is propagated to the kernel.
2815
+
2816
+ In SYCL 1.2.1 mode, the ``intel::max_work_group_size`` attribute is propagated
2817
+ from the function it is applied to onto the kernel which calls the function.
2818
+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
2805
2819
2806
2820
.. code-block:: c++
2807
2821
@@ -2832,8 +2846,10 @@ Applies to a device function/lambda function or function call operator (of a
2832
2846
function object). Indicates the largest valid global work dimension that will be
2833
2847
accepted when running the kernel on a device. Valid values are integers in a
2834
2848
range of [0, 3].
2835
- If ``intel::max_global_work_dim`` is applied to a function called from a
2836
- device kernel, the attribute is not ignored and it is propagated to the kernel.
2849
+
2850
+ In SYCL 1.2.1 mode, the ``intel::max_global_work_dim`` attribute is propagated
2851
+ from the function it is applied to onto the kernel which calls the function.
2852
+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
2837
2853
2838
2854
.. code-block:: c++
2839
2855
@@ -2890,6 +2906,10 @@ device operation, guiding the FPGA backend to insert the appropriate number of
2890
2906
registers to break-up the combinational logic circuit, and thereby controlling
2891
2907
the length of the longest combinational path.
2892
2908
2909
+ In SYCL 1.2.1 mode, the ``intel::scheduler_target_fmax_mhz`` attribute is
2910
+ propagated from the function it is applied to onto the kernel which calls the
2911
+ function. In SYCL 2020 mode, the attribute is not propagated to the kernel.
2912
+
2893
2913
.. code-block:: c++
2894
2914
2895
2915
[[intel::scheduler_target_fmax_mhz(4)]] void foo() {}
@@ -2920,6 +2940,10 @@ function object). If 1, compiler doesn't use the global work offset values for
2920
2940
the device function. Valid values are 0 and 1. If used without argument, value
2921
2941
of 1 is set implicitly.
2922
2942
2943
+ In SYCL 1.2.1 mode, the ``intel::no_global_work_offset`` attribute is
2944
+ propagated from the function it is applied to onto the kernel which calls the
2945
+ function. In SYCL 2020 mode, the attribute is not propagated to the kernel.
2946
+
2923
2947
.. code-block:: c++
2924
2948
2925
2949
[[intel::no_global_work_offset]]
@@ -4607,6 +4631,10 @@ the ``[[intel::named_sub_group_size(NAME)]]`` documentation for clarification.
4607
4631
This attribute is mutually exclusive with ``[[intel::named_sub_group_size(NAME)]]``
4608
4632
and ``[[intel::sycl_explicit_simd]]``.
4609
4633
4634
+ In SYCL 1.2.1 mode, the ``intel::reqd_sub_group_size`` attribute is propagated
4635
+ from the function it is applied to onto the kernel which calls the function.
4636
+ In SYCL 2020 mode, the attribute is not propagated to the kernel.
4637
+
4610
4638
In addition to device functions, the required sub-group size attribute may also
4611
4639
be specified in the definition of a named functor object and lambda functions,
4612
4640
as in the examples below:
0 commit comments