mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-14 06:08:03 +08:00
[eigen3] Fix eigen3 and cuda compatibility issue (#12279)
* [eigen3] Fix eigen3 and cuda compatibility issue * forgot to apply patch * Update ports/eigen3/portfile.cmake * Update ports/eigen3/portfile.cmake
This commit is contained in:
parent
fc761ebb72
commit
e59e5a417c
@ -1,4 +1,5 @@
|
||||
Source: eigen3
|
||||
Version: 3.3.7-5
|
||||
Version: 3.3.7
|
||||
Port-Version: 6
|
||||
Homepage: http://eigen.tuxfamily.org
|
||||
Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
|
||||
|
30
ports/eigen3/fix-cuda-error.patch
Normal file
30
ports/eigen3/fix-cuda-error.patch
Normal file
@ -0,0 +1,30 @@
|
||||
diff --git a/Eigen/src/Core/arch/CUDA/Half.h b/Eigen/src/Core/arch/CUDA/Half.h
|
||||
index 755e620..85e445b 100644
|
||||
--- a/Eigen/src/Core/arch/CUDA/Half.h
|
||||
+++ b/Eigen/src/Core/arch/CUDA/Half.h
|
||||
@@ -209,7 +209,11 @@ namespace half_impl {
|
||||
// conversion steps back and forth.
|
||||
|
||||
EIGEN_STRONG_INLINE __device__ half operator + (const half& a, const half& b) {
|
||||
+#if defined(EIGEN_CUDACC_VER) && EIGEN_CUDACC_VER >= 90000
|
||||
+ return __hadd(::__half(a), ::__half(b));
|
||||
+#else
|
||||
return __hadd(a, b);
|
||||
+#endif
|
||||
}
|
||||
EIGEN_STRONG_INLINE __device__ half operator * (const half& a, const half& b) {
|
||||
return __hmul(a, b);
|
||||
@@ -218,9 +222,13 @@ EIGEN_STRONG_INLINE __device__ half operator - (const half& a, const half& b) {
|
||||
return __hsub(a, b);
|
||||
}
|
||||
EIGEN_STRONG_INLINE __device__ half operator / (const half& a, const half& b) {
|
||||
+#if defined(EIGEN_CUDACC_VER) && EIGEN_CUDACC_VER >= 90000
|
||||
+ return __hdiv(a, b);
|
||||
+#else
|
||||
float num = __half2float(a);
|
||||
float denom = __half2float(b);
|
||||
return __float2half(num / denom);
|
||||
+#endif
|
||||
}
|
||||
EIGEN_STRONG_INLINE __device__ half operator - (const half& a) {
|
||||
return __hneg(a);
|
@ -1,5 +1,3 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_buildpath_length_warning(37)
|
||||
|
||||
vcpkg_from_gitlab(
|
||||
@ -9,6 +7,7 @@ vcpkg_from_gitlab(
|
||||
REF 3.3.7
|
||||
SHA512 4cc3717b9cbe78335e05f724919497214edd482d4812aeb1a9fd6da5b3f6d1b194bb93ed0dab9e734b4334a5b88e8f8c339c43c1b2044332286ef5e758f9ecf4
|
||||
HEAD_REF master
|
||||
PATCHES fix-cuda-error.patch # issue https://gitlab.com/libeigen/eigen/-/issues/1526
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
@ -29,16 +28,13 @@ vcpkg_install_cmake()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
file(READ "${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake" EIGEN_TARGETS)
|
||||
string(REPLACE "set(_IMPORT_PREFIX " "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}/../..\" ABSOLUTE) #" EIGEN_TARGETS "${EIGEN_TARGETS}")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake" "${EIGEN_TARGETS}")
|
||||
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake
|
||||
"set(_IMPORT_PREFIX " "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}/../..\" ABSOLUTE) #"
|
||||
)
|
||||
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
file(GLOB INCLUDES ${CURRENT_PACKAGES_DIR}/include/eigen3/*)
|
||||
# Copy the eigen header files to conventional location for user-wide MSBuild integration
|
||||
file(COPY ${INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
|
||||
|
||||
# Put the licence file where vcpkg expects it
|
||||
file(COPY ${SOURCE_PATH}/COPYING.README DESTINATION ${CURRENT_PACKAGES_DIR}/share/eigen3)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/eigen3/COPYING.README ${CURRENT_PACKAGES_DIR}/share/eigen3/copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING.README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
Loading…
x
Reference in New Issue
Block a user