mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-23 18:09:25 +08:00
Fixing unix build and cmake MKL searching
This commit is contained in:
@@ -37,6 +37,7 @@ if(${the_module}_WITH_BLAS)
|
||||
set(BLAS_CBLAS_H "mkl_cblas.h" )
|
||||
set(BLAS_LIBRARIES ${MKL_LIBRARIES} )
|
||||
set(BLAS_BINARIES "" )
|
||||
add_definitions(${MKL_CXX_FLAGS})
|
||||
endif()
|
||||
|
||||
set(BLAS_PREF ${the_module}_BLAS)
|
||||
@@ -54,7 +55,6 @@ if(${the_module}_WITH_BLAS)
|
||||
list(APPEND OPENCV_MODULE_${the_module}_DEPS_EXT ${${the_module}_BLAS_LIBRARIES})
|
||||
target_link_libraries(${the_module} ${${the_module}_BLAS_LIBRARIES})
|
||||
add_definitions(-DHAVE_CBLAS)
|
||||
add_definitions(-DCBLAS_H_INCLUDE=<${${BLAS_PREF}_CBLAS_H}>)
|
||||
message(CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_custom_command(TARGET ${the_module} PRE_BUILD #OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cblas.h
|
||||
COMMAND ${CMAKE_COMMAND} ARGS -E echo \"\#include <${${BLAS_PREF}_CBLAS_H}>\" > ${CMAKE_CURRENT_BINARY_DIR}/cblas.h
|
||||
|
@@ -13,6 +13,28 @@
|
||||
# MKL_LIBRARIES - IPP libraries that are used by OpenCV
|
||||
#
|
||||
|
||||
macro(mkl_fail)
|
||||
set(HAVE_MKL OFF CACHE BOOL "True if MKL found")
|
||||
set(MKL_ROOT_DIR ${MKL_ROOT_DIR} CACHE PATH "Path to MKL directory")
|
||||
unset(MKL_INCLUDE_DIRS CACHE)
|
||||
unset(MKL_LIBRARIES CACHE)
|
||||
endmacro()
|
||||
|
||||
macro(get_mkl_version VERSION_FILE)
|
||||
# read MKL version info from file
|
||||
file(STRINGS ${VERSION_FILE} STR1 REGEX "__INTEL_MKL__")
|
||||
file(STRINGS ${VERSION_FILE} STR2 REGEX "__INTEL_MKL_MINOR__")
|
||||
file(STRINGS ${VERSION_FILE} STR3 REGEX "__INTEL_MKL_UPDATE__")
|
||||
#file(STRINGS ${VERSION_FILE} STR4 REGEX "INTEL_MKL_VERSION")
|
||||
|
||||
# extract info and assign to variables
|
||||
string(REGEX MATCHALL "[0-9]+" MKL_VERSION_MAJOR ${STR1})
|
||||
string(REGEX MATCHALL "[0-9]+" MKL_VERSION_MINOR ${STR2})
|
||||
string(REGEX MATCHALL "[0-9]+" MKL_VERSION_UPDATE ${STR3})
|
||||
set(MKL_VERSION_STR "${MKL_VERSION_MAJOR}.${MKL_VERSION_MINOR}.${MKL_VERSION_UPDATE}" CACHE STRING "MKL version" FORCE)
|
||||
endmacro()
|
||||
|
||||
|
||||
if(NOT DEFINED MKL_USE_MULTITHREAD)
|
||||
OCV_OPTION(MKL_WITH_TBB "Use MKL with TBB multithreading" OFF)#ON IF WITH_TBB)
|
||||
OCV_OPTION(MKL_WITH_OPENMP "Use MKL with OpenMP multithreading" OFF)#ON IF WITH_OPENMP)
|
||||
@@ -29,29 +51,20 @@ if(NOT MKL_ROOT_DIR OR NOT EXISTS ${MKL_ROOT_DIR}/include/mkl.h)
|
||||
list(APPEND MKLROOT_PATHS $ENV{${ProgramFilesx86}}/IntelSWTools/compilers_and_libraries/windows/mkl)
|
||||
endif()
|
||||
if(UNIX)
|
||||
list(APPEND MKLROOT_PATHS "opt/intel/mkl")
|
||||
list(APPEND MKLROOT_PATHS "/opt/intel/mkl")
|
||||
endif()
|
||||
|
||||
find_path(MKL_ROOT_DIR include/mkl.h PATHS ${MKLROOT_PATHS})
|
||||
endif()
|
||||
|
||||
if(NOT MKL_ROOT_DIR)
|
||||
mkl_fail()
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(MKL_INCLUDE_DIRS ${MKL_ROOT_DIR}/include)
|
||||
set(MKL_INCLUDE_HEADERS ${MKL_INCLUDE_DIRS}/mkl.h ${MKL_INCLUDE_DIRS}/mkl_version.h)
|
||||
|
||||
macro(get_mkl_version VERSION_FILE)
|
||||
# read MKL version info from file
|
||||
file(STRINGS ${VERSION_FILE} STR1 REGEX "__INTEL_MKL__")
|
||||
file(STRINGS ${VERSION_FILE} STR2 REGEX "__INTEL_MKL_MINOR__")
|
||||
file(STRINGS ${VERSION_FILE} STR3 REGEX "__INTEL_MKL_UPDATE__")
|
||||
#file(STRINGS ${VERSION_FILE} STR4 REGEX "INTEL_MKL_VERSION")
|
||||
|
||||
# extract info and assign to variables
|
||||
string(REGEX MATCHALL "[0-9]+" MKL_VERSION_MAJOR ${STR1})
|
||||
string(REGEX MATCHALL "[0-9]+" MKL_VERSION_MINOR ${STR2})
|
||||
string(REGEX MATCHALL "[0-9]+" MKL_VERSION_UPDATE ${STR3})
|
||||
set(MKL_VERSION_STR "${MKL_VERSION_MAJOR}.${MKL_VERSION_MINOR}.${MKL_VERSION_UPDATE}" CACHE STRING "MKL version" FORCE)
|
||||
endmacro()
|
||||
|
||||
#determine arch
|
||||
if(CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
|
||||
set(MKL_X64 1)
|
||||
@@ -70,20 +83,22 @@ endif()
|
||||
|
||||
if(MSVC)
|
||||
set(MKL_EXT ".lib")
|
||||
set(MKL_PRE "")
|
||||
else()
|
||||
set(MKL_EXT ".a")
|
||||
set(MKL_PRE "lib")
|
||||
endif()
|
||||
|
||||
set(MKL_LIB_DIR ${MKL_ROOT_DIR}/lib/${MKL_ARCH})
|
||||
set(MKL_LIBRARIES ${MKL_LIB_DIR}/mkl_core${MKL_EXT} ${MKL_LIB_DIR}/mkl_intel_${MKL_LP64}${MKL_EXT})
|
||||
set(MKL_LIBRARIES ${MKL_LIB_DIR}/${MKL_PRE}mkl_core${MKL_EXT} ${MKL_LIB_DIR}/${MKL_PRE}mkl_intel_${MKL_LP64}${MKL_EXT})
|
||||
|
||||
if(MKL_WITH_TBB)
|
||||
list(APPEND MKL_LIBRARIES ${MKL_LIB_DIR}/mkl_tbb_thread${MKL_EXT})
|
||||
list(APPEND MKL_LIBRARIES ${MKL_LIB_DIR}/${MKL_PRE}mkl_tbb_thread${MKL_EXT})
|
||||
list(APPEND MKL_LIBRARIES ${MKL_ROOT_DIR}/../tbb/lib/${MKL_ARCH}/tbb${MKL_EXT})
|
||||
elseif(MKL_WITH_OPENMP)
|
||||
message(FATAL_ERROR "Multithreaded MKL is not supported yet")
|
||||
else()
|
||||
list(APPEND MKL_LIBRARIES ${MKL_LIB_DIR}/mkl_sequential${MKL_EXT})
|
||||
list(APPEND MKL_LIBRARIES ${MKL_LIB_DIR}/${MKL_PRE}mkl_sequential${MKL_EXT})
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
@@ -96,10 +111,13 @@ if(MKL_FOUND)
|
||||
set(HAVE_MKL ON CACHE BOOL "True if MKL found")
|
||||
set(MKL_ROOT_DIR ${MKL_ROOT_DIR} CACHE PATH "Path to MKL directory")
|
||||
set(MKL_INCLUDE_DIRS ${MKL_INCLUDE_DIRS} CACHE PATH "Path to MKL include directory")
|
||||
if(NOT UNIX)
|
||||
set(MKL_LIBRARIES ${MKL_LIBRARIES} CACHE FILEPATH "MKL libarries")
|
||||
else()
|
||||
set(HAVE_MKL OFF CACHE BOOL "True if MKL found")
|
||||
set(MKL_ROOT_DIR ${MKL_ROOT_DIR} CACHE PATH "Path to MKL directory")
|
||||
unset(MKL_INCLUDE_DIRS)
|
||||
unset(MKL_LIBRARIES)
|
||||
#it's ugly but helps to avoid cyclic lib problem
|
||||
set(MKL_LIBRARIES ${MKL_LIBRARIES} ${MKL_LIBRARIES} ${MKL_LIBRARIES} "-lpthread" "-lm" "-ldl")
|
||||
set(MKL_LIBRARIES ${MKL_LIBRARIES} CACHE STRING "MKL libarries")
|
||||
endif()
|
||||
else()
|
||||
|
||||
endif()
|
@@ -47,6 +47,11 @@ namespace cv
|
||||
{
|
||||
namespace dnn
|
||||
{
|
||||
//! @addtogroup dnn
|
||||
//! @{
|
||||
//!
|
||||
//! @defgroup LayerList Partial List of Implemented Layers
|
||||
//! @{
|
||||
|
||||
//! LSTM recurrent layer
|
||||
class LSTMLayer : public Layer
|
||||
@@ -124,6 +129,10 @@ namespace dnn
|
||||
*/
|
||||
void forward(std::vector<Blob*> &input, std::vector<Blob> &output);
|
||||
};
|
||||
|
||||
//! @}
|
||||
//! @}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
@@ -41,7 +41,7 @@ PERF_TEST_P( ConvolutionPerfTest, perf, Combine(
|
||||
BlobShape inpShape = get<1>(params).first;
|
||||
int outCn = get<1>(params).second;
|
||||
int groups = get<2>(params);
|
||||
int stride = (ksz >= 11) ? 4 : get<3>(params);
|
||||
int stride = (ksz >= 11) ? 4 : (int)get<3>(params);
|
||||
|
||||
int inpCn = inpShape[1];
|
||||
Blob wgtBlob(BlobShape(outCn, inpCn/groups, ksz, ksz)), biasBlob(BlobShape(outCn, 1, 1, 1));
|
||||
|
Reference in New Issue
Block a user