- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have just noticed that the LDLT decomposition is broken with the latest Intel compiler.icpc version 18.0.1 (gcc version 6.4.0 compatibility)
Comparing the solutions for a random SPD matrix obtained with FullPivLU, PartialPivLU, LLT and LDLT shows that the latter is broken. You can find the code for this test on GitHub: https://github.com/robertodr/ eigen-cholesky
Intel 18.0.1 results
Linear system solvers comparison
Relative error |Ax - b| / |b|
------------------------------ ---
FullPivLU 2.74599e-11
PartialPivLU 1.37848e-11
LLT 1.70863e-11
LDLT 7.02994
Error wrt FullPivLU |x - x_flu| / |x_flu|
------------------------------ ---------------
PartialPivLU 1.91271e-11
LLT 8.91642e-11
LDLT 1.00003
Intel 18.0.1 results
Linear system solvers comparison
Relative error |Ax - b| / |b|
------------------------------
FullPivLU 2.74599e-11
PartialPivLU 1.37848e-11
LLT 1.70863e-11
LDLT 7.02994
Error wrt FullPivLU |x - x_flu| / |x_flu|
------------------------------
PartialPivLU 1.91271e-11
LLT 8.91642e-11
LDLT 1.00003
GCC 6.4.0 results
Linear system solvers comparison
Relative error |Ax - b| / |b|
------------------------------ ---
FullPivLU 2.74599e-11
PartialPivLU 1.37848e-11
LLT 1.54872e-11
LDLT 2.0482e-11
Error wrt FullPivLU |x - x_flu| / |x_flu|
------------------------------ ---------------
PartialPivLU 1.91271e-11
LLT 3.25784e-11
LDLT 1.47468e-10
Linear system solvers comparison
Relative error |Ax - b| / |b|
------------------------------
FullPivLU 2.74599e-11
PartialPivLU 1.37848e-11
LLT 1.54872e-11
LDLT 2.0482e-11
Error wrt FullPivLU |x - x_flu| / |x_flu|
------------------------------
PartialPivLU 1.91271e-11
LLT 3.25784e-11
LDLT 1.47468e-10
The sample works with Intel 17 and 18.0.0 Compiling in debug mode also fixes the issue. The Eigen developers suggested setting -fp-model precise but that didn't help
Thanks in advance for any suggestions.
Roberto
- Tags:
- CC++
- Development Tools
- Intel® C++ Compiler
- Intel® Parallel Studio XE
- Intel® System Studio
- Optimization
- Parallel Computing
- Vectorization
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm having the same problem as you, Roberto. Did you manage to find the solution to this elsewhere btw? Any suggestions would be appreciated!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Have you tried different setting for -fp-model= strict, consistent, source...?
Regards,
Viet
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Turning on optimizations and using -fp-model strict fixes the problem. None of the other -fp-model flags works though.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page