diff --git a/CMakeLists.txt b/CMakeLists.txt index 12712073afc..557113a088a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -159,6 +159,17 @@ if (ONEDPL_BACKEND MATCHES "^(tbb|dpcpp|dpcpp_only)$") "Select one of the following devices: CPU, GPU, FPGA_EMU or FPGA_HW") endif() + # check device backend + if (ONEDPL_DEVICE_BACKEND MATCHES "^(opencl|level_zero)$") + message(STATUS "Compilation using ${ONEDPL_DEVICE_BACKEND} device backend") + elseif (DEFINED ONEDPL_DEVICE_BACKEND) + message(FATAL_ERROR "Unsupported device backend: ${ONEDPL_DEVICE_BACKEND}.\n" + "Select one of the following device backends: opencl or level_zero") + else() + set(ONEDPL_DEVICE_BACKEND "*") + message(STATUS "Use a default device backend") + endif() + # Check correctness of STATIC_REPORT if (ONEDPL_FPGA_STATIC_REPORT) if (NOT ONEDPL_USE_DEVICE_FPGA_HW) diff --git a/cmake/README.md b/cmake/README.md index 27ce00b1828..168c5fd449d 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -9,7 +9,8 @@ The following variables are provided for oneDPL configuration: | Variable | Type | Description | Default value | |------------------------------|--------|-----------------------------------------------------------------------------------------------|---------------| | ONEDPL_BACKEND | STRING | Threading backend; supported values: tbb, dpcpp, dpcpp_only, serial, ...; the default value is defined by compiler: dpcpp for DPC++ and tbb for others | tbb/dpcpp | -| ONEDPL_DEVICE_TYPE | STRING | Device type, applicable only for sycl backends; supported values: GPU, CPU, FPGA_HW, FPGA_EMU | GPU | +| ONEDPL_DEVICE_TYPE | STRING | Device type, applicable only for DPC++ backends; supported values: GPU, CPU, FPGA_HW, FPGA_EMU | GPU | +| ONEDPL_DEVICE_BACKEND | STRING | Device backend type, applicable only for oneDPL DPC++ backends; supported values: opencl, level_zero. | Any(*) | | ONEDPL_USE_UNNAMED_LAMBDA | BOOL | Pass `-fsycl-unnamed-lambda`, `-fno-sycl-unnamed-lambda` compile options or nothing | | | ONEDPL_FPGA_STATIC_REPORT | BOOL | Enable the static report generation for the FPGA_HW device type | OFF | | ONEDPL_USE_AOT_COMPILATION | BOOL | Enable the ahead of time compilation via OpenCLâ„¢ Offline Compiler (OCLOC) | OFF | diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e8e309b29b3..19d8cac4110 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -44,13 +44,13 @@ macro(onedpl_add_test test_source_file) add_test(NAME ${_test_name} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${_test_name}) set_tests_properties(${_test_name} PROPERTIES SKIP_RETURN_CODE 77) if (ONEDPL_DEVICE_TYPE) - # TODO: Consider replacement of SYCL_DEVICE_TYPE with a new variable. - # See for details: https://github.com/intel/llvm/blob/sycl/sycl/doc/EnvironmentVariables.md - set(SYCL_DEVICE_TYPE ${ONEDPL_DEVICE_TYPE}) if (ONEDPL_DEVICE_TYPE MATCHES "FPGA") - set(SYCL_DEVICE_TYPE ACC) + set(SYCL_DEVICE_FILTER *:acc) + else() + string(TOLOWER ${ONEDPL_DEVICE_TYPE} ONEDPL_DEVICE_TYPE) + set(SYCL_DEVICE_FILTER ${ONEDPL_DEVICE_BACKEND}:${ONEDPL_DEVICE_TYPE}) endif() - set_tests_properties(${_test_name} PROPERTIES ENVIRONMENT SYCL_DEVICE_TYPE=${SYCL_DEVICE_TYPE}) + set_tests_properties(${_test_name} PROPERTIES ENVIRONMENT SYCL_DEVICE_FILTER=${SYCL_DEVICE_FILTER}) endif() add_custom_target(run-${_test_name}