Dear maintainers,
Two of the riscv64 buildds (rv-manda-02 and rv-manda-04) recently got
their hardware upgraded to a CPU with vector extension ("V").
The upstream highway software defaults to using vector extension, but as
it is not included in the Debian baseline ISA, this is disabled through
the -DHWY_CMAKE_RVV:BOOL=OFF option. In order to still use vector
extension, runtime dispatch using the GCC target extension has been
backported from upstream master ("gcc-15.patch"). On the paper this
looks great.
Unfortunately, the testsuite now fails on hardware having the vector
extension:
| The following tests FAILED:
| 355 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved2/RVV (Failed)
| 357 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved3/RVV (Failed)
| 359 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/RVV (Failed)
| 647 - TupleTestGroup/TupleTest.TestAllCreate/RVV (Failed)
| 696 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
| Errors while running CTest
The full build log is available there:
https://buildd.debian.org/status/fetch.php?pkg=highway&arch=riscv64&ver=1.3.0-5.1&stamp=1786752450&raw=0
At this stage I haven't been able to fully fix the issue except by fully
disabling RVV support. Nevertheless I would like to share my initial
debugging attempts:
- Disabling "gcc-15.patch" fixes the issue.
- Building with -DHWY_CMAKE_RVV:BOOL=ON, instead on relying on runtime
detection fixes 4 of the issues, but adds an extra one:
| 126 - HwyBlockwiseTestGroup/HwyBlockwiseTest.TestAllZipLower/EMU128 (Failed)
| 696 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
- With the current upstream HEAD with -DHWY_CMAKE_RVV:BOOL=OFF (so with runtime
detection), I get:
| 365 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved2/RVV (Failed)
| 367 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved3/RVV (Failed)
| 369 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/RVV (Failed)
| 697 - TupleTestGroup/TupleTest.TestAllCreate/RVV (Failed)
| 750 - MinMaxTestGroup/MinMaxTest.TestAllIndexOfExtremeInLongSpan/RVV (Failed)
| 774 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
| 831 - IntDivTestGroup/IntDivTest.TestAllFloorDivision/RVV (Failed)
- With the current upstream HEAD with -DHWY_CMAKE_RVV:BOOL=ON, I get:
| 750 - MinMaxTestGroup/MinMaxTest.TestAllIndexOfExtremeInLongSpan/RVV (Failed)
| 774 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
| 831 - IntDivTestGroup/IntDivTest.TestAllFloorDivision/RVV (Failed)
I have been able to reproduce the issue on a SpacemiT K1 CPU (like the
buildds), a SpacemiT K3 CPU and using QEMU, so I think we can rule out a
CPU bug.
Regards
Aurelien