Go to file
Gael Guennebaud 6a5fe86098 Complete rewrite of column-major-matrix * vector product to deliver higher performance of modern CPU.
The previous code has been optimized for Intel core2 for which unaligned loads/stores were prohibitively expensive.
This new version exhibits much higher instruction independence (better pipelining) and explicitly leverage FMA.
According to my benchmark, on Haswell this new kernel is always faster than the previous one, and sometimes even twice as fast.
Even higher performance could be achieved with a better blocking size heuristic and, perhaps, with explicit prefetching.
We should also check triangular product/solve to optimally exploit this new kernel (working on vertical panel of 4 columns is probably not optimal anymore).
2016-12-03 21:14:14 +01:00
bench Add perf monitoring for gemv 2016-12-02 11:34:12 +01:00
blas Reenable the generation of dynamic blas libraries. 2016-11-03 04:08:43 -07:00
cmake cmake: added Eigen3::Eigen imported target 2016-11-22 12:25:06 +01:00
debug Make gdb pretty printer Python3-compatible (bug #800). 2014-04-28 14:10:22 +01:00
demos Fixed compilation error due to obsolete internal::abs and internal::sqrt function calls 2014-03-26 22:02:48 -04:00
doc doc: mention the NO_MODULE option and target availability 2016-11-30 15:41:38 +01:00
Eigen Complete rewrite of column-major-matrix * vector product to deliver higher performance of modern CPU. 2016-12-03 21:14:14 +01:00
failtest Add unit tests for bug #981: valid and invalid usage of ternary operator 2015-09-09 11:38:25 +02:00
lapack Workaround "misleading-indentation" warnings 2016-05-11 08:41:36 +02:00
scripts Fix help output of buildtests and check scripts 2016-05-11 19:39:09 +02:00
test Fix misleading-indentation warnings. 2016-12-01 16:05:42 +01:00
unsupported Makingt default numeric_list works with sycl. 2016-12-02 17:58:30 +00:00
.hgeol Added a pattern which forces LF line endings for *.sh files. 2013-07-31 18:20:58 +02:00
.hgignore Ignore automalically imported lapack source files 2014-10-17 15:34:39 +02:00
CMakeLists.txt cmake: remove architecture dependency from Eigen3ConfigVersion.cmake 2016-11-30 15:46:46 +01:00
COPYING.BSD
COPYING.GPL
COPYING.LGPL
COPYING.MINPACK
COPYING.MPL2
COPYING.README
CTestConfig.cmake swap 3.2 <-> default CTestConfig.cmake file 2014-03-05 10:07:44 +01:00
CTestCustom.cmake.in
eigen3.pc.in Further fixes for CMAKE_INSTALL_PREFIX correctness 2015-11-07 21:29:24 -05:00
INSTALL
README.md bug #1355: Fixed wrong line-endings on two files 2016-12-02 11:22:05 +01:00
signature_of_eigen3_matrix_library

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

For more information go to http://eigen.tuxfamily.org/.