[SIMD] fix Solvers - if one lane has zero initial residual
If one lane has zero residual (e.g. the RHS and initial guess is zero) the division in the factor for the minimizing and orthogonalization is handled explicitly to avoid NaNs.
Edited by Nils-Arne Dreier
Merge request reports
Activity
added 1 commit
- ad9c4558 - [SIMD] fix CGSolver - if one lane has zero residual
added 1 commit
- 4681df6d - [SIMD] fix CGSolver - if one lane has zero residual
added 1 commit
- 75580f08 - [SIMD] fix CGSolver - if one lane has zero residual
added 1 commit
- 3bd717f0 - [SIMD] fix CGSolver - if one lane has zero residual
added 1 commit
- 96bc8c86 - [SIMD] fix CGSolver - if one lane has zero residual
Apparently other solvers have the same issue as well. I added workarounds for them, too.
Furthermore I changed the convergence criterion to be checked for every lane independently. Before, if one lane starts with the exact solution (residual norm equals 0) the reduction cannot be reached for that lane, so the iteration proceeds until all residuals have norm smaller than 1E-30.
added 1 commit
- 2c82f0f5 - [SIMD] add explicit conversion to avoid problems with older clang versions
assigned to @christi
mentioned in commit b32cc1cf
Please register or sign in to reply