Registered Member
|
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) |
Moderator
|
Eigen 3.2 ensures 16 bytes alignement . With the devel branch, you can compile with -mavx to enable avx and 32 bytes alignment.
|
Registered Member
|
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 |
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]