|
|
|
@ -26,13 +26,6 @@ if(WIN32)
|
|
|
|
|
set(EIGEN_TAG 917060c364181f33a735dc023818d5a54f60e54c)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# eigen on cuda9.1 missing header of math_funtions.hpp
|
|
|
|
|
# https://stackoverflow.com/questions/43113508/math-functions-hpp-not-found-when-using-cuda-with-eigen
|
|
|
|
|
if(WITH_ROCM_PLATFORM)
|
|
|
|
|
set(EIGEN_REPOSITORY ${GIT_URL}/sabreshao/hipeigen.git)
|
|
|
|
|
set(EIGEN_TAG 7cb2b6e5a4b4a1efe658abb215cd866c6fb2275e)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
cache_third_party(extern_eigen3
|
|
|
|
|
REPOSITORY ${EIGEN_REPOSITORY}
|
|
|
|
|
TAG ${EIGEN_TAG}
|
|
|
|
@ -56,43 +49,38 @@ elseif(LINUX)
|
|
|
|
|
# add patch to avoid compilation error in c++11
|
|
|
|
|
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/eigen/MathFunctions.h native_src2)
|
|
|
|
|
file(TO_NATIVE_PATH ${EIGEN_SOURCE_DIR}/Eigen/src/Core/MathFunctions.h native_dst2)
|
|
|
|
|
set(EIGEN_PATCH_COMMAND cp ${native_src1} ${native_dst1} && cp ${native_src2} ${native_dst2})
|
|
|
|
|
if(WITH_ROCM)
|
|
|
|
|
# For HIPCC Eigen::internal::device::numeric_limits is not EIGEN_DEVICE_FUNC
|
|
|
|
|
# which will cause compiler error of using __host__ funciont in __host__ __device__
|
|
|
|
|
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/eigen/Meta.h native_src3)
|
|
|
|
|
file(TO_NATIVE_PATH ${EIGEN_SOURCE_DIR}/Eigen/src/Core/util/Meta.h native_dst3)
|
|
|
|
|
# For HIPCC Eigen::internal::scalar_sum_op<bool,bool> is not EIGEN_DEVICE_FUNC
|
|
|
|
|
# which will cause compiler error of using __host__ funciont in __host__ __device__
|
|
|
|
|
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/eigen/BinaryFunctors.h native_src4)
|
|
|
|
|
file(TO_NATIVE_PATH ${EIGEN_SOURCE_DIR}/Eigen/src/Core/functors/BinaryFunctors.h native_dst4)
|
|
|
|
|
set(EIGEN_PATCH_COMMAND cp ${native_src1} ${native_dst1} && cp ${native_src2} ${native_dst2} && cp ${native_src3} ${native_dst3} && cp ${native_src4} ${native_dst4})
|
|
|
|
|
else()
|
|
|
|
|
set(EIGEN_PATCH_COMMAND cp ${native_src1} ${native_dst1} && cp ${native_src2} ${native_dst2})
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(EIGEN_INCLUDE_DIR ${EIGEN_SOURCE_DIR})
|
|
|
|
|
INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
if(WITH_AMD_GPU)
|
|
|
|
|
ExternalProject_Add(
|
|
|
|
|
extern_eigen3
|
|
|
|
|
${EXTERNAL_PROJECT_LOG_ARGS}
|
|
|
|
|
${SHALLOW_CLONE}
|
|
|
|
|
"${EIGEN_DOWNLOAD_CMD}"
|
|
|
|
|
PREFIX ${EIGEN_PREFIX_DIR}
|
|
|
|
|
SOURCE_DIR ${EIGEN_SOURCE_DIR}
|
|
|
|
|
UPDATE_COMMAND ""
|
|
|
|
|
PATCH_COMMAND ${EIGEN_PATCH_COMMAND}
|
|
|
|
|
CONFIGURE_COMMAND ""
|
|
|
|
|
BUILD_COMMAND ""
|
|
|
|
|
INSTALL_COMMAND ""
|
|
|
|
|
TEST_COMMAND ""
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
ExternalProject_Add(
|
|
|
|
|
extern_eigen3
|
|
|
|
|
${EXTERNAL_PROJECT_LOG_ARGS}
|
|
|
|
|
${SHALLOW_CLONE}
|
|
|
|
|
"${EIGEN_DOWNLOAD_CMD}"
|
|
|
|
|
PREFIX ${EIGEN_PREFIX_DIR}
|
|
|
|
|
SOURCE_DIR ${EIGEN_SOURCE_DIR}
|
|
|
|
|
UPDATE_COMMAND ""
|
|
|
|
|
PATCH_COMMAND ${EIGEN_PATCH_COMMAND}
|
|
|
|
|
CONFIGURE_COMMAND ""
|
|
|
|
|
BUILD_COMMAND ""
|
|
|
|
|
INSTALL_COMMAND ""
|
|
|
|
|
TEST_COMMAND ""
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
ExternalProject_Add(
|
|
|
|
|
extern_eigen3
|
|
|
|
|
${EXTERNAL_PROJECT_LOG_ARGS}
|
|
|
|
|
${SHALLOW_CLONE}
|
|
|
|
|
"${EIGEN_DOWNLOAD_CMD}"
|
|
|
|
|
PREFIX ${EIGEN_PREFIX_DIR}
|
|
|
|
|
SOURCE_DIR ${EIGEN_SOURCE_DIR}
|
|
|
|
|
UPDATE_COMMAND ""
|
|
|
|
|
PATCH_COMMAND ${EIGEN_PATCH_COMMAND}
|
|
|
|
|
CONFIGURE_COMMAND ""
|
|
|
|
|
BUILD_COMMAND ""
|
|
|
|
|
INSTALL_COMMAND ""
|
|
|
|
|
TEST_COMMAND ""
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_library(eigen3 INTERFACE)
|
|
|
|
|
|
|
|
|
|