Skip to content

Commit dde234f

Browse files
Add Scientific libs navigation and BLAS overview page.
List OpenBLAS improvements for U74 and X60 targets with links to EasyBuild packages, upstream PRs, and EESSI walkthroughs. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 4d0798d commit dde234f

5 files changed

Lines changed: 50 additions & 2 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ See the [HPL results overview](apps/hpl.html) for a cross-board summary.
1212
- **[OrangePi RV2](boards/RV2.html)** — Ky X1 SoC, 8× SpacemiT X60. Native-arch HPL **7.38 GFLOP/s** (EESSI: DNF, RVV bug in OpenBLAS 0.3.30).
1313
- **[BananaPi F3](boards/F3.html)** — SpacemiT K1 SoC, 8× SpacemiT X60. HPL benchmarking in progress (EESSI: DNF, RVV bug in OpenBLAS 0.3.30).
1414

15-
Use the menu above to jump to a board or app page.
15+
Use the menu above to jump to a board, app, or scientific lib page.

_config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ navigation_boards:
1717
navigation_apps:
1818
- title: HPL
1919
url: /apps/hpl.html
20+
21+
navigation_scientific_libs:
22+
- title: BLAS
23+
url: /scientific-libs/blas.html

_includes/header.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,22 @@ <h2 class="project-tagline">{{ site.description | default: "RISC-V learnings and
4949
{% endfor %}
5050
</ul>
5151
</div>
52+
53+
<div class="site-nav-group">
54+
<span class="site-nav-label">Scientific libs</span>
55+
<ul class="site-nav-list">
56+
{% for item in site.navigation_scientific_libs %}
57+
<li class="site-nav-item">
58+
<a
59+
href="{{ item.url | relative_url }}"
60+
class="site-nav-link{% if page.url == item.url %} is-active{% endif %}"
61+
>
62+
{{ item.title }}
63+
</a>
64+
</li>
65+
{% endfor %}
66+
</ul>
67+
</div>
5268
</div>
5369
</nav>
5470
</header>

apps/hpl.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Cross-board summary of **High Performance Linpack (HPL)** runs on consumer RISC-
1212

1313
**Before** — stock EESSI OpenBLAS 0.3.30 on each board.
1414

15-
**After** — board-specific fixed OpenBLAS via EasyBuild, swapped in at runtime with FlexiBLAS (no HPL rebuild).
15+
**After** — board-specific fixed OpenBLAS via EasyBuild, swapped in at runtime with FlexiBLAS (no HPL rebuild). Details in the [BLAS overview](../scientific-libs/blas.html).
1616

1717
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)).
1818

scientific-libs/blas.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# BLAS (OpenBLAS)
2+
3+
Improvements to **OpenBLAS 0.3.30** on RISC-V boards in this project — built via EasyBuild, deployed through [EESSI](https://www.eessi.io/) with **FlexiBLAS** runtime swapping. See also the [HPL app](../apps/hpl.html) for end-to-end benchmark results.
4+
5+
**Base stack:** GCC 14.3.0, OpenBLAS 0.3.30, EESSI `2025.06-001` ([`dev.eessi.io/riscv`](https://www.eessi.io/docs/repositories/dev.eessi.io-riscv/)).
6+
7+
## Improvements
8+
9+
| Board / CPU | Problem (stock 0.3.30) | Fix | Result |
10+
| ----------- | ---------------------- | --- | ------ |
11+
| [VisionFive 2](../boards/VisionFive2.html) — SiFive **U74** (scalar) | No U74 kernel; falls back to generic `RISCV64_GENERIC` C `2×2` GEMM | New **4×4 DGEMM micro-kernel** in RV64 assembly, `TARGET=U74` | Single-core DGEMM **~1.4 → 1.77 GFLOP/s**; 4-core DGEMM **6.31 GFLOP/s**; [HPL **1.69×**](../apps/hpl.html) |
12+
| [Orange Pi RV2](../boards/RV2.html) — SpacemiT **X60** (RVV VLEN=256) | RVV `gemv_n` zeroes an **uninitialized** vector register → `dgemv` returns NaN; HPL **fails** residual despite ~8.5 GFLOP/s | Backport upstream `gemv_n` fix; `TARGET=RISCV64_ZVL256B` | HPL **PASSED** (residual ~4e-03); peak **10.53 GFLOP/s** |
13+
| [Banana Pi F3](../boards/F3.html) — same K1 / X60 SoC | Same RVV `gemv_n` bug as RV2 | Same [easyconfigs#26444](https://github.com/easybuilders/easybuild-easyconfigs/pull/26444) fix | Fix applies; peak HPL not yet recorded |
14+
15+
## Packages
16+
17+
| Target | EasyBuild PR | Upstream OpenBLAS | Walkthrough |
18+
| ------ | ------------ | ----------------- | ----------- |
19+
| SiFive U74 | [easyconfigs#26436](https://github.com/easybuilders/easybuild-easyconfigs/pull/26436) | [OpenBLAS#5903](https://github.com/OpenMathLib/OpenBLAS/pull/5903) | [EESSI/docs#818](https://github.com/EESSI/docs/pull/818) |
20+
| SpacemiT X60 | [easyconfigs#26444](https://github.com/easybuilders/easybuild-easyconfigs/pull/26444) | [OpenBLAS#5408](https://github.com/OpenMathLib/OpenBLAS/pull/5408), [#5476](https://github.com/OpenMathLib/OpenBLAS/pull/5476) | [EESSI/docs#819](https://github.com/EESSI/docs/pull/819) |
21+
22+
Build from a PR with `eb --from-pr <num> --robot` into an **EESSI-extend** user install, then register with `flexiblas add` / `flexiblas default` — no need to rebuild downstream apps like HPL.
23+
24+
## Notes
25+
26+
- **U74** — performance kernel; stock OpenBLAS works but leaves FP throughput on the table.
27+
- **X60** — correctness fix first: the stock EESSI `DYNAMIC_ARCH` build *does* dispatch RVV `ZVL256B` kernels, but 0.3.30's broken `gemv_n` makes HPL silently wrong. OpenBLAS **≥ 0.3.34** should carry the fix natively and improve RVV performance further.
28+
- On the experimental `dev.eessi.io/riscv` toolchain, pin a valid `-march` via `EASYBUILD_OPTARCH` when building (see board walkthroughs).

0 commit comments

Comments
 (0)