google / highway

Performance-portable, length-agnostic SIMD with runtime dispatch
Apache License 2.0
3.96k stars 307 forks source link

hwy 1.1.0 on armhf vs float64 #2207

Closed malaterre closed 1 month ago

malaterre commented 1 month ago

I am trying to run the test suite on Debian/armhf. Currently the test suite fails with:

589/609 Test #589: SortTestGroup/SortTest.TestAllSort/EMU128  # GetParam() = 2305843009213693952 .............................................Subprocess aborted***Exception:   0.02 sec
Running main() from ./googletest/src/gtest_main.cc
Note: Google Test filter = SortTestGroup/SortTest.TestAllSort/EMU128
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from SortTestGroup/SortTest
[ RUN      ] SortTestGroup/SortTest.TestAllSort/EMU128
Abort at ./hwy/contrib/sort/vqsort_f64d.cc:35: Assert 0

I have not been able to build git/HEAD to check if fixed upstream. Any guidance ?

This appears to be a regression from 1.0.7

Ref:

jan-wassenberg commented 1 month ago

Let's see. In vqsort_f64d, we have HWY_HAVE_FLOAT64==0. However, for the EMU128 target set_macros-inl sets HWY_HAVE_FLOAT64 to 1, and sort_test calls hwy::HaveFloat64() to check HWY_HAVE_FLOAT64. Is this by any chance a build with precompiled .so?

Our run_tests.sh armhf build seems to work, it uses CC=arm-linux-gnueabihf-gcc-11 CXX=arm-linux-gnueabihf-g++-11 cmake .. -DHWY_CMAKE_ARM7:BOOL=ON -DHWY_WARNINGS_ARE_ERRORS:BOOL=ON -DCMAKE_BUILD_TYPE=Release.

malaterre commented 1 month ago

Is this by any chance a build with precompiled .so?

I've fixed the symptoms by reducing optimization to O0...

Definitely not an issue in highway, closing as invalid.

sorry for the noise