summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2018-06-03 15:53:27 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2018-06-03 15:53:27 +0200
commit1c9a74147073234da953b84f0bbafefbcf5ffb4f (patch)
treeb29bae73160430bad665b6a947b0de9e2f6cdd46 /CMakeLists.txt
parent838422fbb1a8fa7ce2cad06bb94b2779d3929e08 (diff)
parent4471b67735fecc8089df638cc06c2d5bd3cd3d2c (diff)
Merge branch 'master' into CLBlast-267-convgemm
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt49
1 files changed, 32 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72aaa533..b1a6de5b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,7 +21,7 @@ endif()
# CMake project details
project("clblast" C CXX)
set(clblast_VERSION_MAJOR 1)
-set(clblast_VERSION_MINOR 3)
+set(clblast_VERSION_MINOR 4)
set(clblast_VERSION_PATCH 0)
set(clblast_VERSION "${clblast_VERSION_MAJOR}.${clblast_VERSION_MINOR}.${clblast_VERSION_PATCH}")
set(clblast_SOVERSION ${clblast_VERSION_MAJOR})
@@ -170,16 +170,17 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL Android)
else()
# Locates the reference BLAS libraries in case the tests need to be compiled. The "FindclBLAS.cmake",
- # "FindCBLAS.cmake" and "FindcuBLAS.cmake" are included.
+ # "FindCBLAS.cmake", "FindMKL.cmake", and "FindcuBLAS.cmake" are included.
if(CLIENTS OR TESTS)
find_package(CBLAS)
+ find_package(MKL)
if(OPENCL)
find_package(clBLAS)
endif()
if(CUBLAS)
find_package(cuBLAS)
endif()
- if(NOT CLBLAS_FOUND AND NOT CBLAS_FOUND)
+ if(NOT CLBLAS_FOUND AND NOT CBLAS_FOUND AND NOT MKL_FOUND)
if(TESTS)
message(STATUS "Could NOT find clBLAS nor a CPU BLAS, disabling the compilation of the tests")
set(TESTS OFF)
@@ -423,12 +424,14 @@ if(TUNERS)
target_include_directories(clblast_tuner_${KERNEL} PUBLIC $<TARGET_PROPERTY:clblast,INTERFACE_INCLUDE_DIRECTORIES> ${API_INCLUDE_DIRS})
install(TARGETS clblast_tuner_${KERNEL} DESTINATION bin)
endforeach()
- foreach(ROUTINE_TUNER ${ROUTINE_TUNERS})
- add_executable(clblast_tuner_routine_${ROUTINE_TUNER} ${TUNERS_COMMON} src/tuning/routines/${ROUTINE_TUNER}.cpp test/test_utilities.cpp)
- target_link_libraries(clblast_tuner_routine_${ROUTINE_TUNER} clblast)
- target_include_directories(clblast_tuner_routine_${ROUTINE_TUNER} PUBLIC $<TARGET_PROPERTY:clblast,INTERFACE_INCLUDE_DIRECTORIES> ${API_INCLUDE_DIRS} ${clblast_SOURCE_DIR})
- install(TARGETS clblast_tuner_routine_${ROUTINE_TUNER} DESTINATION bin)
- endforeach()
+ if(OPENCL)
+ foreach(ROUTINE_TUNER ${ROUTINE_TUNERS})
+ add_executable(clblast_tuner_routine_${ROUTINE_TUNER} ${TUNERS_COMMON} src/tuning/routines/${ROUTINE_TUNER}.cpp test/test_utilities.cpp)
+ target_link_libraries(clblast_tuner_routine_${ROUTINE_TUNER} clblast)
+ target_include_directories(clblast_tuner_routine_${ROUTINE_TUNER} PUBLIC $<TARGET_PROPERTY:clblast,INTERFACE_INCLUDE_DIRECTORIES> ${API_INCLUDE_DIRS} ${clblast_SOURCE_DIR})
+ install(TARGETS clblast_tuner_routine_${ROUTINE_TUNER} DESTINATION bin)
+ endforeach()
+ endif()
# Adds 'alltuners' target: runs all tuners for all precisions
set(ALLTUNERS )
@@ -439,12 +442,14 @@ if(TUNERS)
endforeach()
set(ALLTUNERSDEPENDS clblast_tuner_${KERNEL})
endforeach()
- foreach(ROUTINE_TUNER ${ROUTINE_TUNERS})
- foreach(PRECISION ${PRECISIONS})
- set(ALLTUNERS ${ALLTUNERS} COMMAND clblast_tuner_routine_${ROUTINE_TUNER} -precision ${PRECISION})
+ if(OPENCL)
+ foreach(ROUTINE_TUNER ${ROUTINE_TUNERS})
+ foreach(PRECISION ${PRECISIONS})
+ set(ALLTUNERS ${ALLTUNERS} COMMAND clblast_tuner_routine_${ROUTINE_TUNER} -precision ${PRECISION})
+ endforeach()
+ set(ALLTUNERSDEPENDS clblast_tuner_routine_${ROUTINE_TUNER})
endforeach()
- set(ALLTUNERSDEPENDS clblast_tuner_routine_${ROUTINE_TUNER})
- endforeach()
+ endif()
add_custom_target(alltuners ${ALLTUNERS} DEPENDS ${ALLTUNERSDEPENDS})
endif()
@@ -468,9 +473,19 @@ if(CLIENTS OR TESTS)
add_definitions(" -DCLBLAST_REF_CLBLAS")
endif()
endif()
- if(CBLAS_FOUND)
- set(REF_INCLUDES ${REF_INCLUDES} ${CBLAS_INCLUDE_DIRS})
- set(REF_LIBRARIES ${REF_LIBRARIES} ${CBLAS_LIBRARIES})
+ if(CBLAS_FOUND OR MKL_FOUND)
+ if(MKL_FOUND) # prefers MKL over another CBLAS implementation
+ set(REF_INCLUDES ${REF_INCLUDES} ${MKL_INCLUDE_DIRS})
+ set(REF_LIBRARIES ${REF_LIBRARIES} ${MKL_LIBRARIES})
+ if(MSVC)
+ add_definitions(" /DCLBLAST_REF_CBLAS_MKL")
+ else()
+ add_definitions(" -DCLBLAST_REF_CBLAS_MKL")
+ endif()
+ else()
+ set(REF_INCLUDES ${REF_INCLUDES} ${CBLAS_INCLUDE_DIRS})
+ set(REF_LIBRARIES ${REF_LIBRARIES} ${CBLAS_LIBRARIES})
+ endif()
set(WRAPPERS ${WRAPPERS} test/wrapper_cblas.hpp)
if(MSVC)
add_definitions(" /DCLBLAST_REF_CBLAS")