diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 49 |
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") |