HPL results overview
Cross-board summary of High Performance Linpack (HPL) on consumer RISC-V hardware through the EESSI stack. Configs and an A/B runner (run-hpl-ab.sh) are in opensolvers/benchmarks/hpl.
Toolchain: GCC 14.3.0, OpenBLAS 0.3.30, HPL 2.3.0. EESSI 2025.06-001 on dev.eessi.io/riscv.
Cross-board summary
| Board | Cores | Before | After |
|---|---|---|---|
| VisionFive 2 | 4× SiFive U74 | 3.13 GFLOP/s | 5.28 GFLOP/s |
| Orange Pi RV2 | 8× SpacemiT X60 | FAILED (nan) |
10.53 GFLOP/s |
| Banana Pi F3 | 8× SpacemiT X60 | FAILED (nan) |
— |
Before — stock EESSI OpenBLAS 0.3.30 (same xhpl binary throughout).
After — fixed OpenBLAS via EasyBuild + FlexiBLAS backend swap (no HPL rebuild). See BLAS overview.
Orange Pi RV2 — detailed results
Stock EESSI dispatches RVV ZVL256B on the X60, but the unpatched gemv_n kernel makes HPL report ~8.5 GFLOP/s while failing the residual check (nan). With the easyconfigs#26444 fix, all runs below PASSED.
EESSI walkthrough (fixed backend)
| Config | Grid | N | Result |
|---|---|---|---|
| Stock EESSI, default RVV | 1×8 | 8000 | ~8.5 GFLOP/s, FAILED (nan) |
| Fixed RVV, peak | 2×4 | 20000 | 10.53 GFLOP/s, PASSED |
Walkthrough: EESSI/docs#819.
A/B — scalar vs patched RVV (run-hpl-ab.sh)
Same xhpl, backend swapped via FlexiBLAS. All PASSED with the fixed vector library:
| Config | Scalar (RISCV64_GENERIC) |
Patched RVV (ZVL256B) |
Speedup |
|---|---|---|---|
HPL.dat (N=8000, 1×8) |
6.41 GFLOP/s | 11.55 GFLOP/s | 1.80× |
HPL_big.dat (N=28672, 1×8) |
7.38 GFLOP/s | 13.41 GFLOP/s | 1.82× |
HPL-sweep.dat (N=20000, 2×4) |
— | ~10.5 GFLOP/s | — |
A squarer 2×4 grid beats 1×8 for peak throughput. HPL_big.dat needs ~6.6 GB RAM — tight on 8 GB boards.
VisionFive 2
Scalar U74 — stock OpenBLAS uses a generic kernel; the U74-tuned build lifts HPL 3.13 → 5.28 GFLOP/s (1.69×). Walkthrough: EESSI/docs#818.
Banana Pi F3
Same K1 / X60 SoC as the Orange Pi RV2 — same stock failure and same easyconfigs#26444 fix applies. Peak HPL not yet recorded.