chrono icon indicating copy to clipboard operation
chrono copied to clipboard

SparseLU failure is due to AVX instruction set

Open dariomangoni opened this issue 4 years ago • 0 comments

The issue on Eigen::SparseLU solver, that is wrapped by ChSolverSparseLU, seems to be due to the /arch:AVX2 definition. It is possible to observe the bug with demo_FEA_cables and I think that it's a bug of Eigen and not a problem of Chrono CMake settings.

Even with the proper ENABLE_EXTENDED_ALIGNED_STORAGE definition set the problem persists. Apart from disabling AVX2 globally, it should be possible to avoid the problem by defining EIGEN_DONT_VECTORIZE or by setting EIGEN_MAX_ALIGN_BYTES to 0.

Since this would probably affect the performance of the rest of the code - assuming that this issue only affects SparseLU - might be worth to hide the SparseLU wrapper for now? Are there any more reasonable solutions? I reported the issue also in Eigen so if there are solutions we will be informed.

I'm using MSVC1928 (Visual Studio 2019).

dariomangoni avatar Jan 24 '21 18:01 dariomangoni