Joel Holdsworth
4b9ecf2924
NEON: Added int8_t and uint8_t packet math
2020-03-10 22:46:19 +00:00
Joel Holdsworth
ceaabd4e16
NEON: Added int16_t and uint16_t packet math
2020-03-10 22:46:19 +00:00
Joel Holdsworth
d5d3cf9339
NEON: Added uint32_t packet math
2020-03-10 22:46:19 +00:00
Joel Holdsworth
eacf97f727
NEON: Implemented half-size vectors
2020-03-10 22:46:19 +00:00
Joel Holdsworth
5f411b729e
NEON: Set packet_traits<double> flags
2020-03-10 22:46:19 +00:00
Joel Holdsworth
88337acae2
test/packetmath: Add tests for all integer types
2020-03-10 22:46:19 +00:00
Joel Holdsworth
9e68977578
test/packetmath: Made negate non-mandatory
2020-03-10 22:46:19 +00:00
Sami Kama
b733b8b680
remove duplicate pset1 for half and add some comments about why we need expose pmul/add/div/min/max on host
2020-03-10 20:28:43 +00:00
Ram-Z
a45d28256d
Don't restrict CMAKE_BUILD_TYPE
...
This prevents projects that add Eigen using `add_subdirectory` from using their own custom CMAKE_BUILD_TYPE and have Eigen respect the same custom flags.
2020-02-28 20:46:53 +00:00
Cédric Hubert
98bfc5aaa8
Update MarketIO.h
2020-02-28 12:41:51 +00:00
Rasmus Munk Larsen
52a2fbbb00
Revert "avoid selecting half-packets when unnecessary"
...
This reverts commit 5ca10480b0
2020-02-25 01:07:43 +00:00
Rasmus Munk Larsen
235bcfe08d
Revert "Pick full packet unconditionally when EIGEN_UNALIGNED_VECTORIZE"
...
This reverts commit 44df2109c8
2020-02-25 01:07:28 +00:00
Rasmus Munk Larsen
d7a42eade6
Revert "do not pick full-packet if it'd result in more operations"
...
This reverts commit e9cc0cd353
2020-02-25 01:07:15 +00:00
Rasmus Munk Larsen
6ac37768a9
Revert "add some static checks for packet-picking logic"
...
This reverts commit 7769600245
2020-02-25 01:07:04 +00:00
Rasmus Munk Larsen
87cfa4862f
Revert "Disable test in test/vectorization_logic.cpp, which is currently failing with AVX."
...
This reverts commit b625adffd8
2020-02-25 01:04:56 +00:00
Rasmus Munk Larsen
b625adffd8
Disable test in test/vectorization_logic.cpp, which is currently failing with AVX.
2020-02-24 23:28:25 +00:00
Tobias Bosch
f0ce88cff7
Include <sstream> explicitly, and don't rely on the implicit include via <complex>.
...
This implicit dependency does no longer exist in a recent llbm release (sha 78be61871704).
2020-02-24 23:09:36 +00:00
Ilya Tokar
eb6cc29583
Avoid a division in NonBlockingThreadPool::Steal.
...
Looking at profiles we spend ~10-20% of Steal on simply computing
random % size. We can reduce random 32-bit int into [0, size) range with
a single multiplication and shift. This transformation is described in
https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
2020-02-14 16:02:57 -05:00
Francesco Mazzoli
7769600245
add some static checks for packet-picking logic
2020-02-07 18:16:16 +01:00
Francesco Mazzoli
e9cc0cd353
do not pick full-packet if it'd result in more operations
...
See comment and
<https://gitlab.com/libeigen/eigen/merge_requests/46#note_270622952 >.
2020-02-07 18:16:16 +01:00
Francesco Mazzoli
44df2109c8
Pick full packet unconditionally when EIGEN_UNALIGNED_VECTORIZE
...
See comment for details.
2020-02-07 18:16:16 +01:00
Francesco Mazzoli
5ca10480b0
avoid selecting half-packets when unnecessary
...
See
<https://stackoverflow.com/questions/59709148/ensuring-that-eigen-uses-avx-vectorization-for-a-certain-operation >
for an explanation of the problem this solves.
In short, for some reason, before this commit the half-packet is
selected when the array / matrix size is not a multiple of
`unpacket_traits<PacketType>::size`, where `PacketType` starts out
being the full Packet.
For example, for some data of 100 `float`s, `Packet4f` will be
selected rather than `Packet8f`, because 100 is not a multiple of 8,
the size of `Packet8f`.
This commit switches to selecting the half-packet if the size is
less than the packet size, which seems to make more sense.
As I stated in the SO post I'm not sure that I'm understanding the
issue correctly, but this fix resolves the issue in my program. Moreover,
`make check` passes, with the exception of line 614 and 616 in
`test/packetmath.cpp`, which however also fail on master on my machine:
CHECK_CWISE1_IF(PacketTraits::HasBessel, numext::bessel_i0, internal::pbessel_i0);
...
CHECK_CWISE1_IF(PacketTraits::HasBessel, numext::bessel_i1, internal::pbessel_i1);
2020-02-07 18:16:16 +01:00
Eugene Zhulenev
f584bd9b30
Fail at compile time if default executor tries to use non-default device
2020-02-06 22:43:24 +00:00
Eugene Zhulenev
3fda850c46
Remove dead code from TensorReduction.h
2020-01-29 18:45:31 +00:00
Jeff Daily
b5df8cabd7
fix hip-clang compilation due to new HIP scalar accessor
2020-01-20 21:08:52 +00:00
Deven Desai
6d284bb1b7
Fix for HIP breakage - 200115. Adding a missing EIGEN_DEVICE_FUNC attr
2020-01-16 00:51:43 +00:00
Srinivas Vasudevan
f6c6de5d63
Ensure Igamma does not NaN or Inf for large values.
2020-01-14 21:32:48 +00:00
Rasmus Munk Larsen
6601abce86
Remove rogue include in TypeCasting.h. Meta.h is already included by the top-level header in Eigen/Core.
2020-01-14 21:03:53 +00:00
Eugene Zhulenev
b9362fb8f7
Convert StridedLinearBufferCopy::Kind to enum class
2020-01-13 11:43:24 -08:00
Everton Constantino
5a8b97b401
Switching unpacket_traits<Packet4i> to vectorizable=true.
2020-01-13 16:08:20 -03:00
Everton Constantino
42838c28b8
Adding correct cache sizes for PPC architecture.
2020-01-13 16:58:14 +00:00
Christoph Hertzberg
1d0c45122a
Removing executable bit from file mode
2020-01-11 15:02:29 +01:00
Christoph Hertzberg
35219cea68
Bug #1790 : Make areApprox
check numext::isnan
instead of bitwise equality (NaNs don't have to be bitwise equal).
2020-01-11 14:57:22 +01:00
Srinivas Vasudevan
2e099e8d8f
Added special_packetmath test and tweaked bounds on tests.
...
Refactor shared packetmath code to header file.
(Squashed from PR !38 )
2020-01-11 10:31:21 +00:00
Rasmus Munk Larsen
e1ecfc162d
call Explicitly ::rint and ::rintf for targets without c++11. Without this, the Windows build breaks when trying to compile numext::rint<double>.
2020-01-10 21:14:08 +00:00
Joel Holdsworth
da5a7afed0
Improvements to the tidiness and completeness of the NEON implementation
2020-01-10 18:31:15 +00:00
Anuj Rawat
452371cead
Fix for gcc build error when using Eigen headers with AVX512
2020-01-10 18:05:42 +00:00
mehdi-goli
601f89dfd0
Adding RInt vector support for SYCL.
2020-01-10 18:00:36 +00:00
Matthew Powelson
2ea5a715cf
Properly initialize b vector in SplineFitting
...
InterpolateWithDerivative does not initialize the be vector correctly. This issue is discussed In stackoverflow question 48382939.
2020-01-09 21:29:04 +00:00
Rasmus Munk Larsen
9254974115
Don't add EIGEN_DEVICE_FUNC to random() since ::rand is not available in Cuda.
2020-01-09 21:23:09 +00:00
Rasmus Munk Larsen
a3ec89b5bd
Add missing EIGEN_DEVICE_FUNC annotations in MathFunctions.h.
2020-01-09 21:06:34 +00:00
Christoph Hertzberg
8333e03590
Use data.data() instead of &data (since it is not obvious that Array is trivially copyable)
2020-01-09 11:38:19 +01:00
Rasmus Munk Larsen
e6fcee995b
Don't use the rational approximation to the logistic function on GPUs as it appears to be slightly slower.
2020-01-09 00:04:26 +00:00
Rasmus Munk Larsen
4217a9f090
The upper limits for where to use the rational approximation to the logistic function were not set carefully enough in the original commit, and some arguments would cause the function to return values greater than 1. This change set the versions found by scanning all floating point numbers (using std::nextafterf()).
2020-01-08 22:21:37 +00:00
Christoph Hertzberg
9623c0c4b9
Fix formatting
2020-01-08 13:58:18 +01:00
Ilya Tokar
19876ced76
Bug #1785 : Introduce numext::rint.
...
This provides a new op that matches std::rint and previous behavior of
pround. Also adds corresponding unsupported/../Tensor op.
Performance is the same as e. g. floor (tested SSE/AVX).
2020-01-07 21:22:44 +00:00
mehdi-goli
d0ae052da4
[SYCL Backend]
...
* Adding Missing operations for vector comparison in SYCL. This caused compiler error for vector comparison when compiling SYCL
* Fixing the compiler error for placement new in TensorForcedEval.h This caused compiler error when compiling SYCL backend
* Reducing the SYCL warning by removing the abort function inside the kernel
* Adding Strong inline to functions inside SYCL interop.
2020-01-07 15:13:37 +00:00
Everton Constantino
eedb7eeacf
Protecting integer_types's long long test with a check to see if we have CXX11 support.
2020-01-07 14:35:35 +00:00
Christoph Hertzberg
bcbaad6d87
Bug #1800 : Guard against misleading indentation
2020-01-03 13:47:43 +01:00
Janek Kozicki
00de570793
Fix -Werror -Wfloat-conversion warning.
2019-12-23 23:52:44 +01:00