mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-14 20:56:00 +08:00
Merge.
This commit is contained in:
commit
9396ace46b
@ -469,6 +469,8 @@ if(BUILD_TESTING)
|
|||||||
else()
|
else()
|
||||||
add_subdirectory(test EXCLUDE_FROM_ALL)
|
add_subdirectory(test EXCLUDE_FROM_ALL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(failtest)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
|
if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
|
||||||
@ -519,8 +521,6 @@ message(STATUS "")
|
|||||||
message(STATUS "Configured Eigen ${EIGEN_VERSION_NUMBER}")
|
message(STATUS "Configured Eigen ${EIGEN_VERSION_NUMBER}")
|
||||||
message(STATUS "")
|
message(STATUS "")
|
||||||
|
|
||||||
add_subdirectory(failtest)
|
|
||||||
|
|
||||||
string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_tolower)
|
string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_tolower)
|
||||||
if(cmake_generator_tolower MATCHES "makefile")
|
if(cmake_generator_tolower MATCHES "makefile")
|
||||||
message(STATUS "Some things you can do now:")
|
message(STATUS "Some things you can do now:")
|
||||||
@ -537,8 +537,10 @@ if(cmake_generator_tolower MATCHES "makefile")
|
|||||||
message(STATUS " | Or:")
|
message(STATUS " | Or:")
|
||||||
message(STATUS " | cmake . -DINCLUDE_INSTALL_DIR=yourdir")
|
message(STATUS " | cmake . -DINCLUDE_INSTALL_DIR=yourdir")
|
||||||
message(STATUS "make doc | Generate the API documentation, requires Doxygen & LaTeX")
|
message(STATUS "make doc | Generate the API documentation, requires Doxygen & LaTeX")
|
||||||
|
if(BUILD_TESTING)
|
||||||
message(STATUS "make check | Build and run the unit-tests. Read this page:")
|
message(STATUS "make check | Build and run the unit-tests. Read this page:")
|
||||||
message(STATUS " | http://eigen.tuxfamily.org/index.php?title=Tests")
|
message(STATUS " | http://eigen.tuxfamily.org/index.php?title=Tests")
|
||||||
|
endif()
|
||||||
message(STATUS "make blas | Build BLAS library (not the same thing as Eigen)")
|
message(STATUS "make blas | Build BLAS library (not the same thing as Eigen)")
|
||||||
message(STATUS "make uninstall| Removes files installed by make install")
|
message(STATUS "make uninstall| Removes files installed by make install")
|
||||||
message(STATUS "--------------+--------------------------------------------------------------")
|
message(STATUS "--------------+--------------------------------------------------------------")
|
||||||
|
@ -406,12 +406,40 @@ template<> EIGEN_STRONG_INLINE Packet4cd pcplxflip<Packet4cd>(const Packet4cd& x
|
|||||||
|
|
||||||
EIGEN_DEVICE_FUNC inline void
|
EIGEN_DEVICE_FUNC inline void
|
||||||
ptranspose(PacketBlock<Packet8cf,4>& kernel) {
|
ptranspose(PacketBlock<Packet8cf,4>& kernel) {
|
||||||
ptranspose(reinterpret_cast<PacketBlock<Packet8d,4>&>(kernel));
|
PacketBlock<Packet8d,4> pb;
|
||||||
|
|
||||||
|
pb.packet[0] = _mm512_castps_pd(kernel.packet[0].v);
|
||||||
|
pb.packet[1] = _mm512_castps_pd(kernel.packet[1].v);
|
||||||
|
pb.packet[2] = _mm512_castps_pd(kernel.packet[2].v);
|
||||||
|
pb.packet[3] = _mm512_castps_pd(kernel.packet[3].v);
|
||||||
|
ptranspose(pb);
|
||||||
|
kernel.packet[0].v = _mm512_castpd_ps(pb.packet[0]);
|
||||||
|
kernel.packet[1].v = _mm512_castpd_ps(pb.packet[1]);
|
||||||
|
kernel.packet[2].v = _mm512_castpd_ps(pb.packet[2]);
|
||||||
|
kernel.packet[3].v = _mm512_castpd_ps(pb.packet[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC inline void
|
EIGEN_DEVICE_FUNC inline void
|
||||||
ptranspose(PacketBlock<Packet8cf,8>& kernel) {
|
ptranspose(PacketBlock<Packet8cf,8>& kernel) {
|
||||||
ptranspose(reinterpret_cast<PacketBlock<Packet8d,8>&>(kernel));
|
PacketBlock<Packet8d,8> pb;
|
||||||
|
|
||||||
|
pb.packet[0] = _mm512_castps_pd(kernel.packet[0].v);
|
||||||
|
pb.packet[1] = _mm512_castps_pd(kernel.packet[1].v);
|
||||||
|
pb.packet[2] = _mm512_castps_pd(kernel.packet[2].v);
|
||||||
|
pb.packet[3] = _mm512_castps_pd(kernel.packet[3].v);
|
||||||
|
pb.packet[4] = _mm512_castps_pd(kernel.packet[4].v);
|
||||||
|
pb.packet[5] = _mm512_castps_pd(kernel.packet[5].v);
|
||||||
|
pb.packet[6] = _mm512_castps_pd(kernel.packet[6].v);
|
||||||
|
pb.packet[7] = _mm512_castps_pd(kernel.packet[7].v);
|
||||||
|
ptranspose(pb);
|
||||||
|
kernel.packet[0].v = _mm512_castpd_ps(pb.packet[0]);
|
||||||
|
kernel.packet[1].v = _mm512_castpd_ps(pb.packet[1]);
|
||||||
|
kernel.packet[2].v = _mm512_castpd_ps(pb.packet[2]);
|
||||||
|
kernel.packet[3].v = _mm512_castpd_ps(pb.packet[3]);
|
||||||
|
kernel.packet[4].v = _mm512_castpd_ps(pb.packet[4]);
|
||||||
|
kernel.packet[5].v = _mm512_castpd_ps(pb.packet[5]);
|
||||||
|
kernel.packet[6].v = _mm512_castpd_ps(pb.packet[6]);
|
||||||
|
kernel.packet[7].v = _mm512_castpd_ps(pb.packet[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC inline void
|
EIGEN_DEVICE_FUNC inline void
|
||||||
|
@ -143,7 +143,11 @@ template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pabs<half2>(const half2&
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< working copy
|
||||||
template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 ptrue<half2>(const half2& a) {
|
template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 ptrue<half2>(const half2& a) {
|
||||||
|
=======
|
||||||
|
template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pones<half2>(const half2& a) {
|
||||||
|
>>>>>>> merge rev
|
||||||
half2 result;
|
half2 result;
|
||||||
*(reinterpret_cast<unsigned*>(&(result))) = 0xffffffffu;
|
*(reinterpret_cast<unsigned*>(&(result))) = 0xffffffffu;
|
||||||
}
|
}
|
||||||
@ -648,8 +652,13 @@ template<> EIGEN_STRONG_INLINE Packet16h pnot(const Packet16h& a) {
|
|||||||
Packet16h r; r.x = _mm256_xor_si256(a.x, pcmp_eq(a.x, a.x)); return r;
|
Packet16h r; r.x = _mm256_xor_si256(a.x, pcmp_eq(a.x, a.x)); return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< working copy
|
||||||
template<> EIGEN_STRONG_INLINE Packet16h ptrue(const Packet16h& a) {
|
template<> EIGEN_STRONG_INLINE Packet16h ptrue(const Packet16h& a) {
|
||||||
Packet16h r; r.x = Packet8i(ptrue(a.x)); return r;
|
Packet16h r; r.x = Packet8i(ptrue(a.x)); return r;
|
||||||
|
=======
|
||||||
|
template<> EIGEN_STRONG_INLINE Packet16h pones(const Packet16h& a) {
|
||||||
|
Packet16h r; r.x = Packet8i(pones(a.x)); return r;
|
||||||
|
>>>>>>> merge rev
|
||||||
}
|
}
|
||||||
|
|
||||||
template<> EIGEN_STRONG_INLINE Packet16h por(const Packet16h& a,const Packet16h& b) {
|
template<> EIGEN_STRONG_INLINE Packet16h por(const Packet16h& a,const Packet16h& b) {
|
||||||
@ -1097,7 +1106,11 @@ EIGEN_STRONG_INLINE Packet8h float2half(const Packet8f& a) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< working copy
|
||||||
template<> EIGEN_STRONG_INLINE Packet8h ptrue(const Packet8h& a) {
|
template<> EIGEN_STRONG_INLINE Packet8h ptrue(const Packet8h& a) {
|
||||||
|
=======
|
||||||
|
template<> EIGEN_STRONG_INLINE Packet8h pones(const Packet8h& a) {
|
||||||
|
>>>>>>> merge rev
|
||||||
Packet8h r; r.x = _mm_cmpeq_epi32(a.x, a.x); return r;
|
Packet8h r; r.x = _mm_cmpeq_epi32(a.x, a.x); return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -890,7 +890,8 @@ struct TensorEvaluator<const TensorContractionOp<Indices, LeftArgType, RightArgT
|
|||||||
|
|
||||||
TENSOR_CONTRACTION_DISPATCH(
|
TENSOR_CONTRACTION_DISPATCH(
|
||||||
this->template evalGemmPartialWithoutOutputKernel, Alignment,
|
this->template evalGemmPartialWithoutOutputKernel, Alignment,
|
||||||
(buf, begin, end, /*num_threads=*/num_blocks));
|
(buf, begin, end,
|
||||||
|
/*num_threads=*/internal::convert_index<int>(num_blocks)));
|
||||||
|
|
||||||
// Check if it was the last task in l0 range.
|
// Check if it was the last task in l0 range.
|
||||||
const Index l0_index = block_idx / l0_size;
|
const Index l0_index = block_idx / l0_size;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user