mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-23 22:13:38 +00:00
1. Publish the image ACR, instead of building it every time for every PR 2. Make USE_MKLML and USE_OPENMP be able to co-exist. Currently both of them are enabled in our Linux CI build but indeed only one of them is taking effect. 3. Split nuphar and DNNL to separated pipelines. 4. Fix two warnings in onnxruntime/core/optimizer/matmul_scale_fusion.cc and onnxruntime/test/tvm/tvm_basic_test.cc. 5. Update the manylinux2010_x86_64 image to the latest.
94 lines
3.2 KiB
CMake
94 lines
3.2 KiB
CMake
include (ExternalProject)
|
|
|
|
set(DNNL_URL https://github.com/intel/mkl-dnn.git)
|
|
# If DNNL_TAG is updated, check if MKLML_VERSION and platform.cmake.patch need to be updated.
|
|
set(DNNL_TAG v1.1.1)
|
|
set(MKLML_VERSION 2019.0.5.20190502)
|
|
|
|
if(WIN32)
|
|
set(MKLML_OS_VERSION_STR "win")
|
|
set(MKLML_FILE_EXTENSION "zip")
|
|
set(DNNL_SHARED_LIB dnnl.dll)
|
|
set(DNNL_IMPORT_LIB dnnl.lib)
|
|
if(onnxruntime_USE_MKLML)
|
|
# Windows-only updated MKLML binary which contains fix for thread cleanup hang.
|
|
set(MKLML_VERSION 2020.0.20190813)
|
|
set(MKLML_SHARED_LIB mklml.dll)
|
|
set(MKLML_IMPORT_LIB mklml.lib)
|
|
set(IOMP5MD_SHARED_LIB libiomp5md.dll)
|
|
set(IOMP5MD_IMPORT_LIB libiomp5md.lib)
|
|
endif()
|
|
else()
|
|
set(MKLML_FILE_EXTENSION "tgz")
|
|
if (APPLE)
|
|
set(DNNL_SHARED_LIB libdnnl.1.dylib)
|
|
set(MKLML_OS_VERSION_STR "mac")
|
|
if(onnxruntime_USE_MKLML)
|
|
set(MKLML_SHARED_LIB libmklml.dylib)
|
|
set(IOMP5MD_SHARED_LIB libiomp5.dylib)
|
|
endif()
|
|
else()
|
|
set(DNNL_SHARED_LIB libdnnl.so.1)
|
|
set(MKLML_OS_VERSION_STR "lnx")
|
|
if(onnxruntime_USE_MKLML)
|
|
if(onnxruntime_USE_OPENMP)
|
|
set(MKLML_SHARED_LIB libmklml_gnu.so)
|
|
else()
|
|
set(MKLML_SHARED_LIB libmklml_intel.so)
|
|
set(IOMP5MD_SHARED_LIB libiomp5.so)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
if (onnxruntime_USE_MKLML)
|
|
set(MKLDNN_VERSION_SHORT v0.20)
|
|
set(MKLML_URL https://github.com/intel/mkl-dnn/releases/download/${MKLDNN_VERSION_SHORT}/mklml_${MKLML_OS_VERSION_STR}_${MKLML_VERSION}.${MKLML_FILE_EXTENSION})
|
|
|
|
ExternalProject_Add(project_mklml
|
|
PREFIX mklml
|
|
URL ${MKLML_URL}
|
|
CONFIGURE_COMMAND ""
|
|
BUILD_COMMAND ""
|
|
UPDATE_COMMAND ""
|
|
INSTALL_COMMAND "" )
|
|
|
|
set(MKML_DIR ${CMAKE_CURRENT_BINARY_DIR}/mklml/src/project_mklml)
|
|
set(MKLML_INCLUDE_DIR "${MKML_DIR}/include")
|
|
set(MKLML_LIB_DIR "${MKML_DIR}/lib")
|
|
link_directories(${MKLML_LIB_DIR})
|
|
endif()
|
|
|
|
if (onnxruntime_USE_DNNL)
|
|
set(DNNL_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/dnnl/src/dnnl/src)
|
|
set(DNNL_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/dnnl/install)
|
|
set(DNNL_LIB_DIR ${DNNL_INSTALL}/${CMAKE_INSTALL_LIBDIR})
|
|
if(WIN32)
|
|
set(DNNL_DLL_PATH ${DNNL_INSTALL}/${CMAKE_INSTALL_BINDIR}/${DNNL_SHARED_LIB})
|
|
else()
|
|
set(DNNL_DLL_PATH ${DNNL_LIB_DIR}/${DNNL_SHARED_LIB})
|
|
endif()
|
|
set(DNNL_INCLUDE_DIR ${DNNL_INSTALL}/include)
|
|
set(DNNL_CMAKE_EXTRA_ARGS)
|
|
# set(DNNL_PATCH_COMMAND git apply ${CMAKE_SOURCE_DIR}/patches/mkldnn/constexpr.patch)
|
|
# discard prior changes due to patching in mkldnn source to unblock incremental builds.
|
|
# set(MKLDNN_PATCH_DISCARD_COMMAND cd ${DNNL_SOURCE} && git checkout -- .)
|
|
# if(NOT onnxruntime_BUILD_FOR_NATIVE_MACHINE)
|
|
# pre-v1.0
|
|
# list(APPEND DNNL_CMAKE_EXTRA_ARGS "-DARCH_OPT_FLAGS=")
|
|
# v1.0
|
|
# list(APPEND DNNL_CMAKE_EXTRA_ARGS "-DDNNL_ARCH_OPT_FLAGS=")
|
|
# endif()
|
|
ExternalProject_Add(project_dnnl
|
|
PREFIX dnnl
|
|
GIT_REPOSITORY ${DNNL_URL}
|
|
GIT_TAG ${DNNL_TAG}
|
|
# PATCH_COMMAND ${MKLDNN_PATCH_DISCARD_COMMAND} COMMAND ${DNNL_PATCH_COMMAND}
|
|
SOURCE_DIR ${DNNL_SOURCE}
|
|
CMAKE_ARGS -DDNNL_BUILD_TESTS=OFF -DDNNL_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${DNNL_INSTALL}
|
|
)
|
|
link_directories(${DNNL_LIB_DIR})
|
|
#if (onnxruntime_USE_MKLML)
|
|
# add_dependencies(project_dnnl project_mklml)
|
|
#endif()
|
|
endif()
|