aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/products/Parallelizer.h
Commit message (Collapse)AuthorAge
* remove semi triggering -Wextra-semi-stmtGravatar Alexander Neumann2020-09-07
|
* Fix -Werror -Wfloat-conversion warning.Gravatar Janek Kozicki2019-12-23
|
* bug #1689 fix used-but-marked-unused warningGravatar Gael Guennebaud2019-03-05
|
* bug #1572: use c++11 atomic instead of volatile if c++11 is available, and ↵Gravatar Gael Guennebaud2018-07-17
| | | | disable multi-threaded GEMM on non-x86 without c++11.
* Fix typos found using codespellGravatar Gael Guennebaud2018-06-07
|
* MIsc. source and comment typosGravatar luz.paz2018-03-11
| | | | Found using `codespell` and `grep` from downstream FreeCAD
* Improve multi-threading heuristic for matrix products with a small number of ↵Gravatar Gael Guennebaud2017-02-07
| | | | columns.
* bug #1365: fix another type mismatch warningGravatar Gael Guennebaud2016-12-28
| | | | (sync is set from and compared to an Index)
* Fix previous merge.Gravatar Gael Guennebaud2016-10-14
|
* Add a simple cost model to prevent Eigen's parallel GEMM from using too many ↵Gravatar Rasmus Munk Larsen2016-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | threads when the inner dimension is small. Timing for square matrices is unchanged, but both CPU and Wall time are significantly improved for skinny matrices. The benchmarks below are for multiplying NxK * KxN matrices with test names of the form BM_OuterishProd/N/K. Improvements in Wall time: Run on [redacted] (12 X 3501 MHz CPUs); 2016-10-05T17:40:02.462497196-07:00 CPU: Intel Haswell with HyperThreading (6 cores) dL1:32KB dL2:256KB dL3:15MB Benchmark Base (ns) New (ns) Improvement ------------------------------------------------------------------ BM_OuterishProd/64/1 3088 1610 +47.9% BM_OuterishProd/64/4 3562 2414 +32.2% BM_OuterishProd/64/32 8861 7815 +11.8% BM_OuterishProd/128/1 11363 6504 +42.8% BM_OuterishProd/128/4 11128 9794 +12.0% BM_OuterishProd/128/64 27691 27396 +1.1% BM_OuterishProd/256/1 33214 28123 +15.3% BM_OuterishProd/256/4 34312 36818 -7.3% BM_OuterishProd/256/128 174866 176398 -0.9% BM_OuterishProd/512/1 7963684 104224 +98.7% BM_OuterishProd/512/4 7987913 112867 +98.6% BM_OuterishProd/512/256 8198378 1306500 +84.1% BM_OuterishProd/1k/1 7356256 324432 +95.6% BM_OuterishProd/1k/4 8129616 331621 +95.9% BM_OuterishProd/1k/512 27265418 7517538 +72.4% Improvements in CPU time: Run on [redacted] (12 X 3501 MHz CPUs); 2016-10-05T17:40:02.462497196-07:00 CPU: Intel Haswell with HyperThreading (6 cores) dL1:32KB dL2:256KB dL3:15MB Benchmark Base (ns) New (ns) Improvement ------------------------------------------------------------------ BM_OuterishProd/64/1 6169 1608 +73.9% BM_OuterishProd/64/4 7117 2412 +66.1% BM_OuterishProd/64/32 17702 15616 +11.8% BM_OuterishProd/128/1 45415 6498 +85.7% BM_OuterishProd/128/4 44459 9786 +78.0% BM_OuterishProd/128/64 110657 109489 +1.1% BM_OuterishProd/256/1 265158 28101 +89.4% BM_OuterishProd/256/4 274234 183885 +32.9% BM_OuterishProd/256/128 1397160 1408776 -0.8% BM_OuterishProd/512/1 78947048 520703 +99.3% BM_OuterishProd/512/4 86955578 1349742 +98.4% BM_OuterishProd/512/256 74701613 15584661 +79.1% BM_OuterishProd/1k/1 78352601 3877911 +95.1% BM_OuterishProd/1k/4 78521643 3966221 +94.9% BM_OuterishProd/1k/512 258104736 89480530 +65.3%
* Avoid any openmp calls if multi-threading is explicitely disabled at runtime.Gravatar Gael Guennebaud2015-10-22
|
* Fix a regression when using OpenMP, and fix bug #714: the number of threads ↵Gravatar Gael Guennebaud2015-02-18
| | | | might be lower than the number of requested ones
* 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
| * bug #887: use ei_declare_aligned_stack_constructed_variable instead of ↵Gravatar Gael Guennebaud2014-10-06
|/ | | | manual new[]/delete[] pairs in AMD and Paralellizer
* 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.
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* bug #466: better fix for the race condition: this new patch add an ↵Gravatar Gael Guennebaud2012-06-14
| | | | | | | initParallel() function which must be called at the initialization time of any multi-threaded application calling Eigen from multiple threads.
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|
* - split and rename defined tokens to enable the use of BLAS/Lapack/VML/etcGravatar Gael Guennebaud2011-12-09
| | | | - include MKL headers outside the Eigen namespace.
* Intel(R) MKL support added.Gravatar karturov2011-12-05
| | | | | | | | | | * * * License disclaimer changed to BSD license for MKL_support.h * * * Pardiso support fixed, test added. blas/lapack tests fixed: Scalar parameter was added in Cholesky, product_matrix_vector_triangular remaned to triangular_matrix_vector_product. * * * PARDISO test was added physically.
* fix stupid warning (bug #185)Gravatar Gael Guennebaud2011-02-14
|
* fix matrix product bug with OpenMPGravatar Gael Guennebaud2010-11-03
|
* bug #86 : use internal:: namespace instead of ei_ prefixGravatar Benoit Jacob2010-10-25
|
* suppress warning and add a fixme about this transpose argumentGravatar Gael Guennebaud2010-07-03
|
* fix openmp for row major destinationGravatar Gael Guennebaud2010-07-03
|
* fix bug with openmpGravatar Gael Guennebaud2010-07-03
|
* email changeGravatar Gael Guennebaud2010-06-24
|
* - add a low level mechanism to provide preallocated memory to gemmGravatar Gael Guennebaud2010-06-24
| | | | - ensure static allocation for the product of "large" fixed size matrix
* * makes all product use the new API to set the blocking sizesGravatar Gael Guennebaud2010-06-22
| | | | * fix an issue preventing multithreading (now Dynamic = -1 ...)
* add runtime API to control multithreadingGravatar Gael Guennebaud2010-06-10
|
* Addressess small compile error with OpenMPGravatar Trevor Irons2010-06-01
|
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* add a FIXMEGravatar Gael Guennebaud2010-03-05
|
* * dynamically adjust the number of threadsGravatar Gael Guennebaud2010-03-05
| | | | * disbale parallelisation if we already are in a parallel session
* fix openmp version for scalar types different than floatGravatar Gael Guennebaud2010-03-05
|
* remove the 1D and 2D parallelizer, keep only the GEMM specialized oneGravatar Gael Guennebaud2010-03-05
|
* rm useless omp shared directiveGravatar Gael Guennebaud2010-03-01
|
* remove Qt's atomic dependency, I don't know what I was doing wrong...Gravatar Gael Guennebaud2010-03-01
|
* make Aron's idea work using Qt's atomic implementation for the synchronisationGravatar Gael Guennebaud2010-03-01
|
* fix compilation without openmpGravatar Gael Guennebaud2010-02-26
|
* implement a smarter parallelization strategy for gemm avoiding multipleGravatar Gael Guennebaud2010-02-26
| | | | paking of the same data
* add a 2D parallelizerGravatar Gael Guennebaud2010-02-23
|
* clean a bit the parallelizerGravatar Gael Guennebaud2010-02-22