Replace the retired Cirrus CI badge with the current GitHub Actions badge, label the Azure Pipelines badge, and remove stale public OSUOSL badges whose job pages no longer resolve.
Add a RISC-V subsection to docs/install.md inside 'Building from source',
between the existing MIPS and FreeBSD sections, covering:
- Target selection table (RISCV64_GENERIC / RISCV64_ZVL128B /
RISCV64_ZVL256B / C910V / x280) and what each is for.
- The general property that GENERIC / ARCH_GENERIC targets across
all architectures map to the non-vectorized plain-C reference
path, with the Makefile.riscv64 scalar -march override noted as
the RISC-V-specific compounding factor.
- GCC 14+ requirement for the ZVL targets on current OpenBLAS
releases (GCC 13 does not implement the __riscv_vsseg* intrinsics
used by the _rvv.c kernels and falls back to scalar silently,
detectable only by disassembly).
- Reference objdump-based verification command and expected
opcode-count range for a correct RISCV64_ZVL128B build.
README.md now keeps a single one-line pointer to the new install.md
section at the spot where users encounter the RISC-V build commands,
so the signposting is preserved without bloating the page that GitHub
renders by default.
v2 of this PR, addresses review feedback from @martin-frbg on
relocation and on the broader GENERIC framing.
Co-authored-by: Vaibhav805 <Vaibhav805@users.noreply.github.com>
Implement DYNAMIC_ARCH support for riscv64. Three cpu types are
supported, riscv64_generic, riscv64_zvl256b, riscv64_zvl128b.
The two non-generic kernels require CPU support for RVV 1.0 to
function correctly. Detecting that a riscv64 device supports
RVV 1.0 is a little complicated as there are some boards on the
market that advertise support for V via hwcap but only support
RVV 0.7.1, which is not binary compatible with RVV 1.0. The
approach taken is to first try hwprobe. If hwprobe is not
available, we fall back to hwcap + an additional check to distinguish
between RVV 1.0 and RVV 0.7.1.
Tested on a VM with VLEN=256, a CanMV K230 with VLEN=128 (with only
the big core enabled), a Lichee Pi with RVV 0.7.1 and a VF2 with no
vector.
A compiler with RVV 1.0 support must be used to build OpenBLAS for
riscv64 when DYNAMIC_ARCH=1.
Signed-off-by: Mark Ryan <markdryan@rivosinc.com>