Skip to content

Commit bb7cb34

Browse files
shileitibader
authored andcommitted
[SYCL] Added support for kernel descriptor compile_sub_group_size
Signed-off-by: Tian, Shilei <[email protected]>
1 parent b2da04e commit bb7cb34

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

sycl/include/CL/sycl/info/info_desc.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,8 @@ enum class kernel_sub_group : cl_kernel_sub_group_info {
203203
sub_group_count_for_ndrange = CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE,
204204
local_size_for_sub_group_count = CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT,
205205
max_num_sub_groups = CL_KERNEL_MAX_NUM_SUB_GROUPS,
206-
compile_num_sub_groups = CL_KERNEL_COMPILE_NUM_SUB_GROUPS
206+
compile_num_sub_groups = CL_KERNEL_COMPILE_NUM_SUB_GROUPS,
207+
compile_sub_group_size = CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
207208
};
208209

209210
// A.6 Program information desctiptors
@@ -364,6 +365,7 @@ PARAM_TRAITS_SPEC_WITH_INPUT(kernel_sub_group, local_size_for_sub_group_count,
364365
cl::sycl::range<3>, size_t)
365366
PARAM_TRAITS_SPEC(kernel_sub_group, max_num_sub_groups, size_t)
366367
PARAM_TRAITS_SPEC(kernel_sub_group, compile_num_sub_groups, size_t)
368+
PARAM_TRAITS_SPEC(kernel_sub_group, compile_sub_group_size, size_t)
367369

368370
PARAM_TRAITS_SPEC(platform, profile, string_class)
369371
PARAM_TRAITS_SPEC(platform, version, string_class)

sycl/test/sub_group/info.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,18 @@ int main() {
7272
/* Sub-group size is not specified in kernel or IL*/
7373
exit_if_not_equal<size_t>(Res, 0, "compile_num_sub_groups");
7474

75+
// According to specification, this kernel query requires `cl_khr_subgroups`
76+
// or `cl_intel_subgroups`
77+
if ((Device.has_extension("cl_khr_subgroups") ||
78+
Device.has_extension("cl_intel_subgroups")) &&
79+
Device.has_extension("cl_intel_required_subgroup_size")) {
80+
Res = Kernel.get_sub_group_info<
81+
info::kernel_sub_group::compile_sub_group_size>(Device);
82+
83+
/* Required sub-group size is not specified in kernel or IL*/
84+
exit_if_not_equal<size_t>(Res, 0, "compile_sub_group_size");
85+
}
86+
7587
/* Check work-group sizea which can accommodate the requested number of
7688
* sub-groups*/
7789
for (auto s : {(size_t)200, (size_t)1, (size_t)3, (size_t)5, (size_t)7,
@@ -103,4 +115,3 @@ int main() {
103115
std::cout << "Test passed.\n";
104116
return 0;
105117
}
106-

0 commit comments

Comments
 (0)