14
14
== Notice
15
15
16
16
[%hardbreaks]
17
- Copyright (c) 2021-2022 Intel Corporation. All rights reserved.
17
+ Copyright (c) 2021-2024 Intel Corporation. All rights reserved.
18
18
19
19
Khronos(R) is a registered trademark and SYCL(TM) and SPIR(TM) are trademarks
20
20
of The Khronos Group Inc. OpenCL(TM) is a trademark of Apple Inc. used by
@@ -34,19 +34,16 @@ SYCL specification refer to that revision.
34
34
35
35
This extension also depends on the following other SYCL extensions:
36
36
37
- * link:../experimental/sycl_ext_oneapi_properties.asciidoc[
38
- sycl_ext_oneapi_properties].
37
+ * link:../experimental/sycl_ext_oneapi_properties.asciidoc[sycl_ext_oneapi_properties]
39
38
40
39
== Status
41
40
42
- This is a proposed update to an existing experimental extension.
43
- Interfaces defined in this
44
- specification may not be implemented yet or may be in a preliminary state. The
45
- specification itself may also change in incompatible ways before it is
46
- finalized. *Shipping software products should not rely on APIs defined in this
47
- specification.* See
48
- link:../experimental/sycl_ext_oneapi_group_sort.asciidoc[here] for the existing
49
- extension, which is implemented.
41
+ This is an experimental extension specification, intended to provide early
42
+ access to features and gather community feedback. Interfaces defined in this
43
+ specification are implemented in {dpcpp}, but they are not finalized and may
44
+ change incompatibly in future versions of {dpcpp} without prior notice.
45
+ *Shipping software products should not rely on APIs defined in this
46
+ specification.*
50
47
51
48
== Introduction
52
49
@@ -963,20 +960,37 @@ Consider 2 layouts:
963
960
|{2, 5, 8, 11}
964
961
|===
965
962
966
- There are 2 properties that satisfy
967
- link:sycl_ext_oneapi_properties.asciidoc[SYCL Properties Extension]
963
+ There are 2 compile-time properties that satisfy
964
+ link:../experimental/ sycl_ext_oneapi_properties.asciidoc[SYCL Properties Extension]
968
965
requirements:
969
966
970
967
[source,c++]
971
968
----
972
- namespace sycl::ext::oneapi::experimental::property
973
- {
974
- template<group_algorithm_data_placement type>
975
- struct input_data_placement; // (1)
969
+ namespace sycl::ext::oneapi::experimental {
976
970
977
- template<group_algorithm_data_placement type>
978
- struct output_data_placement; // (2)
979
- }
971
+ struct input_data_placement_key : /* unspecified */ {
972
+ template <group_algorithm_data_placement Placement>
973
+ using value_t =
974
+ property_value<input_data_placement_key,
975
+ std::integral_constant<group_algorithm_data_placement, Placement>>;
976
+ };
977
+
978
+ struct output_data_placement_key : /* unspecified */ {
979
+ template <group_algorithm_data_placement Placement>
980
+ using value_t =
981
+ property_value<output_data_placement_key,
982
+ std::integral_constant<group_algorithm_data_placement, Placement>>;
983
+ };
984
+
985
+ template <group_algorithm_data_placement Placement>
986
+ inline constexpr input_data_placement_key::value_t<Placement>
987
+ input_data_placement; // (1)
988
+
989
+ template <group_algorithm_data_placement Placement>
990
+ inline constexpr output_data_placement_key::value_t<Placement>
991
+ output_data_placement; // (2)
992
+
993
+ } // namespace sycl::ext::oneapi::experimental
980
994
----
981
995
982
996
1. `input_data_placement` specifies the data placement for input. This is
@@ -1192,12 +1206,6 @@ because it's easy to pass different comparator types.
1192
1206
overloads with `Compare` objects seems extra and overloads with sorters,
1193
1207
without sorters are enough.
1194
1208
1195
- == Non-implemented features
1196
- Please, note that following is not inplemented yet for the open-source repo:
1197
-
1198
- . `radix_sorter`, `radix_order`.
1199
- . fixed-size arrays and properties.
1200
-
1201
1209
== Revision History
1202
1210
1203
1211
[cols="5,15,15,70"]
@@ -1211,4 +1219,5 @@ Please, note that following is not inplemented yet for the open-source repo:
1211
1219
making the entire extension experimental
1212
1220
|4|2022-11-14|Andrey Fedorov|Fixed size arrays, key-value sorting and properties
1213
1221
|5|2023-11-09|Andrey Fedorov|Changed `memory_required` functions for default sorters
1222
+ |6|2024-07-17|Artur Gainullin|Align the description of data placement properties with the implementation
1214
1223
|========================================
0 commit comments