Commit 3cf51dc5 authored by Jaikrishnan Menon's avatar Jaikrishnan Menon

CMake: Skip MKL-DNN on OSX/Darwin

Currently MKL-DNN isn't supported on this platform
parent 305a9a8a
...@@ -17,33 +17,35 @@ include(ExternalProject) ...@@ -17,33 +17,35 @@ include(ExternalProject)
# Fetch and install MKL-DNN # Fetch and install MKL-DNN
#---------------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------------
SET(MKLDNN_GIT_REPO_URL https://github.com/01org/mkl-dnn) if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/external) SET(MKLDNN_GIT_REPO_URL https://github.com/01org/mkl-dnn)
# The 'BUILD_BYPRODUCTS' argument was introduced in CMake 3.2. set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/external)
if (${CMAKE_VERSION} VERSION_LESS 3.2)
ExternalProject_Add( # The 'BUILD_BYPRODUCTS' argument was introduced in CMake 3.2.
ext_mkldnn if(${CMAKE_VERSION} VERSION_LESS 3.2)
GIT_REPOSITORY ${MKLDNN_GIT_REPO_URL} ExternalProject_Add(
UPDATE_COMMAND "" ext_mkldnn
PATCH_COMMAND git am ${CMAKE_SOURCE_DIR}/third-party/patches/mkldnn-cmake-openmp.patch GIT_REPOSITORY ${MKLDNN_GIT_REPO_URL}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} UPDATE_COMMAND ""
) PATCH_COMMAND git am ${CMAKE_SOURCE_DIR}/third-party/patches/mkldnn-cmake-openmp.patch
else() CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION}
ExternalProject_Add( )
ext_mkldnn else()
GIT_REPOSITORY ${MKLDNN_GIT_REPO_URL} ExternalProject_Add(
UPDATE_COMMAND "" ext_mkldnn
PATCH_COMMAND git am ${CMAKE_SOURCE_DIR}/third-party/patches/mkldnn-cmake-openmp.patch GIT_REPOSITORY ${MKLDNN_GIT_REPO_URL}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} UPDATE_COMMAND ""
BUILD_BYPRODUCTS "${EXTERNAL_INSTALL_LOCATION}/include/mkldnn.hpp" PATCH_COMMAND git am ${CMAKE_SOURCE_DIR}/third-party/patches/mkldnn-cmake-openmp.patch
) CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION}
endif() BUILD_BYPRODUCTS "${EXTERNAL_INSTALL_LOCATION}/include/mkldnn.hpp"
)
ExternalProject_Get_Property(ext_mkldnn source_dir binary_dir) endif()
ExternalProject_Add_Step( ExternalProject_Get_Property(ext_mkldnn source_dir binary_dir)
ExternalProject_Add_Step(
ext_mkldnn ext_mkldnn
PrepareMKL PrepareMKL
COMMAND ${source_dir}/scripts/prepare_mkl.sh COMMAND ${source_dir}/scripts/prepare_mkl.sh
...@@ -51,7 +53,8 @@ ExternalProject_Add_Step( ...@@ -51,7 +53,8 @@ ExternalProject_Add_Step(
DEPENDERS configure DEPENDERS configure
) )
#----------------------------------------------------------------------------------------------------------
set(MKLDNN_INCLUDE_DIR "${EXTERNAL_INSTALL_LOCATION}/include" PARENT_SCOPE) set(MKLDNN_INCLUDE_DIR "${EXTERNAL_INSTALL_LOCATION}/include" PARENT_SCOPE)
set(MKLDNN_LIB_DIR "${EXTERNAL_INSTALL_LOCATION}/lib" PARENT_SCOPE) set(MKLDNN_LIB_DIR "${EXTERNAL_INSTALL_LOCATION}/lib" PARENT_SCOPE)
endif()
\ No newline at end of file
...@@ -15,23 +15,17 @@ include_directories( ...@@ -15,23 +15,17 @@ include_directories(
SYSTEM SYSTEM
${GTEST_INCLUDE_DIR} ${GTEST_INCLUDE_DIR}
${EIGEN_INCLUDE_DIR} ${EIGEN_INCLUDE_DIR}
${MKLDNN_INCLUDE_DIR}
) )
include_directories( include_directories(
${NGRAPH_INCLUDE_DIR} ${NGRAPH_INCLUDE_DIR}
) )
link_directories(
${MKLDNN_LIB_DIR}
)
set (SRC set (SRC
main.cpp main.cpp
build_graph.cpp build_graph.cpp
eigen.cpp eigen.cpp
element_type.cpp element_type.cpp
mkldnn.cpp
op.cpp op.cpp
input_output_assign.cpp input_output_assign.cpp
tensor.cpp tensor.cpp
...@@ -41,15 +35,26 @@ set (SRC ...@@ -41,15 +35,26 @@ set (SRC
uuid.cpp uuid.cpp
) )
if(MKLDNN_INCLUDE_DIR)
include_directories(${MKLDNN_INCLUDE_DIR})
link_directories(${MKLDNN_LIB_DIR})
set(SRC ${SRC} mkldnn.cpp)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCURDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\"") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCURDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\"")
add_executable(unit-test ${SRC}) add_executable(unit-test ${SRC})
target_link_libraries(unit-test ngraph libgtest mkldnn pthread) if(MKLDNN_INCLUDE_DIR)
target_link_libraries(unit-test mkldnn)
add_dependencies(unit-test ext_mkldnn)
endif()
target_link_libraries(unit-test ngraph libgtest pthread)
target_link_libraries(unit-test ${CMAKE_DL_LIBS}) target_link_libraries(unit-test ${CMAKE_DL_LIBS})
add_dependencies(unit-test ngraph libgtest eigen ext_mkldnn) add_dependencies(unit-test ngraph libgtest eigen)
add_custom_target(check add_custom_target(check
COMMAND ${PROJECT_BINARY_DIR}/test/unit-test COMMAND ${PROJECT_BINARY_DIR}/test/unit-test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment