Skip to content

Commit 2f3b72c

Browse files
authored
Merge pull request #15 from opensolvers/site-updates
Add Scientific libs nav and BLAS page
2 parents 4d0798d + dde234f commit 2f3b72c

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)