From 14c0e140ffee78a769a85271ee2c01b6480a92b6 Mon Sep 17 00:00:00 2001 From: Byoungro So Date: Tue, 30 Mar 2021 15:35:53 -0700 Subject: [PATCH 1/2] [SYCL] Fix SYCL_DEVICE_FILTER setting Now, we need to explicitly list host to request a host device. Signed-off-by: Byoungro So --- SYCL/FilterSelector/filter_list_cpu_gpu_acc.cpp | 16 ++++++++-------- SYCL/FilterSelector/select_device_acc.cpp | 3 +-- SYCL/FilterSelector/select_device_opencl.cpp | 3 +-- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/SYCL/FilterSelector/filter_list_cpu_gpu_acc.cpp b/SYCL/FilterSelector/filter_list_cpu_gpu_acc.cpp index c1d6d265ab..66686f9e36 100644 --- a/SYCL/FilterSelector/filter_list_cpu_gpu_acc.cpp +++ b/SYCL/FilterSelector/filter_list_cpu_gpu_acc.cpp @@ -11,15 +11,15 @@ // RUN: %clangxx -fsycl %S/Inputs/filter_list_queries.cpp -o %t.out // RUN: env SYCL_DEVICE_FILTER="*" %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU,CHECK-ACC,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=opencl %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU,CHECK-ACC,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=cpu %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=acc %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU-NOT,CHECK-ACC,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=opencl,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU,CHECK-ACC,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=cpu,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=acc,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU-NOT,CHECK-ACC,CHECK-HOST // RUN: env SYCL_DEVICE_FILTER=host %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=gpu %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU,CHECK-ACC-NOT,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=cpu,acc %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=cpu:0,acc:1 %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST -// RUN: env CL_CONFIG_CPU_EMULATE_DEVICES=2 SYCL_DEVICE_FILTER=cpu:0,acc:1 %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC,CHECK-HOST -// RUN: env SYCL_DEVICE_FILTER=cuda:cpu,opencl:gpu:0,level_zero:acc:1 %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=gpu,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU,CHECK-ACC-NOT,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=cpu,acc,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=cpu:0,acc:1,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST +// RUN: env CL_CONFIG_CPU_EMULATE_DEVICES=2 SYCL_DEVICE_FILTER=cpu:0,acc:1,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU,CHECK-GPU-NOT,CHECK-ACC,CHECK-HOST +// RUN: env SYCL_DEVICE_FILTER=cuda:cpu,opencl:gpu:0,level_zero:acc:1,host %t.out | FileCheck %s --check-prefixes=CHECK-CPU-NOT,CHECK-GPU-NOT,CHECK-ACC-NOT,CHECK-HOST // // CHECK-ACC: Device: acc // CHECK-CPU: Device: cpu diff --git a/SYCL/FilterSelector/select_device_acc.cpp b/SYCL/FilterSelector/select_device_acc.cpp index af420b9994..7b2ca670ba 100644 --- a/SYCL/FilterSelector/select_device_acc.cpp +++ b/SYCL/FilterSelector/select_device_acc.cpp @@ -1,5 +1,5 @@ // RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %s -o %t.out -// RUN: env SYCL_DEVICE_FILTER=acc %t.out +// RUN: env SYCL_DEVICE_FILTER=acc,host %t.out // // Checks if only specified device types can be acquired from select_device // when SYCL_DEVICE_FILTER is set @@ -51,7 +51,6 @@ int main() { std::cout << "Expectedly, CPU device not is found." << std::endl; } } - // HOST device is always available regardless of SYCL_DEVICE_FILTER { host_selector hs; device d = hs.select_device(); diff --git a/SYCL/FilterSelector/select_device_opencl.cpp b/SYCL/FilterSelector/select_device_opencl.cpp index 0e3e50a525..f0e3782c77 100644 --- a/SYCL/FilterSelector/select_device_opencl.cpp +++ b/SYCL/FilterSelector/select_device_opencl.cpp @@ -1,5 +1,5 @@ // RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %s -o %t.out -// RUN: env SYCL_DEVICE_FILTER=opencl %t.out +// RUN: env SYCL_DEVICE_FILTER=opencl,host %t.out // // Checks if only specified device types can be acquired from select_device // when SYCL_DEVICE_FILTER is set @@ -42,7 +42,6 @@ int main() { device d = cs.select_device(); cout << "CPU device is found : " << d.is_cpu() << std::endl; } - // HOST device is always available regardless of SYCL_DEVICE_FILTER { host_selector hs; device d = hs.select_device(); From 2dc3e7c7e53326b11334679bdae45d4c8a50b13b Mon Sep 17 00:00:00 2001 From: Byoungro So Date: Tue, 30 Mar 2021 16:29:35 -0700 Subject: [PATCH 2/2] disable host check Signed-off-by: Byoungro So --- SYCL/FilterSelector/select_device_acc.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/SYCL/FilterSelector/select_device_acc.cpp b/SYCL/FilterSelector/select_device_acc.cpp index 7b2ca670ba..c072580466 100644 --- a/SYCL/FilterSelector/select_device_acc.cpp +++ b/SYCL/FilterSelector/select_device_acc.cpp @@ -1,5 +1,5 @@ // RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %s -o %t.out -// RUN: env SYCL_DEVICE_FILTER=acc,host %t.out +// RUN: env SYCL_DEVICE_FILTER=acc %t.out // // Checks if only specified device types can be acquired from select_device // when SYCL_DEVICE_FILTER is set @@ -48,14 +48,23 @@ int main() { << d.is_cpu() << std::endl; return -1; } catch (...) { - std::cout << "Expectedly, CPU device not is found." << std::endl; + std::cout << "Expectedly, CPU device is not found." << std::endl; } } + /* + // TODO: enable this test after SYCL_DEVICE_FILTER is merged. { host_selector hs; - device d = hs.select_device(); - std::cout << "HOST device is found: " << d.is_host() << std::endl; + try { + device d = hs.select_device(); + std::cerr << "HOST Device is found in error: " << std::boolalpha + << d.is_cpu() << std::endl; + return -1; + } catch (...) { + std::cout << "Expectedly, HOST device is not found." << std::endl; + } } + */ { accelerator_selector as; device d = as.select_device();