diff --git a/.gitmodules b/.gitmodules index e5de262bdd..a84bf8cea5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -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 diff --git a/cgmanifest.json b/cgmanifest.json index a05e435ebe..3870222f38 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -139,7 +139,7 @@ "component":{ "type":"git", "git":{ - "commitHash":"cf794d3b741a6278df169e58461f8529f43bce5d", + "commitHash":"1456fe2fac0cd074bbbb8630ba003a7c325d015b", "repositoryUrl":"https://github.com/eigenteam/eigen-git-mirror.git" } } diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index ef0f7e1e08..bde9ce2256 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -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) diff --git a/cmake/external/eigen b/cmake/external/eigen new file mode 160000 index 0000000000..1456fe2fac --- /dev/null +++ b/cmake/external/eigen @@ -0,0 +1 @@ +Subproject commit 1456fe2fac0cd074bbbb8630ba003a7c325d015b diff --git a/cmake/external/eigen.cmake b/cmake/external/eigen.cmake index bda465a73c..b67d23509d 100644 --- a/cmake/external/eigen.cmake +++ b/cmake/external/eigen.cmake @@ -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() diff --git a/cmake/onnxruntime_common.cmake b/cmake/onnxruntime_common.cmake index 6729c650da..573322bad5 100644 --- a/cmake/onnxruntime_common.cmake +++ b/cmake/onnxruntime_common.cmake @@ -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) diff --git a/cmake/onnxruntime_providers.cmake b/cmake/onnxruntime_providers.cmake index 5ceed9deec..dd57f3d8cb 100644 --- a/cmake/onnxruntime_providers.cmake +++ b/cmake/onnxruntime_providers.cmake @@ -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) "$<$>:-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) diff --git a/cmake/onnxruntime_unittests.cmake b/cmake/onnxruntime_unittests.cmake index 151247c684..d74d4e216f 100644 --- a/cmake/onnxruntime_unittests.cmake +++ b/cmake/onnxruntime_unittests.cmake @@ -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") diff --git a/cmake/onnxruntime_util.cmake b/cmake/onnxruntime_util.cmake index c5ef74c86a..1b18a18998 100644 --- a/cmake/onnxruntime_util.cmake +++ b/cmake/onnxruntime_util.cmake @@ -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) diff --git a/onnxruntime/core/providers/cpu/tensor/cast_op.cc b/onnxruntime/core/providers/cpu/tensor/cast_op.cc index e482c4b21f..87c8af25d8 100644 --- a/onnxruntime/core/providers/cpu/tensor/cast_op.cc +++ b/onnxruntime/core/providers/cpu/tensor/cast_op.cc @@ -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) diff --git a/onnxruntime/core/providers/cpu/tensor/isnan.cc b/onnxruntime/core/providers/cpu/tensor/isnan.cc index ec4143743e..42b410d6e2 100644 --- a/onnxruntime/core/providers/cpu/tensor/isnan.cc +++ b/onnxruntime/core/providers/cpu/tensor/isnan.cc @@ -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 diff --git a/onnxruntime/core/providers/cpu/tensor/space_depth_ops.cc b/onnxruntime/core/providers/cpu/tensor/space_depth_ops.cc index 05a57b74c4..728494f2e9 100644 --- a/onnxruntime/core/providers/cpu/tensor/space_depth_ops.cc +++ b/onnxruntime/core/providers/cpu/tensor/space_depth_ops.cc @@ -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 diff --git a/onnxruntime/core/util/eigen_common_wrapper.h b/onnxruntime/core/util/eigen_common_wrapper.h index 227004e23a..03ad121064 100644 --- a/onnxruntime/core/util/eigen_common_wrapper.h +++ b/onnxruntime/core/util/eigen_common_wrapper.h @@ -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 \ No newline at end of file diff --git a/onnxruntime/core/util/math_cpu.cc b/onnxruntime/core/util/math_cpu.cc index ca98037219..4d5cfa1e53 100644 --- a/onnxruntime/core/util/math_cpu.cc +++ b/onnxruntime/core/util/math_cpu.cc @@ -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" diff --git a/onnxruntime/test/onnx/runner.cc b/onnxruntime/test/onnx/runner.cc index 881385fd4f..fc00f2ec5b 100644 --- a/onnxruntime/test/onnx/runner.cc +++ b/onnxruntime/test/onnx/runner.cc @@ -16,8 +16,8 @@ #include #else #include -#include #endif + #include #include "TestCase.h" #include "heap_buffer.h" diff --git a/onnxruntime/test/onnx/sync_api.cc b/onnxruntime/test/onnx/sync_api.cc index 9d2db26a20..10265a6510 100644 --- a/onnxruntime/test/onnx/sync_api.cc +++ b/onnxruntime/test/onnx/sync_api.cc @@ -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 +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif #include #include #include @@ -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 default_pool; static std::once_flag default_pool_init; diff --git a/onnxruntime/test/perftest/performance_runner.cc b/onnxruntime/test/perftest/performance_runner.cc index b9fab1e8e1..e3a8d06a25 100644 --- a/onnxruntime/test/perftest/performance_runner.cc +++ b/onnxruntime/test/perftest/performance_runner.cc @@ -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 -using DefaultThreadPoolType = Eigen::NonBlockingThreadPool; +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif +using DefaultThreadPoolType = Eigen::ThreadPool; static std::unique_ptr default_pool; static std::once_flag default_pool_init; Eigen::ThreadPoolInterface* GetDefaultThreadPool(const onnxruntime::Env& env) { diff --git a/onnxruntime/test/util/compare_mlvalue.cc b/onnxruntime/test/util/compare_mlvalue.cc index 001c037637..96492c8987 100644 --- a/onnxruntime/test/util/compare_mlvalue.cc +++ b/onnxruntime/test/util/compare_mlvalue.cc @@ -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; diff --git a/tools/ci_build/github/linux/docker/scripts/install_deps.sh b/tools/ci_build/github/linux/docker/scripts/install_deps.sh index 3674c64234..0ab1651577 100755 --- a/tools/ci_build/github/linux/docker/scripts/install_deps.sh +++ b/tools/ci_build/github/linux/docker/scripts/install_deps.sh @@ -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* diff --git a/tools/ci_build/github/linux/docker/scripts/install_deps_android.sh b/tools/ci_build/github/linux/docker/scripts/install_deps_android.sh index 79d680e49b..feefca233b 100755 --- a/tools/ci_build/github/linux/docker/scripts/install_deps_android.sh +++ b/tools/ci_build/github/linux/docker/scripts/install_deps_android.sh @@ -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* diff --git a/tools/ci_build/github/linux/docker/scripts/install_deps_x86.sh b/tools/ci_build/github/linux/docker/scripts/install_deps_x86.sh index dbe2b570e1..31067994e2 100755 --- a/tools/ci_build/github/linux/docker/scripts/install_deps_x86.sh +++ b/tools/ci_build/github/linux/docker/scripts/install_deps_x86.sh @@ -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 diff --git a/tools/ci_build/github/linux/ubuntu16.04/install.sh b/tools/ci_build/github/linux/ubuntu16.04/install.sh index 6464d26b87..4339aed67b 100755 --- a/tools/ci_build/github/linux/ubuntu16.04/install.sh +++ b/tools/ci_build/github/linux/ubuntu16.04/install.sh @@ -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