Skip to the content.

LAPACK

LAPACK correctness and performance here are probed through NumPy (eigvalshdsyevd) and pure BLAS (A @ Bdgemm) — a real-application path for SciPy/NumPy stacks on EESSI.

Benchmark source: opensolvers/benchmarks/numpy.

Orange Pi RV2 (SpaceMiT X60, 8 threads)

Backends swapped via FlexiBLAS on a NumPy linked against the FlexiBLAS hub (SciPy-bundle module). Patched RVV OpenBLAS uses the gemv_n fix from easyconfigs#26444.

Kernel Scalar (RISCV64_GENERIC) Patched RVV (ZVL256B) Speedup
DGEMM (A @ B, N=4096) 4.77 GFLOP/s 11.52 GFLOP/s 2.4×
EIGH (eigvalsh, N=2048) 10.54 s 6.72 s 1.6×

Both patched runs are finite (correct through real LAPACK). The eigensolver speedup is lower than DGEMM because eigvalsh mixes BLAS-3 with BLAS-2 tridiagonalization — the same pattern seen in ELPA.

Stock EESSI default RVV would return NaN on the eigensolver path; see the BLAS difftest table for how the fault isolates to dgemv.