aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
Commit message (Collapse)AuthorAge
* bug #1741: fix self-adjoint*matrix, triangular*matrix, and ↵Gravatar Gael Guennebaud2019-09-11
| | | | triangular^1*matrix with a destination having a non-trivial inner-stride
* gebp: Add new ½ and ¼ packet rows per (peeling) round on the lhsGravatar Gustavo Lima Chaves2018-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The patch works by altering the gebp lhs packing routines to also consider ½ and ¼ packet lenght rows when packing, besides the original whole package and row-by-row attempts. Finally, gebp itself will try to fit a fraction of a packet at a time if: i) ½ and/or ¼ packets are available for the current context (e.g. AVX2 and SSE-sized SIMD register for x86) ii) The matrix's height is favorable to it (it may be it's too small in that dimension to take full advantage of the current/maximum packet width or it may be the case that last rows may take advantage of smaller packets before gebp goes row-by-row) This helps mitigate huge slowdowns one had on AVX512 builds when compared to AVX2 ones, for some dimensions. Gains top at an extra 1x in throughput. This patch is a complement to changeset 4ad359237aeb519dbd4b55eba43057b37988838c . Since packing is changed, Eigen users which would go for very low-level API usage, like TensorFlow, will have to be adapted to work fine with the changes.
* Fix regression introduced by the previous fix for AVX512.Gravatar Gael Guennebaud2018-09-20
| | | | It brokes the complex-complex case on SSE.
* Fix gebp kernel for real+complex in case only reals are vectorized (e.g., ↵Gravatar Gael Guennebaud2018-09-20
| | | | | | AVX512). This commit also removes "half-packet" from data-mappers: it was not used and conceptually broken anyways.
* Remove dead code.Gravatar Gael Guennebaud2016-01-26
|
* bug #51: add block preallocation mechanism to selfadjoit*matrix product.Gravatar Gael Guennebaud2016-01-25
|
* Remove deprecated usage of expr::Index.Gravatar Gael Guennebaud2015-02-16
|
* Pulled latest fixesGravatar Benoit Steiner2015-02-06
|\
| * Fix symmetric productGravatar Gael Guennebaud2015-02-06
| |
* | Pulled the latest changes from the trunkGravatar Benoit Steiner2015-02-06
|\ \ | |/ |/|
* | Made the blocking computation aware of the l3 cacheGravatar Benoit Steiner2014-10-15
| | | | | | | | Also optimized the blocking parameters to take into account the number of threads used for a computation
* | Generalized the gebp apisGravatar Benoit Steiner2014-10-02
| |
| * Remove deprecated code not used by evaluatorsGravatar Gael Guennebaud2014-09-18
| |
| * merge with default branchGravatar Gael Guennebaud2014-06-20
| |\ | |/ |/|
* | New gebp kernel handling up to 3 packets x 4 register-level blocks. Huge ↵Gravatar Gael Guennebaud2014-04-16
| | | | | | | | | | | | speeup on Haswell. This changeset also introduce new vector functions: ploadquad and predux4.
* | Update gebp kernel to process a panle of 4 columns at once for the remaining ↵Gravatar Gael Guennebaud2014-03-26
| | | | | | | | ones.
* | Implement new 1 packet x 8 gebp kernelGravatar Gael Guennebaud2014-03-26
| |
| * Fix evaluators unit test (i.e., when only EIGEN_ENABLE_EVALUATORS is definedGravatar Gael Guennebaud2014-03-10
| |
| * By-pass ProductBase for triangular and selfadjoint products and get rid of ↵Gravatar Gael Guennebaud2014-02-23
|/ | | | ProductBase
* Fix bug #314: move remaining math functions from internal to numext namespaceGravatar Gael Guennebaud2013-06-10
|
* Fix "routine is both "inline" and "noinline"" warningsGravatar Gael Guennebaud2013-02-28
|
* bug #482: pass scalar arguments by const references. Still remains a few ↵Gravatar Gael Guennebaud2013-02-25
| | | | cases that might affect the ABI (see the bug entry)
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|
* fix several const qualifier issues: double ones, meaningless ones, some ↵Gravatar Gael Guennebaud2012-02-03
| | | | | | missing ones, etc. (note that const qualifiers are set by internall::nested)
* protect calls to min and max with parentheses to make Eigen compatible with ↵Gravatar Gael Guennebaud2011-07-21
| | | | | | | default windows.h (transplanted from 49b6e9143e1d74441924c0c313536e263e12a55c )
* fix memory leak when a custom scalar throw an exceptionGravatar Gael Guennebaud2011-03-19
|
* bug #54 - really fix const correctness except in SparseGravatar Benoit Jacob2010-12-22
|
* bug #86 : use internal:: namespace instead of ei_ prefixGravatar Benoit Jacob2010-10-25
|
* sync with default branchGravatar Gael Guennebaud2010-07-22
|\
* | fix trmm and symm wrt lhs packingGravatar Gael Guennebaud2010-07-20
| |
* | fix lhs packing in the case of real * complex productsGravatar Gael Guennebaud2010-07-19
| |
* | * fix a couple of remaining issues with previous commit,Gravatar Gael Guennebaud2010-07-19
| | | | | | | | * merge ei_product_blocking_traits into ei_gepb_traits
* | matrix product: move the alpha factor to gebp instead of the packing,Gravatar Gael Guennebaud2010-07-12
| | | | | | | | clean some temporaries, etc.
* | compilation fixGravatar Gael Guennebaud2010-07-08
| |
* | support for real * complex matrix product - step 1 (works for some special ↵Gravatar Gael Guennebaud2010-07-07
| | | | | | | | cases)
| * fix hemm to not use the imaginary part of the diagonal entriesGravatar Gael Guennebaud2010-07-17
|/
* add support for vectorized conjugated productsGravatar Gael Guennebaud2010-07-06
|
* email changeGravatar Gael Guennebaud2010-06-24
|
* fix symmGravatar Gael Guennebaud2010-06-24
|
* * makes all product use the new API to set the blocking sizesGravatar Gael Guennebaud2010-06-22
| | | | * fix an issue preventing multithreading (now Dynamic = -1 ...)
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* stride() => inner/outerStride()Gravatar Gael Guennebaud2010-03-06
|
* fix symmGravatar Gael Guennebaud2010-03-06
|
* merge with default branchGravatar Gael Guennebaud2010-03-04
|\
| * selfadjoint: do not reference the imaginary part of the diagonalGravatar Gael Guennebaud2010-03-02
| |
* | significant speedup in the matrix-matrix productsGravatar Gael Guennebaud2010-02-23
|/
* Get rid off GCC warning on comparing enums from different types.Gravatar Jitse Niesen2010-01-19
|
* remove the Triangular suffix to Upper, Lower, UnitLower, etc,Gravatar Gael Guennebaud2010-01-07
| | | | and remove the respective bit flags
* make some changes to please clang, fix some warnings too.Gravatar Thomas Capricelli2010-01-04
|