Skip to the content.

The Banana Pi BPI-F3 is built on the SpaceMiT K1 SoC: eight SpacemiT X60 cores at 1.6 GHz (rv64gcv, RVV 1.0, VLEN=256), integrated IMG BXE-2-32 GPU (OpenCL 3.0 / Vulkan 1.3), 3.7 GB RAM — same chip as the Orange Pi RV2, but half the memory.

Video: Quantum ESPRESSO on BPI-F3 — stock BLAS MPI_ABORT → 1.31×

Compute paths on this board

Same K1 silicon as the Orange Pi RV2 — scalar, RVV, IME, and integrated GPU (identical compute features; half the RAM).

Compute backends on the Banana Pi BPI-F3

Cross-board confirmation from opensolvers/benchmarks: same gemv_n bug, same easyconfigs#26444 fix, bit-identical residuals where measured. Newer probes below reuse RV2-built binaries where noted.

IME (Integer Matrix Extension)

Same K1 / X60 silicon as the Orange Pi RV2 — SpaceMiT’s IME int8 matrix unit (smt.vmadot) on cluster 0 only (cores 0–3, 512 KB shared L2). Toolchain: RV2 IME — xsmtvdot.

Measured on this board (make board, EESSI GCC 14.3, taskset -c 0, bit-exact vs scalar at every size). Clean-layout peaks (max over ≥5 launches):

M×N×K Scalar RVV int8 IME (8×16) IME/RVV
256³ 1.93 6.13 34 5.5×
512³ 2.00 6.62 40 6.1×
768×768×512 1.99 6.49 45 6.9×
1024×1024×512 1.97 6.44 36 5.5×

IME is ~6–7× RVV int8 and crests near 45 GOP/s at 768³ — same conclusion as the RV2 (~42 GOP/s peak there). Source: benchmarks/ime.

GPU (PowerVR BXE-2-32)

Same K1 / BXE-2-32 silicon as the RV2. Vendor OpenCL/Vulkan userspace is allowlisted for BXM-4-64 only — GPGPU on BXE is closed; the open Mesa pvr route needs a kernel rebuild and is deferred. Full write-up: RV2 GPU · benchmarks/gpu.

HPL

See also the HPL app overview.

HPL.dat (N=8000, 1×8), EESSI 2025.06-001. Larger configs (HPL_big.dat, HPL-sweep.dat) were skipped — they need 6.6 GB / 3.2 GB and exceed this board’s 3.7 GB RAM.

Backend GFLOP/s Residual Result
Stock EESSI RVV (unpatched) 11.64 nan FAILED
Scalar (RISCV64_GENERIC) 6.52 4.63e-03 PASSED
Patched RVV (gemv_n fix) 11.52 4.04e-03 PASSED

1.77× scalar → patched vector; patched residual is bit-identical to the RV2.

Other BLAS-axis probes (patched RVV vs scalar)

Probe Scalar Patched RVV Speedup
DGEMM N=2048, 1 core 1.26 GFLOP/s 2.96 GFLOP/s 2.35×
DGEMM N=4096, 8 threads 17.71 GFLOP/s
NumPy DGEMM N=4096 4.91 GFLOP/s 17.51 GFLOP/s 3.6×
NumPy eigvalsh N=2048 9.59 s 5.94 s 1.6×
ELPA na=3000 50.42 s 34.83 s 1.45×
QE si-super-64.in (PWSCF, nbnd=272) 144.8 s 110.3 s 1.31×
ScaLAPACK PDSYEV na=3000, 2×4 106.00 s stock RVV HANG

Stock unpatched RVV: HPL, ELPA, and Quantum ESPRESSO fail (nan / SCF abort); NumPy eigvalsh raises LinAlgError; ScaLAPACK hangs (same gemv_n story as the RV2).

BLIS vs OpenBLAS

Same BLIS rv64iv build vs stock CVMFS OpenBLAS 0.3.30 (no local patched OpenBLAS on this image). Details: BLIS.

Threads N BLIS OpenBLAS 0.3.30 BLIS/OB
1 4096 3.08 2.89 1.07×
8 4096 10.34 10.96 0.94×

verify_ctrsm: 2400/2400, worst residual 2.55×10⁻⁷ — identical to the RV2.

FFTW RVV (r5v)

Same RV2-built r5v/scalar libfftw3 binaries, tests/bench MEASURE. Details: FFTW.

Size MEASURE r5v / scalar Speedup
256 2518 / 1576 1.60×
1024 1634 / 1273 1.28×
4096 1276 / 1033 1.24×
65536 723 / 741 0.98×

Matches the RV2 within a few percent on cache-resident sizes.

GROMACS FFT axis

Same md.tpr + RV2-built libfftw3f, serial. Details: GROMACS.

Activity Scalar r5v Speedup
PME 3D-FFT 19.965 s 17.513 s 1.14×
Force (control) 803.54 s 803.83 s 1.00×

Energy Δ vs scalar 0.11%. Same dilution story as the RV2 (Force ≈ 90%).

LAMMPS (RVV-Kokkos)

Same RV2 overlay lmp binary, five upstream bench/ inputs. Details: LAMMPS.

Bench Best mode vs serial
lj / eam Kokkos/OpenMP 5.66× / 6.29×
chain / chute / rhodo MPI 4.75× / 4.11× / 5.10×

Same mode ranking as the RV2. Hand RVV LJ microbench on this board: 1.57× vs scalar (Kokkos).