Convert eigen to a submodule and update it to the latest version

This commit is contained in:
Changming Sun 2019-04-18 17:00:21 -07:00
parent ada90086f7
commit 687bac455d
22 changed files with 43 additions and 56 deletions

3
.gitmodules vendored
View file

@ -28,3 +28,6 @@
[submodule "cmake/external/onnx-tensorrt"]
path = cmake/external/onnx-tensorrt
url = https://github.com/onnx/onnx-tensorrt.git
[submodule "cmake/external/eigen"]
path = cmake/external/eigen
url = https://github.com/eigenteam/eigen-git-mirror.git

View file

@ -139,7 +139,7 @@
"component":{
"type":"git",
"git":{
"commitHash":"cf794d3b741a6278df169e58461f8529f43bce5d",
"commitHash":"1456fe2fac0cd074bbbb8630ba003a7c325d015b",
"repositoryUrl":"https://github.com/eigenteam/eigen-git-mirror.git"
}
}

View file

@ -71,6 +71,7 @@ option(onnxruntime_ENABLE_LTO "Enable link time optimization, which is not stabl
option(onnxruntime_CROSS_COMPILING "Cross compiling onnx runtime" OFF)
option(onnxruntime_USE_FULL_PROTOBUF "Use full protobuf" OFF)
option(onnxruntime_DISABLE_CONTRIB_OPS "Disable contrib ops" OFF)
option(onnxruntime_USE_EIGEN_THREADPOOL "Use eigen threadpool. Otherwise OpenMP or a homemade one will be used" OFF)
option(tensorflow_C_PACKAGE_PATH "Path to tensorflow C package installation dir")
set(protobuf_BUILD_TESTS OFF CACHE BOOL "Build protobuf tests" FORCE)

1
cmake/external/eigen vendored Submodule

@ -0,0 +1 @@
Subproject commit 1456fe2fac0cd074bbbb8630ba003a7c325d015b

View file

@ -5,17 +5,5 @@ if (onnxruntime_USE_PREINSTALLED_EIGEN)
file(TO_CMAKE_PATH ${eigen_SOURCE_PATH} eigen_INCLUDE_DIRS)
target_include_directories(eigen INTERFACE ${eigen_INCLUDE_DIRS})
else ()
set(eigen_URL "https://github.com/eigenteam/eigen-git-mirror.git")
set(eigen_TAG "3.3.7")
set(eigen_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/eigen)
set(eigen_INCLUDE_DIRS ${eigen_ROOT_DIR})
ExternalProject_Add(eigen
PREFIX eigen
GIT_REPOSITORY ${eigen_URL}
GIT_TAG ${eigen_TAG}
SOURCE_DIR ${eigen_ROOT_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
set(eigen_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/external/eigen")
endif()

View file

@ -47,7 +47,7 @@ endif()
if(onnxruntime_USE_EIGEN_THREADPOOL)
target_include_directories(onnxruntime_common PRIVATE ${eigen_INCLUDE_DIRS})
target_compile_definitions(onnxruntime_common PUBLIC USE_EIGEN_THREADPOOL)
add_dependencies(onnxruntime_common ${onnxruntime_EXTERNAL_DEPENDENCIES} eigen)
add_dependencies(onnxruntime_common ${onnxruntime_EXTERNAL_DEPENDENCIES})
endif()
install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/common DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core)

View file

@ -45,7 +45,7 @@ onnxruntime_add_include_to_target(onnxruntime_providers onnxruntime_common onnxr
set(gemmlowp_src ${ONNXRUNTIME_ROOT}/../cmake/external/gemmlowp)
set(re2_src ${ONNXRUNTIME_ROOT}/../cmake/external/re2)
target_include_directories(onnxruntime_providers PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS} ${gemmlowp_src} ${re2_src})
add_dependencies(onnxruntime_providers eigen gsl onnx ${onnxruntime_EXTERNAL_DEPENDENCIES})
add_dependencies(onnxruntime_providers gsl onnx ${onnxruntime_EXTERNAL_DEPENDENCIES})
install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/cpu DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers)
set_target_properties(onnxruntime_providers PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(onnxruntime_providers PROPERTIES FOLDER "ONNXRuntime")
@ -66,7 +66,7 @@ if (onnxruntime_USE_CUDA)
"$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-Wno-reorder>")
endif()
onnxruntime_add_include_to_target(onnxruntime_providers_cuda onnxruntime_common onnxruntime_framework gsl onnx onnx_proto protobuf::libprotobuf)
add_dependencies(onnxruntime_providers_cuda eigen ${onnxruntime_EXTERNAL_DEPENDENCIES} ${onnxruntime_tvm_dependencies})
add_dependencies(onnxruntime_providers_cuda ${onnxruntime_EXTERNAL_DEPENDENCIES} ${onnxruntime_tvm_dependencies})
target_include_directories(onnxruntime_providers_cuda PRIVATE ${ONNXRUNTIME_ROOT} ${onnxruntime_CUDNN_HOME}/include ${eigen_INCLUDE_DIRS} ${TVM_INCLUDES} PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/cuda DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers)
set_target_properties(onnxruntime_providers_cuda PROPERTIES LINKER_LANGUAGE CUDA)
@ -99,7 +99,7 @@ if (onnxruntime_USE_MKLDNN)
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_mkldnn_cc_srcs})
add_library(onnxruntime_providers_mkldnn ${onnxruntime_providers_mkldnn_cc_srcs})
onnxruntime_add_include_to_target(onnxruntime_providers_mkldnn gsl onnxruntime_common onnxruntime_framework gsl onnx onnx_proto protobuf::libprotobuf)
add_dependencies(onnxruntime_providers_mkldnn eigen ${onnxruntime_EXTERNAL_DEPENDENCIES})
add_dependencies(onnxruntime_providers_mkldnn ${onnxruntime_EXTERNAL_DEPENDENCIES})
set_target_properties(onnxruntime_providers_mkldnn PROPERTIES FOLDER "ONNXRuntime")
target_include_directories(onnxruntime_providers_mkldnn PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS} ${MKLDNN_INCLUDE_DIR})
install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/mkldnn DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers)
@ -164,7 +164,7 @@ if (onnxruntime_USE_TENSORRT)
add_library(onnxruntime_providers_tensorrt ${onnxruntime_providers_tensorrt_cc_srcs})
target_link_libraries(onnxruntime_providers_tensorrt ${onnxparser_link_libs} ${trt_link_libs})
onnxruntime_add_include_to_target(onnxruntime_providers_tensorrt onnxruntime_common onnxruntime_framework gsl onnx onnx_proto protobuf::libprotobuf)
add_dependencies(onnxruntime_providers_tensorrt eigen ${onnxruntime_EXTERNAL_DEPENDENCIES})
add_dependencies(onnxruntime_providers_tensorrt ${onnxruntime_EXTERNAL_DEPENDENCIES})
target_include_directories(onnxruntime_providers_tensorrt PRIVATE ${ONNXRUNTIME_ROOT} ${onnxruntime_CUDNN_HOME}/include ${eigen_INCLUDE_DIRS} PUBLIC ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/tensorrt DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core/providers)
set_target_properties(onnxruntime_providers_tensorrt PROPERTIES LINKER_LANGUAGE CXX)

View file

@ -33,7 +33,7 @@ function(AddTest)
else()
target_link_libraries(${_UT_TARGET} PRIVATE ${_UT_LIBS} gtest gmock ${onnxruntime_EXTERNAL_LIBRARIES})
endif()
onnxruntime_add_include_to_target(${_UT_TARGET} date_interface gsl eigen)
onnxruntime_add_include_to_target(${_UT_TARGET} date_interface gsl)
target_include_directories(${_UT_TARGET} PRIVATE ${TEST_INC_DIR})
if (onnxruntime_USE_CUDA)
target_include_directories(${_UT_TARGET} PRIVATE ${CUDA_INCLUDE_DIRS} ${onnxruntime_CUDNN_HOME}/include)
@ -224,7 +224,7 @@ onnxruntime_add_include_to_target(onnxruntime_test_utils_for_framework onnxrunti
if (onnxruntime_USE_MKLDNN)
target_compile_definitions(onnxruntime_test_utils_for_framework PUBLIC USE_MKLDNN=1)
endif()
add_dependencies(onnxruntime_test_utils_for_framework ${onnxruntime_EXTERNAL_DEPENDENCIES} eigen)
add_dependencies(onnxruntime_test_utils_for_framework ${onnxruntime_EXTERNAL_DEPENDENCIES})
target_include_directories(onnxruntime_test_utils_for_framework PUBLIC "${TEST_SRC_DIR}/util/include" PRIVATE ${eigen_INCLUDE_DIRS} ${ONNXRUNTIME_ROOT})
# Add the define for conditionally using the framework Environment class in TestEnvironment
target_compile_definitions(onnxruntime_test_utils_for_framework PUBLIC "HAVE_FRAMEWORK_LIB")
@ -236,7 +236,7 @@ onnxruntime_add_include_to_target(onnxruntime_test_utils onnxruntime_framework g
if (onnxruntime_USE_MKLDNN)
target_compile_definitions(onnxruntime_test_utils PUBLIC USE_MKLDNN=1)
endif()
add_dependencies(onnxruntime_test_utils ${onnxruntime_EXTERNAL_DEPENDENCIES} eigen)
add_dependencies(onnxruntime_test_utils ${onnxruntime_EXTERNAL_DEPENDENCIES})
target_include_directories(onnxruntime_test_utils PUBLIC "${TEST_SRC_DIR}/util/include" PRIVATE ${eigen_INCLUDE_DIRS} ${ONNXRUNTIME_ROOT})
set_target_properties(onnxruntime_test_utils PROPERTIES FOLDER "ONNXRuntimeTest")
@ -402,7 +402,7 @@ endif()
add_library(onnx_test_runner_common ${onnx_test_runner_common_srcs})
onnxruntime_add_include_to_target(onnx_test_runner_common onnxruntime_common onnxruntime_framework onnxruntime_test_utils gsl onnx onnx_proto)
add_dependencies(onnx_test_runner_common eigen onnx_test_data_proto ${onnxruntime_EXTERNAL_DEPENDENCIES})
add_dependencies(onnx_test_runner_common onnx_test_data_proto ${onnxruntime_EXTERNAL_DEPENDENCIES})
target_include_directories(onnx_test_runner_common PRIVATE ${eigen_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/onnx ${ONNXRUNTIME_ROOT})
set_target_properties(onnx_test_runner_common PROPERTIES FOLDER "ONNXRuntimeTest")

View file

@ -16,7 +16,7 @@ if(UNIX)
endif()
set_target_properties(onnxruntime_util PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(onnxruntime_util PROPERTIES FOLDER "ONNXRuntime")
add_dependencies(onnxruntime_util ${onnxruntime_EXTERNAL_DEPENDENCIES} eigen)
add_dependencies(onnxruntime_util ${onnxruntime_EXTERNAL_DEPENDENCIES})
if (WIN32)
target_compile_definitions(onnxruntime_util PRIVATE _SCL_SECURE_NO_WARNINGS)
target_compile_definitions(onnxruntime_framework PRIVATE _SCL_SECURE_NO_WARNINGS)

View file

@ -7,7 +7,7 @@
#include "core/framework/op_kernel.h"
#include "core/util/math.h"
#include "core/util/math_cpuonly.h"
#include "Eigen/src/Core/arch/CUDA/Half.h"
#include "Eigen/src/Core/arch/GPU/Half.h"
#include "core/common/common.h"
#if defined(USE_MLAS) && defined(_M_AMD64)

View file

@ -5,7 +5,7 @@
#include "core/util/math_cpuonly.h"
#include "core/common/common.h"
#include "core/framework/tensor.h"
#include "Eigen/src/Core/arch/CUDA/Half.h"
#include "Eigen/src/Core/arch/GPU/Half.h"
namespace onnxruntime {
// https://github.com/onnx/onnx/blob/master/docs/Operators.md#IsNaN

View file

@ -2,11 +2,6 @@
// Licensed under the MIT License.
#include "core/providers/cpu/tensor/space_depth_ops.h"
// warning raised from Eigen Tensor code.
#ifdef _MSC_VER
#pragma warning(disable : 4554)
#endif
#include "core/util/eigen_common_wrapper.h"
#include <array>

View file

@ -14,24 +14,23 @@
#pragma GCC diagnostic ignored "-Wignored-attributes"
#endif
#pragma GCC diagnostic ignored "-Wunused-parameter"
#elif defined(_MSC_VER)
// build\windows\debug\external\eigen3\unsupported\eigen\cxx11\src/Tensor/Tensor.h(76):
// warning C4554: '&': check operator precedence for possible error; use parentheses to clarify precedence
// build\windows\debug\external\eigen3\unsupported\eigen\cxx11\src/Tensor/TensorStorage.h(65):
// warning C4324: structure was padded due to alignment specifier
#elif defined(_MSC_VER)
// unsupported\eigen\cxx11\src\Tensor\TensorUInt128.h(150,0): Warning C4245: 'initializing': conversion from '__int64'
// to 'uint64_t', signed/unsigned mismatch
#pragma warning(push)
#pragma warning(disable : 4554)
#pragma warning(disable : 4324)
#pragma warning(disable : 4245)
#endif
#include "unsupported/Eigen/CXX11/Tensor"
#if defined(__GNUC__) && __GNUC__ >= 6
#if defined(__GNUC__)
#pragma GCC diagnostic pop
#elif defined(_MSC_VER)
#pragma warning(pop)
#endif

View file

@ -38,7 +38,7 @@
#include "core/providers/cpu/cpu_execution_provider.h"
#include "core/util/math.h"
#include "core/util/math_cpuonly.h"
#include "Eigen/src/Core/arch/CUDA/Half.h"
#include "Eigen/src/Core/arch/GPU/Half.h"
#if defined(USE_MLAS)
#include "core/mlas/inc/mlas.h"

View file

@ -16,8 +16,8 @@
#include <Windows.h>
#else
#include <pthread.h>
#include <unsupported/Eigen/CXX11/ThreadPool>
#endif
#include <test/compare_mlvalue.h>
#include "TestCase.h"
#include "heap_buffer.h"

View file

@ -7,7 +7,14 @@
#if defined(_MSC_VER)
#pragma warning(disable : 4267)
#endif
#if defined(__GNUC__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#endif
#include <unsupported/Eigen/CXX11/ThreadPool>
#if defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
#include <core/common/common.h>
#include <core/common/logging/logging.h>
#include <core/platform/ort_mutex.h>
@ -56,7 +63,7 @@ Status CreateAndSubmitThreadpoolWork(ORT_CALLBACK_FUNCTION callback, void* data,
return Status::OK();
}
using DefaultThreadPoolType = Eigen::NonBlockingThreadPool;
using DefaultThreadPoolType = Eigen::ThreadPool;
static std::unique_ptr<DefaultThreadPoolType> default_pool;
static std::once_flag default_pool_init;

View file

@ -20,8 +20,15 @@ using onnxruntime::Status;
// TODO: Temporary, while we bring up the threadpool impl...
#include "core/platform/threadpool.h"
#if defined(__GNUC__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#endif
#include <unsupported/Eigen/CXX11/ThreadPool>
using DefaultThreadPoolType = Eigen::NonBlockingThreadPool;
#if defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
using DefaultThreadPoolType = Eigen::ThreadPool;
static std::unique_ptr<DefaultThreadPoolType> default_pool;
static std::once_flag default_pool_init;
Eigen::ThreadPoolInterface* GetDefaultThreadPool(const onnxruntime::Env& env) {

View file

@ -14,7 +14,7 @@
#include "core/graph/onnx_protobuf.h"
#include "core/framework/tensorprotoutils.h"
#include "Eigen/Core"
#include "Eigen/src/Core/arch/CUDA/Half.h"
#include "Eigen/src/Core/arch/GPU/Half.h"
using namespace onnxruntime;

View file

@ -60,10 +60,6 @@ fi
#The last onnx version will be kept
aria2c -q -d /tmp/src http://bitbucket.org/eigen/eigen/get/3.3.7.tar.bz2
tar -jxf /tmp/src/eigen-eigen-323c052e1731.tar.bz2 -C /usr/include
mv /usr/include/eigen-eigen-323c052e1731 /usr/include/eigen3
rm -rf /tmp/src
rm -rf /usr/include/google
rm -rf /usr/lib/libproto*

View file

@ -33,10 +33,6 @@ export ONNX_ML=1
#The last onnx version will be kept
aria2c -q -d /tmp/src http://bitbucket.org/eigen/eigen/get/3.3.7.tar.bz2
tar -jxf /tmp/src/eigen-eigen-323c052e1731.tar.bz2 -C /usr/include
mv /usr/include/eigen-eigen-323c052e1731 /usr/include/eigen3
rm -rf /tmp/src
rm -rf /usr/include/google
rm -rf /usr/lib/libproto*

View file

@ -53,9 +53,6 @@ else
fi
#The last onnx version will be kept
aria2c -q -d /tmp/src http://bitbucket.org/eigen/eigen/get/3.3.7.tar.bz2
tar -jxf /tmp/src/eigen-eigen-323c052e1731.tar.bz2 -C /usr/include
mv /usr/include/eigen-eigen-323c052e1731 /usr/include/eigen3
rm -rf /tmp/src

View file

@ -72,9 +72,6 @@ for onnx_version in "3376d4438aaadfba483399fa249b841153152bc0" "6f91908b6a894278
pip3 uninstall -y onnx
done
aria2c -q -d /tmp/src http://bitbucket.org/eigen/eigen/get/3.3.5.tar.bz2
tar -jxf /tmp/src/eigen-eigen-b3f3d4950030.tar.bz2 -C /usr/include
mv /usr/include/eigen-eigen-b3f3d4950030 /usr/include/eigen3
chmod 0777 /data/onnx
rm -rf /tmp/src