OpenBLAS RISC-V verification suite + TRSM VLEN-fix sweep#18
Merged
Conversation
…EN-fix sweep + perf Rename dgemm/ -> OpenBLAS/ (it verifies the whole OpenBLAS RISC-V backend, not just DGEMM). Add verify_ctrsm.c, the full-parameter TRSM correctness sweep used to validate the VLEN-agnostic _rvv_v1 fix (OpenMathLib/OpenBLAS#5928): 408/1600 -> 8000/0 on ZVL128B, also 8000/0 on ZVL256B. README gains a TRSM section (root cause, correctness table, fix summary, no-regression perf table with broken-baseline caveat). Fix ../dgemm links in root/numpy/hpl READMEs.
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OpenBLAS RISC-V verification suite + TRSM VLEN-fix sweep
Consolidates the BLAS verification harnesses under a single
OpenBLAS/directory (renamed from
dgemm/, since it verifies the whole OpenBLAS RISC-Vbackend, not just DGEMM) and adds the TRSM correctness sweep used to validate a
real upstream kernel bug.
What changed
dgemm/→OpenBLAS/(rename, history preserved) — now the OpenBLASRISC-V verification suite:
bench_dgemm.c(perf),difftest.c(level-1/2/3differential correctness), and the new
verify_ctrsm.c.OpenBLAS/verify_ctrsm.c— full-parameter TRSM correctness sweep({Left,Right} × {Upper,Lower} × {NoTrans,Trans,ConjTrans} × {NonUnit,Unit} ×
size grid), recomputes
op(A)·Xand checks the max residual. Compile-verifiedon the X60:
CTRSM 2400 cases, 0 fails, worst_resid=2.99e-07.OpenBLAS/README.md— retitled, documents a second RISC-V kernel bug: theRVV
_rvv_v1TRSM kernels are not VLEN-agnostic (tile packed-A by runtimeVSETVL_MAX=16while GEMM packs by compile-timeGEMM_UNROLL_M, divergingwhen
UNROLL_M=8onZVL128B). Includes the 408/1600 → 8000/0 correctnesstable, the fix summary, and a no-regression perf table with the
broken-baseline caveat. Tracks riscv64: make RVV TRSM (_rvv_v1) kernels VLEN-agnostic OpenMathLib/OpenBLAS#5928.
../dgemmfixed in root /numpy/hplREADMEs.Verification
verify_ctrsmcompiles and passes 0 fails on the fixedZVL128Bbuild.8000/0on bothZVL128B(UNROLL_M=8) andZVL256B(UNROLL_M=16), i.e. genuinely VLEN-agnostic.dgemm/path remain.