Christoph Hertzberg
|
c460af414e
|
Fix bug #1000: Manually inherit assignment operators for MSVC 2013 and later (as required by the standard).
|
2015-04-23 13:39:03 +02:00 |
|
Gael Guennebaud
|
d6a8b43b39
|
Fix typo in the definition of EIGEN_COMP_GNUC_STRICT
|
2015-04-21 10:12:38 +02:00 |
|
Christoph Hertzberg
|
4f126b862d
|
Add internal assertions to purely fixed-size DenseStorage, mark optional variables always as unused
|
2015-04-17 11:36:21 +02:00 |
|
Christoph Hertzberg
|
9d7843d0d0
|
Add internal assertions to DenseStorage constructor
|
2015-04-16 15:47:06 +02:00 |
|
Christoph Hertzberg
|
3be9f5c4d7
|
Constructing a Matrix/Array with implicit transpose could lead to memory leaks.
Also reduced code duplication for Matrix/Array constructors
|
2015-04-16 13:25:20 +02:00 |
|
Benoit Steiner
|
0f82399fe9
|
Pulled latest changes from trunk
|
2015-04-14 19:13:34 -07:00 |
|
Benoit Steiner
|
5401fbcc50
|
Improved the blocking strategy to speedup multithreaded tensor contractions.
|
2015-04-09 16:44:10 -07:00 |
|
Gael Guennebaud
|
0eb220c00d
|
add a note on bug #992
|
2015-04-08 09:25:34 +02:00 |
|
Benoit Jacob
|
d7f51feb07
|
bug #992: don't select a 3p GEMM path with non-vectorizable scalar types, this hits unsupported paths in symm/triangular products code
|
2015-04-07 15:13:55 -04:00 |
|
Benoit Steiner
|
74e558cfa8
|
Pulled latest updates from trunk
|
2015-04-01 23:24:11 -07:00 |
|
Gael Guennebaud
|
39dcd01b0a
|
bug #973: enable alignment of multiples of half-packet size (e.g., Vector6d with AVX)
|
2015-04-01 13:55:09 +02:00 |
|
Gael Guennebaud
|
8481dc21ea
|
bug #986: add support for coefficient-based product with 0 depth.
|
2015-04-01 13:15:23 +02:00 |
|
Gael Guennebaud
|
79b4e6acaf
|
Fix bug #987: wrong alignement guess in diagonal product.
|
2015-03-31 23:35:12 +02:00 |
|
Gael Guennebaud
|
8313fb7df7
|
Add row/column-wise reverseInPlace feature.
|
2015-03-31 21:35:53 +02:00 |
|
Gael Guennebaud
|
dfb674a25e
|
Make reverseInPlace really work in-place.
|
2015-03-31 20:17:10 +02:00 |
|
Gael Guennebaud
|
20d030f207
|
Fix vectorization of swap for non trivial expressions
|
2015-03-31 20:16:02 +02:00 |
|
Benoit Jacob
|
73cdeae1d3
|
Only use blocking sizes LUTs for single-thread products for now
|
2015-03-31 11:17:23 -04:00 |
|
Benoit Jacob
|
0cbd5ae3cb
|
Correctly detect Android with ndk_build
|
2015-03-31 11:17:21 -04:00 |
|
Gael Guennebaud
|
ae01c05e18
|
Fix computeProductBlockingSizes with m==0, and add respective unit test.
|
2015-03-31 15:19:57 +02:00 |
|
Benoit Steiner
|
35722fa022
|
Made the index type a template parameter of the tensor class instead of encoding it in the options.
|
2015-03-30 14:55:54 -07:00 |
|
Gael Guennebaud
|
79cb875249
|
merge
|
2015-03-27 10:56:04 +01:00 |
|
Gael Guennebaud
|
3d59ae0203
|
Fix hypot(0,0).
|
2015-03-27 09:59:24 +01:00 |
|
Benoit Steiner
|
d3f7915aeb
|
Pulled latest update from the eigen main codebase
|
2015-03-24 13:12:14 -07:00 |
|
Benoit Steiner
|
abdbe8562e
|
Fixed the CUDA packet primitives
|
2015-03-24 10:45:46 -07:00 |
|
Gael Guennebaud
|
29eaa2b0f1
|
Make MatrixBase::is* methods aware of nested_eval.
|
2015-03-24 13:42:42 +01:00 |
|
Gael Guennebaud
|
d6b2f300db
|
Fix MSVC compilation: aligned type must be passed by reference
|
2015-03-19 17:28:32 +01:00 |
|
Gael Guennebaud
|
61c45d7cfd
|
Fix comparison warning
|
2015-03-19 17:13:22 +01:00 |
|
Gael Guennebaud
|
f329d0908a
|
Improve random number generation for integer and add unit test
|
2015-03-19 15:10:36 +01:00 |
|
Benoit Jacob
|
dc04f12967
|
use unsigned short instead of uint16_t which doesn't exist in c++98
|
2015-03-17 10:31:45 -04:00 |
|
Benoit Jacob
|
364cfd529d
|
Similar to cset 3589a9c115
, also in 2px4 kernel: actual_panel_rows computation should always be resilient to parameters not consistent with the known L1 cache size, see comment
|
2015-03-16 16:28:44 -04:00 |
|
Benoit Jacob
|
eb6929cb19
|
fix bug in maxsize calculation, which would cause products of size > 2048 to address the lookup table out of bounds
|
2015-03-16 16:15:47 -04:00 |
|
Benoit Jacob
|
35c3a8bb84
|
Update Nexus 5 lookup table from combining now 2 runs of the benchmark, using the analyze-blocking-sizes partition tool. Gives better worst-case performance.
|
2015-03-16 11:05:51 -04:00 |
|
Benoit Jacob
|
e274607d7f
|
fix compilation with GCC 4.8
|
2015-03-16 10:48:27 -04:00 |
|
Benoit Jacob
|
151b8b95c6
|
Fix bug in case where EIGEN_TEST_SPECIFIC_BLOCKING_SIZE is defined but false
|
2015-03-15 19:10:51 -04:00 |
|
Benoit Jacob
|
02babb9c0f
|
Provide a empirical lookup table for blocking sizes measured on a Nexus 5. Only for float, only for Android on ARM 32bit for now.
|
2015-03-15 18:13:12 -04:00 |
|
Benoit Jacob
|
3589a9c115
|
actual_panel_rows computation should always be resilient to parameters not consistent with the known L1 cache size, see comment
|
2015-03-15 18:12:18 -04:00 |
|
Benoit Jacob
|
1dd3d89818
|
Fix a unused-var warning
|
2015-03-15 18:07:19 -04:00 |
|
Benoit Jacob
|
e56aabf205
|
Refactor computeProductBlockingSizes to make room for the possibility of using lookup tables
|
2015-03-15 18:05:12 -04:00 |
|
Benoit Jacob
|
488c15615a
|
organize a little our default cache sizes, and use a saner default L1 outside of x86 (10% faster on Nexus 5)
|
2015-03-13 14:51:26 -07:00 |
|
Gael Guennebaud
|
1330f8bbd1
|
bug #973, improve AVX support by enabling vectorization of Vector4i-like types, and enforcing alignement of Vector4f/Vector2d-like types to preserve compatibility with SSE and future Eigen versions that will vectorize them with AVX enabled.
|
2015-03-13 21:15:50 +01:00 |
|
Gael Guennebaud
|
d99ab35f9e
|
Fix internal::random(x,y) for integer types. The previous implementation could return y+1. The new implementation uses rejection sampling to get an unbiased behabior.
|
2015-03-13 21:12:46 +01:00 |
|
Gael Guennebaud
|
0ee391863e
|
Avoid undeflow when blocking size are tuned manually.
|
2015-03-06 21:51:09 +01:00 |
|
Gael Guennebaud
|
14a5f135a3
|
bug #969: workaround abiguous calls to Ref using enable_if.
|
2015-03-06 17:51:31 +01:00 |
|
Gael Guennebaud
|
87681e508f
|
bug #978: early return for vanishing products
|
2015-03-06 16:11:22 +01:00 |
|
Gael Guennebaud
|
cd3bbffa73
|
Improve blocking heuristic: if the lhs fit within L1, then block on the rhs in L1 (allows to keep packed rhs in L1)
|
2015-03-06 14:31:39 +01:00 |
|
Gael Guennebaud
|
58740ce4c6
|
Improve product kernel: replace the previous dynamic loop swaping strategy by a more general one:
It consists in increasing the actual number of rows of lhs's micro horizontal panel for small depth such that L1 cache is fully exploited.
|
2015-03-06 10:30:35 +01:00 |
|
Gael Guennebaud
|
7550107028
|
Product optimization: implement a dynamic loop-swapping startegy to improve memory accesses to the destination matrix in the case of K-rank-update like products, i.e., for products of the kind: "large x small" * "small x large"
|
2015-03-05 10:03:46 +01:00 |
|
Benoit Steiner
|
0196141938
|
Fixed the optimized AVX implementation of the fast rsqrt function
|
2015-03-02 13:49:39 -08:00 |
|
Benoit Steiner
|
4fd7f47692
|
Added an optimized version of rsqrt for SSE and AVX that is used when EIGEN_FAST_MATH is defined.
|
2015-03-02 09:38:47 -08:00 |
|
Benoit Steiner
|
fb53384b0f
|
Improved the default implementation of prsqrt
|
2015-02-28 01:51:26 -08:00 |
|