PME LJ tests fail with SIMD with an fp exception
On KNL in debug mode multiple of the the tests fail because of FPE. It seems that not the whole SIMD width is initialized and thus the exp overflows. They pass in release mode.
With reference implementation and GCC 5.4 on HSW (-DGMX_SIMD=Reference -DGMX_SIMD_REF_FLOAT_WIDTH=16 -DGMX_SIMD_REF_DOUBLE_WIDTH=8 -DCMAKE_BUILD_TYPE=Debug) the same tests also produce the FPE. In addition multiple other tests fail with "Reference data item  not found".
#1 Updated by Aleksei Iupinov over 2 years ago
I'm not really knowledgeable in SIMD layer. It seems pme-solve.cpp:98 allocates work for GMX_SIMD_REAL_WIDTH, which comes from impl_x86_avx2_256_definitions.h and is defined as 8. Hence the second part of simdInternal is garbage, causing ldexp overflow. Berk, any ideas on fixing this?
The rest of the failures likely have to do with the arbitrary GMX_FLOAT_MIN cut-off for the reference data, as in #2234. I might have to adjust input coefficients once more, as such small grid values are not meaningful/realistic anyway.
#3 Updated by Berk Hess over 2 years ago
- Category set to mdrun
- Status changed from New to Fix uploaded
- Assignee changed from Aleksei Iupinov to Berk Hess
- Target version set to 2016.4
No, GMX_SIMD_REAL_WIDTH comes from the file for the appropriate architecture, so 16 for float with KNL.
This issue does not seem to be specific for KNL.