diff options
author | Yang, Rong R <rong.r.yang@intel.com> | 2016-11-28 19:32:45 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2016-12-30 16:22:27 +0800 |
commit | 634b0d14bde9fb3392feade5bd7d5776620e4f0a (patch) | |
tree | 6e95d750d6de75cd9cb3fb423fa7523b2144edae /CMakeLists.txt | |
parent | 4229ed8a890cd25e43109236fb7fc364c401267c (diff) | |
download | beignet-634b0d14bde9fb3392feade5bd7d5776620e4f0a.tar.gz |
CMake: add an option to enable OpenCL 2.0.
The OpenCL 2.0 is disable default, to enable it, using option
-DENABLE_OPENCL_20 to enable it.
Now skylake and newer devices support OpenCL 2.0, if enable OpenCL 2.0,
LLVM 3.9 and libdrm 2.4.66 is required.
Signed-off-by: Yang Rong <rong.r.yang@intel.com>
Reviewed-by: Pan Xiuli <xiuli.pan@intel.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f529d4b..a24ccb97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,15 +16,6 @@ endif () CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) PROJECT(OCL) -set (LIBCL_DRIVER_VERSION_MAJOR 1) -set (LIBCL_DRIVER_VERSION_MINOR 3) -if (ENABLE_OPENCL_20) - set (LIBCL_C_VERSION_MAJOR 2) - set (LIBCL_C_VERSION_MINOR 0) -else (ENABLE_OPENCL_20) - set (LIBCL_C_VERSION_MAJOR 1) - set (LIBCL_C_VERSION_MINOR 2) -endif (ENABLE_OPENCL_20) if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") set(COMPILER "CLANG") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") @@ -32,11 +23,6 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") set(COMPILER "ICC") endif() -configure_file ( - "src/OCLConfig.h.in" - "src/OCLConfig.h" -) - set (NOT_BUILD_STAND_ALONE_UTEST 1) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} @@ -241,10 +227,50 @@ ENDIF(OCLIcd_FOUND) Find_Package(PythonInterp) OPTION(EXPERIMENTAL_DOUBLE "Enable experimental double support" OFF) -IF(EXPERIMENTAL_DOUBLE) +IF (EXPERIMENTAL_DOUBLE) ADD_DEFINITIONS(-DENABLE_FP64) ENDIF(EXPERIMENTAL_DOUBLE) +OPTION(ENABLE_OPENCL_20 "Enable opencl 2.0 support" OFF) +IF (ENABLE_OPENCL_20) + Find_Program(LSPCI lspci) + IF (NOT LSPCI) + MESSAGE(FATAL_ERROR "Looking for lspci - not found") + ENDIF (NOT LSPCI) + EXECUTE_PROCESS(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/GetGenID.sh" + RESULT_VARIABLE SUPPORT_OCL20_DEVICE + OUTPUT_VARIABLE PCI_ID_NOT_USED) + + IF (NOT SUPPORT_OCL20_DEVICE EQUAL 1) + MESSAGE(FATAL_ERROR "Only SKL and newer devices support OpenCL 2.0 now, your device don't support.") + ENDIF (NOT SUPPORT_OCL20_DEVICE EQUAL 1) + + IF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN) + MESSAGE(FATAL_ERROR "Please update libdrm to version 2.4.66 or later to enable OpenCL 2.0.") + ENDIF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN) + + IF (LLVM_VERSION_NODOT VERSION_LESS 39) + MESSAGE(FATAL_ERROR "Please update LLVM to version 3.9 or later to enable OpenCL 2.0.") + ENDIF (LLVM_VERSION_NODOT VERSION_LESS 39) + + ADD_DEFINITIONS(-DENABLE_OPENCL_20) +ENDIF(ENABLE_OPENCL_20) + +set (LIBCL_DRIVER_VERSION_MAJOR 1) +set (LIBCL_DRIVER_VERSION_MINOR 3) +if (ENABLE_OPENCL_20) + set (LIBCL_C_VERSION_MAJOR 2) + set (LIBCL_C_VERSION_MINOR 0) +else (ENABLE_OPENCL_20) + set (LIBCL_C_VERSION_MAJOR 1) + set (LIBCL_C_VERSION_MINOR 2) +endif (ENABLE_OPENCL_20) +configure_file ( + "src/OCLConfig.h.in" + "src/OCLConfig.h" +) + + OPTION(BUILD_EXAMPLES "Build examples" OFF) IF(BUILD_EXAMPLES) IF(NOT X11_FOUND) |