This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Eigen Memory Alignment & MKL Numerical Reproducibility

Tags: None
(comma "," separated)
dimitr
Registered Member
Posts
6
Karma
0
Hi.
I am using Eigen v3.2 along with MKL 11.1 and I see have some (run-to-run) numerical reproducibility problems.
My program in general uses dynamic (dense and sparse) Eigen matrices for initialization and very basic matrix operations (addition, multiplication etc).
I use MKL routines for other complex things (e.g. diagonilization).

According to this https://software.intel.com/en-us/articl ... bility-cnr
MKL requires 16, 32 or 64bit memory alignment. Is Eigen compatible with that or do I have to use mkl_malloc as Intel recommends?

Anyone dealt with run-to-run reproducibility issues on Eigen?

Thank you

Dimitris

(Note that the only pre-processor directive I use is EIGEN_DEFAULT_DENSE_INDEX_TYPE = long long int)
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Eigen 3.2 ensures 16 bytes alignement . With the devel branch, you can compile with -mavx to enable avx and 32 bytes alignment.
dimitr
Registered Member
Posts
6
Karma
0
Thank you ggael,

It seems that my reproducibility issues come from other parts of my code.
Plus, I just found out that MKL 11.1 or later does not
require data alignment: http://sc13.supercomputing.org/sites/de ... p140s1.pdf


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]