Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

[SYCL] Replace deprecated has_extension #434

Merged
merged 2 commits into from
Sep 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion SYCL/InlineAsm/asm_no_operands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ int main() {
cl::sycl::queue Queue;
cl::sycl::device Device = Queue.get_device();

auto Vec = Device.get_info<sycl::info::device::extensions>();
if (!isInlineASMSupported(Device) ||
!Device.has_extension("cl_intel_required_subgroup_size")) {
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/InlineAsm/include/asmhelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,10 @@ bool launchInlineASMTestImpl(F &f, bool requires_particular_sg_size = true) {
return false;
}

auto Vec = device.get_info<sycl::info::device::extensions>();
if (requires_particular_sg_size &&
!device.has_extension("cl_intel_required_subgroup_size")) {
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/InlineAsm/letter_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ int main() {
cl::sycl::queue q;
cl::sycl::device Device = q.get_device();

auto Vec = Device.get_info<sycl::info::device::extensions>();
if (!isInlineASMSupported(Device) ||
!Device.has_extension("cl_intel_required_subgroup_size")) {
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/InlineAsm/malloc_shared_32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ int main() {

cl::sycl::device Device = q.get_device();

auto Vec = Device.get_info<sycl::info::device::extensions>();
if (!isInlineASMSupported(Device) ||
!Device.has_extension("cl_intel_required_subgroup_size")) {
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/InlineAsm/malloc_shared_in_out_dif.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ int main() {

cl::sycl::device Device = q.get_device();

auto Vec = Device.get_info<sycl::info::device::extensions>();
if (!isInlineASMSupported(Device) ||
!Device.has_extension("cl_intel_required_subgroup_size")) {
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/InlineAsm/malloc_shared_no_input.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ int main() {
cl::sycl::queue q;
cl::sycl::device Device = q.get_device();

auto Vec = Device.get_info<sycl::info::device::extensions>();
if (!isInlineASMSupported(Device) ||
!Device.has_extension("cl_intel_required_subgroup_size")) {
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/Regression/get_subgroup_sizes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ using namespace cl::sycl;
int main() {
queue Q;
auto Dev = Q.get_device();
if (Dev.has_extension("cl_intel_required_subgroup_size")) {
auto Vec = Dev.get_info<info::device::extensions>();
if (std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") !=
std::end(Vec)) {
std::vector<size_t> SubGroupSizes =
Dev.get_info<cl::sycl::info::device::sub_group_sizes>();
std::vector<size_t>::const_iterator MaxIter =
Expand Down
10 changes: 7 additions & 3 deletions SYCL/SubGroup/attributes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,13 @@ int main() {

// According to specification, this kernel query requires `cl_khr_subgroups`
// or `cl_intel_subgroups`, and also `cl_intel_required_subgroup_size`
if ((!Device.has_extension("cl_intel_subgroups") &&
!Device.has_extension("cl_khr_subgroups")) ||
!Device.has_extension("cl_intel_required_subgroup_size")) {
auto Vec = Device.get_info<info::device::extensions>();
if (std::find(Vec.begin(), Vec.end(), "cl_intel_subgroups") ==
std::end(Vec) &&
std::find(Vec.begin(), Vec.end(), "cl_khr_subgroups") ==
std::end(Vec) ||
std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
4 changes: 3 additions & 1 deletion SYCL/SubGroup/generic_reduce.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ void check_op(queue &Queue, T init, BinaryOperation op, bool skip_init = false,

int main() {
queue Queue;
if (!Queue.get_device().has_extension("cl_intel_subgroups")) {
auto Vec = Queue.get_device().get_info<info::device::extensions>();
if (std::find(Vec.begin(), Vec.end(), "cl_intel_subgroups") ==
std::end(Vec)) {
std::cout << "Skipping test\n";
return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion SYCL/SubGroup/helper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ void exit_if_not_equal_vec(vec<T, N> val, vec<T, N> ref, const char *name) {
}

bool core_sg_supported(const device &Device) {
if (Device.has_extension("cl_khr_subgroups"))
auto Vec = Device.get_info<info::device::extensions>();
if (std::find(Vec.begin(), Vec.end(), "cl_khr_subgroups") != std::end(Vec))
return true;
return Device.get_info<info::device::version>() >= "2.1";
}
13 changes: 9 additions & 4 deletions SYCL/SubGroup/info.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ int main() {

/* sub_group_sizes can be queried only if cl_intel_required_subgroup_size
* extension is supported by device*/
if (Device.has_extension("cl_intel_required_subgroup_size")) {
auto Vec = Device.get_info<info::device::extensions>();
if (std::find(Vec.begin(), Vec.end(), "cl_intel_required_subgroup_size") !=
std::end(Vec)) {
auto sg_sizes = Device.get_info<info::device::sub_group_sizes>();
for (auto r : {range<3>(3, 4, 5), range<3>(1, 1, 1), range<3>(4, 2, 1),
range<3>(32, 3, 4), range<3>(7, 9, 11)}) {
Expand Down Expand Up @@ -91,9 +93,12 @@ int main() {

// According to specification, this kernel query requires `cl_khr_subgroups`
// or `cl_intel_subgroups`
if ((Device.has_extension("cl_khr_subgroups") ||
Device.has_extension("cl_intel_subgroups")) &&
Device.has_extension("cl_intel_required_subgroup_size")) {
if ((std::find(Vec.begin(), Vec.end(), "cl_khr_subgroups") !=
std::end(Vec)) ||
std::find(Vec.begin(), Vec.end(), "cl_intel_subgroups") !=
std::end(Vec) &&
std::find(Vec.begin(), Vec.end(),
"cl_intel_required_subgroup_size") != std::end(Vec)) {
Res = Kernel.get_sub_group_info<
info::kernel_sub_group::compile_sub_group_size>(Device);

Expand Down
10 changes: 7 additions & 3 deletions SYCL/SubGroup/load_store.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,9 @@ int main() {
}
std::string PlatformName =
Queue.get_device().get_platform().get_info<info::platform::name>();
if (Queue.get_device().has_extension("cl_intel_subgroups") ||
auto Vec = Queue.get_device().get_info<info::device::extensions>();
if (std::find(Vec.begin(), Vec.end(), "cl_intel_subgroups") !=
std::end(Vec) ||
PlatformName.find("CUDA") != std::string::npos) {
typedef bool aligned_char __attribute__((aligned(16)));
check<aligned_char>(Queue);
Expand Down Expand Up @@ -223,7 +225,8 @@ int main() {
check<aligned_float, 8>(Queue);
check<aligned_float, 16>(Queue);
}
if (Queue.get_device().has_extension("cl_intel_subgroups_short") ||
if (std::find(Vec.begin(), Vec.end(), "cl_intel_subgroups_short") !=
std::end(Vec) ||
PlatformName.find("CUDA") != std::string::npos) {
typedef short aligned_short __attribute__((aligned(16)));
check<aligned_short>(Queue);
Expand All @@ -245,7 +248,8 @@ int main() {
check<aligned_half, 16>(Queue);
}
}
if (Queue.get_device().has_extension("cl_intel_subgroups_long") ||
if (std::find(Vec.begin(), Vec.end(), "cl_intel_subgroups_long") !=
std::end(Vec) ||
PlatformName.find("CUDA") != std::string::npos) {
typedef long aligned_long __attribute__((aligned(16)));
check<aligned_long>(Queue);
Expand Down