Skip to content

Commit a0a1beb

Browse files
authored
Merge pull request #13 from opensolvers/site-updates
Update Orange Pi RV2 and HPL pages with X60 results
2 parents 2881af5 + dafcc15 commit a0a1beb

2 files changed

Lines changed: 31 additions & 9 deletions

File tree

boards/RV2.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
1-
The OrangePi RV2 uses the Ky X1 SoC with 8× SpacemiT X60 cores.
1+
The Orange Pi RV2 is built on the SpaceMiT **K1** SoC: eight **SpacemiT X60** cores at ~1.6 GHz (`rv64gcv`, **RVV 1.0, VLEN=256**), 8 GB RAM.
22

33
![](rv2.png)
44

5-
## HPL
5+
## HPL via EESSI
6+
7+
See also the [cross-board HPL overview](hpl.html).
8+
9+
Unlike the scalar VisionFive 2, the X60 already dispatches OpenBLAS's upstream **RVV** `RISCV64_ZVL256B` kernels from the stock EESSI stack — but OpenBLAS **0.3.30** has a bug in `gemv_n` that zeroes an uninitialized vector register, so stock EESSI **HPL fails with residual `nan`** (it can still report a plausible ~8.5 GFLOP/s; only the residual check reveals the answer is wrong).
10+
11+
End-to-end on real Orange Pi RV2 hardware using [EESSI](https://www.eessi.io/) `2025.06-001` on [`dev.eessi.io/riscv`](https://www.eessi.io/docs/repositories/dev.eessi.io-riscv/). Peak run: **N=20000**, **NB=256**, **2×4** grid (8 MPI ranks).
612

713
| | Before | After |
814
| --- | ------ | ----- |
9-
| HPL | DNF | **7.38 GFLOP/s** |
15+
| HPL (8 cores, N=20000, 2×4) | ~8.5 GFLOP/s, **FAILED** (`nan`) | **10.53 GFLOP/s**, **PASSED** |
16+
| Residual (N=8000, 1×8) | `nan` | 4.04e-03 |
17+
18+
**Before** — stock EESSI OpenBLAS 0.3.30 (RVV `gemv_n` bug). **After** — fixed OpenBLAS built with `TARGET=RISCV64_ZVL256B` and a backported `gemv_n` patch ([easyconfigs#26444](https://github.com/easybuilders/easybuild-easyconfigs/pull/26444)), swapped in via FlexiBLAS — no HPL rebuild.
19+
20+
The fix backports the upstream `gemv_n` correction from OpenBLAS ≥ 0.3.31 ([OpenBLAS#5408](https://github.com/OpenMathLib/OpenBLAS/pull/5408)). A future EESSI bump to OpenBLAS ≥ 0.3.34 should make the patch unnecessary.
21+
22+
### Reproducing the fixed run
23+
24+
1. Set up CVMFS + EESSI on `riscv64` (`EESSI_VERSION_OVERRIDE=2025.06-001`).
25+
2. Baseline: `module load HPL/2.3-foss-2025b` → stock HPL fails residual check (`nan`).
26+
3. Build fixed OpenBLAS: `eb --from-pr 26444 --robot` (via `EESSI-extend` user install, `EASYBUILD_OPTARCH='-march=rv64imafdcv_zvl256b'`).
27+
4. Register the new backend with FlexiBLAS and re-run the same `xhpl`.
1028

11-
See the [cross-board HPL overview](hpl.html) for full comparison. **Before** (EESSI) DNF due to an RVV bug in OpenBLAS 0.3.30.
29+
Full walkthrough: [EESSI/docs#819](https://github.com/EESSI/docs/pull/819)*Chasing a NaN: correct RVV HPL on a RISC-V SpaceMiT X60 via EESSI*.

boards/hpl.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
# HPL results overview
22

3-
Cross-board summary of **High Performance Linpack (HPL)** runs on consumer RISC-V hardware, comparing `-march` targets and EESSI stack builds.
3+
Cross-board summary of **High Performance Linpack (HPL)** runs on consumer RISC-V hardware through the EESSI stack.
44

55
**Toolchain:** GCC 14.3.0, OpenBLAS 0.3.30, HPL 2.3.0. EESSI runs use `2025.06-001` on [`dev.eessi.io/riscv`](https://www.eessi.io/docs/repositories/dev.eessi.io-riscv/).
66

77
| Board | Cores | Before | After |
88
| ----- | ----- | ------ | ----- |
99
| [StarFive VisionFive 2](VisionFive2.html) | 4× SiFive U74 | 3.13 GFLOP/s | **5.28 GFLOP/s** |
10-
| [OrangePi RV2](RV2.html) | 8× SpacemiT X60 | DNF | 7.38 GFLOP/s |
11-
| [BananaPi F3](F3.html) | 8× SpacemiT X60 | DNF ||
10+
| [Orange Pi RV2](RV2.html) | 8× SpacemiT X60 | FAILED (`nan`) | **10.53 GFLOP/s** |
11+
| [Banana Pi F3](F3.html) | 8× SpacemiT X60 | FAILED (`nan`) ||
1212

13-
**DNF**did not finish on the EESSI RISC-V stack, due to an RVV bug in OpenBLAS 0.3.30.
13+
**Before**stock EESSI OpenBLAS 0.3.30 on each board.
1414

15-
The VisionFive 2 **After** result uses a SiFive U74 OpenBLAS micro-kernel built via EasyBuild, swapped in at runtime with FlexiBLAS — **1.69×** faster than the stock EESSI **Before** build on the same hardware. See the [VisionFive 2 page](VisionFive2.html) and [EESSI/docs#818](https://github.com/EESSI/docs/pull/818) for the full walkthrough.
15+
**After** — board-specific fixed OpenBLAS via EasyBuild, swapped in at runtime with FlexiBLAS (no HPL rebuild).
16+
17+
On **VisionFive 2** (scalar U74), stock OpenBLAS uses a generic kernel; the fix adds a tuned U74 micro-kernel ([easyconfigs#26436](https://github.com/easybuilders/easybuild-easyconfigs/pull/26436), [EESSI/docs#818](https://github.com/EESSI/docs/pull/818)).
18+
19+
On **X60 boards** (RVV 1.0, VLEN=256), stock OpenBLAS already dispatches RVV kernels but **0.3.30's `gemv_n` produces NaN**, so HPL fails its residual check despite reporting plausible GFLOP/s. The fix backports the upstream `gemv_n` correction ([easyconfigs#26444](https://github.com/easybuilders/easybuild-easyconfigs/pull/26444), [OpenBLAS#5408](https://github.com/OpenMathLib/OpenBLAS/pull/5408), [EESSI/docs#819](https://github.com/EESSI/docs/pull/819)). Banana Pi F3 uses the same K1/X60 SoC — the same fix applies; peak result not yet recorded.

0 commit comments

Comments
 (0)