Source: highway
Version: 1.3.0-5.1
Severity: important
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: riscv64

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

Reply via email to