Skip to the content.

OpenSolvers videos on our YouTube channel. More walkthroughs will be added here as they are published.

ELPA on RISC-V: Stock RVV Returns ev0=nan — Then 1.58× with Patched OpenBLAS

ELPA dense eigensolver on Orange Pi RV2: stock EESSI OpenBLAS RVV finishes in 42.17 s but ev0=nan (finite=0). Patched gemv_n → 34.81 s, finite=1, 1.58× scalar. Same FlexiBLAS swap as HPL and QE — no ELPA rebuild.

Orange Pi RV2

BLIS vs OpenBLAS on RISC-V: 1.29× DGEMM — Then 0.5× HPL

Two RVV BLAS libraries on SpaceMiT X60 — BLIS vs patched OpenBLAS. Square DGEMM 1T N=4096: BLIS 1.29× OpenBLAS; 8T OpenBLAS scales better. verify_ctrsm 2400/2400. HPL on static libblis.a is PASSED but only 0.35–0.53× OpenBLAS-RVV.

Orange Pi RV2

GCC 15.2 on RISC-V: Teaching mtune=spacemit-x60 (−8.7% Canaries, +3.8% DGEMM)

Stock GCC 15.2 doesn’t know SpacemiT X60. One EasyBuild-facing patch adds -mtune=spacemit-x60; A/B vs generic-ooo on Orange Pi RV2 (same -march). Scheduler canaries −8.7% / −7.7%; OpenBLAS DGEMM +2.2–3.8%; HPL +0.8%.

Orange Pi RV2

When RVV FFT Wins 1.6× — and Gives 0% in Quantum ESPRESSO

RVV FFTW is real on SpaceMiT X60 (1.60× at N=256 under MEASURE), but the same lib in Quantum ESPRESSO yields 1.002× whole SCF. Planner trap: ESTIMATE→MEASURE is worth 3–5×; QE uses ESTIMATE across ~3260 small FFTs.

Orange Pi RV2

Quantum ESPRESSO on RISC-V: Stock BLAS MPI_ABORTs a Real DFT on BPI-F3

Stock EESSI OpenBLAS aborts Quantum ESPRESSO in inverse_s (MPI_ABORT) — the same gemv_n bug that NaN’d HPL. Patched RVV: −14.57861334 Ry, then a 64-atom SCF 144.8 → 110.3 s (1.31×). calbec ~2×; fftw ~1.01×. Measured on Banana Pi F3.

Banana Pi F3

10× ONNX on RISC-V: One Missing Attribute Unlocks X60 IME

ONNX Runtime int4 MatMulNBits on Orange Pi RV2 spent ~32 s until accuracy_level=4 selected the X60 IME path — 9.1× (1T) and 10.3× (8T). Config beat kernels; a hand RVV “fast path” was −28% and reverted.

Orange Pi RV2

3.31× GROMACS on RISC-V: Hand-Written RVV Force Backend (Orange Pi RV2)

RVV FFT wins ~1.23× on PME 3D-FFT but Force is ~90% of the run — whole-app barely moves. A hand-written impl_riscv_rvv/ Force backend delivers 3.31× whole-app (0.380 → 1.256 ns/day) on Orange Pi RV2.

Orange Pi RV2

NaN Linpack on RISC-V: Fixing OpenBLAS gemv_n on Orange Pi RV2 (EESSI)

Stock EESSI OpenBLAS on an Orange Pi RV2 reports ~8.5 GFLOP/s on HPL — then residual nan, FAILED. We isolate 192 NaNs in RVV dgemv with difftest, and fix it via OpenBLAS#5408 / easyconfigs#26444 through FlexiBLAS (10.53 GFLOP/s PASSED).

Orange Pi RV2

1.69× HPL on RISC-V: U74-Tuned OpenBLAS on VisionFive 2 (EESSI)

How we lifted HPL on a StarFive VisionFive 2 from 3.13 to 5.28 GFLOP/s without rebuilding HPL — by swapping in a SiFive U74-tuned OpenBLAS kernel through EESSI and FlexiBLAS.

VisionFive 2